Job application tracker
Updated September 10, 2026. This Strata document is the working tracker going forward.
Target: Senior–Staff roles in AI developer tooling; full-stack and developer platform roles also in scope. Seattle / Eastside / remote US. Minimum total compensation: $300,000/year.
The dashboard calculates counts from the Opportunities table below.
Salary figures below are previously researched posted annual base/salary in USD, not total compensation or verified offers. Availability and complete compensation packages need confirmation. Blank contact and follow-up fields mean not recorded.
Application dashboard
<style>
*{box-sizing:border-box}body{margin:0;background:#080e1c;color:#ecf3ff;font:14px system-ui,-apple-system,sans-serif}.app{padding:30px;max-width:1300px;margin:auto;background:radial-gradient(ellipse at 85% 0, #17233d 0,transparent 55%)}.eyebrow{font:10px ui-monospace,monospace;letter-spacing:2.5px;color:#91a5c5;text-transform:uppercase}.top{display:flex;justify-content:space-between;gap:20px;align-items:center}.top h1{font-size:32px;letter-spacing:-1.2px;font-weight:550;margin:9px 0}.sub{color:#92a3bf;font-size:12px;line-height:1.6}.live{border:1px solid #294339;background:#12291f;color:#a3e8bb;border-radius:30px;padding:8px 12px;font-size:10px;white-space:nowrap}.live:before{content:'';display:inline-block;width:6px;height:6px;background:#8ef0b0;border-radius:50%;margin-right:7px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0}.metric{padding:17px 20px;border:1px solid #253049;border-radius:14px;background:#101929c9}.metric strong{font-size:30px;font-weight:500;letter-spacing:-1px;display:block;margin:6px 0}.metric small{font-size:11px;color:#93a5bf}.grid{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(300px,1.3fr);gap:16px}.panel{background:#101827c9;border:1px solid #253049;border-radius:18px;padding:20px;min-width:0}.panelhead{display:flex;justify-content:space-between;align-items:center;gap:10px}.panelhead h2{font-size:14px;font-weight:550;margin:0}.tag{font:10px ui-monospace,monospace;color:#9aacca}.ring{width:100%;height:300px;display:block}.legend{display:grid;grid-template-columns:1fr 1fr;gap:7px}.legend button{background:transparent;border:1px solid transparent;color:#b7c6db;padding:8px;border-radius:8px;display:flex;align-items:center;gap:8px;font:11px system-ui;cursor:pointer;text-align:left}.legend button:hover,.legend button.active{background:#1b293e;border-color:#3c526b}.legend i,.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}.legend b{margin-left:auto;color:#fff;font-weight:500}.toolbar{display:flex;gap:8px;margin:18px 0 12px}.toolbar input,.toolbar select{min-width:0;background:#0a1221;color:#dce7f7;border:1px solid #304059;border-radius:9px;padding:9px;font:12px system-ui}.toolbar input{width:100%}.toolbar select{width:135px}.list{height:290px;overflow:auto;scrollbar-color:#34435c transparent}.job{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:center;width:100%;padding:12px 8px;color:#dce8fc;background:transparent;border:none;border-bottom:1px solid #263147;text-align:left;cursor:pointer;font:12px system-ui}.job:hover,.job.selected{background:#1b2b43}.avatar{border:1px solid #344259;background:#14233a;border-radius:9px;width:30px;height:30px;display:grid;place-items:center;color:#a8c5f6;font:11px ui-monospace,monospace}.job strong{font-weight:550}.job small{display:block;color:#9caec8;font-size:11px;margin-top:4px;line-height:1.5}.badge{font-size:10px;padding:5px 7px;border-radius:6px;white-space:nowrap;background:#ffffff08}.detail{margin-top:17px;border-top:1px solid #2b3850;padding-top:16px;min-height:94px}.detail h3{margin:5px 0 8px;font-size:15px;font-weight:550}.detail p{font-size:12px;color:#b5c5dc;line-height:1.6;margin:5px 0}.detail .meta{font:10px ui-monospace,monospace;color:#7fa2c8}.footer{display:flex;justify-content:space-between;gap:14px;margin:17px 2px 0;font:10px ui-monospace,monospace;color:#8093b0;line-height:1.7}.error{color:#ffc894;padding:20px;border:1px solid #76532b;margin:20px;border-radius:12px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #b3d7ff;outline-offset:2px}.empty{padding:35px 10px;color:#92a5c3}.ring text{font-family:system-ui,sans-serif}@media(max-width:650px){.app{padding:18px}.top{align-items:flex-start}.top h1{font-size:26px}.live{font-size:9px}.metrics{gap:7px}.metric{padding:12px 10px}.metric strong{font-size:25px}.metric .eyebrow{font-size:8px;letter-spacing:.6px}.grid{grid-template-columns:1fr}.ring{height:270px}.footer{display:block}.badge{font-size:9px}}
.flow-panel{margin:0 0 18px}.flow-scroll{overflow-x:auto}.flow-svg{width:100%;min-width:760px;display:block}.flow-note{color:#92a3bf;font-size:11px;line-height:1.6;margin:10px 0 0}.flow-node{cursor:pointer}.flow-node:focus{outline:none}.flow-node:focus rect{stroke:white;stroke-width:2}.flow-link{transition:opacity .18s}.flow-caption{font:10px ui-monospace,monospace;letter-spacing:1.5px;fill:#91a5c5}</style>
<div class="app">
<header class="top"><div><div class="eyebrow">Andrew Naeve / Career dashboard</div><h1>Your next chapter.</h1><div class="sub">AI developer tooling · Senior–Staff · Seattle & remote</div></div><span class="live">Connected to tracker</span></header>
<div id="error" role="alert" hidden></div>
<div class="metrics" id="metrics"></div>
<section class="panel flow-panel"><div class="panelhead"><h2>Application pipeline</h2><span class="tag">LIVE SANKEY</span></div><div class="flow-scroll"><svg class="flow-svg" viewBox="0 0 1040 400" role="img" aria-label="Application pipeline grouped by current status"></svg></div><p class="flow-note">Ribbon width = number of roles. Click a status to filter the role list below. This shows current pipeline distribution; rejection and withdrawal stages are unknown, so no interview history is assumed.</p></section><div class="grid"><section class="panel"><div class="panelhead"><h2>Opportunity landscape</h2><span class="tag">CURRENT STATUS</span></div><svg class="ring" viewBox="0 0 360 300" role="img" aria-label="Opportunities grouped by current application status"></svg><div class="legend" aria-label="Filter by status"></div></section>
<section class="panel"><div class="panelhead"><h2 id="listtitle">All opportunities</h2><span class="tag" id="visibleCount"></span></div><div class="toolbar"><input id="query" aria-label="Search company or role" placeholder="Search company or role…"><select id="priority" aria-label="Filter by priority"><option value="all">All priorities</option><option value="High">High priority</option><option value="Medium">Medium priority</option><option value="Low">Low priority</option></select></div><div class="list" id="jobs"></div><div class="detail" id="detail" aria-live="polite"></div></section></div>
<div class="footer"><span>Click a ring segment or status to explore. Select a role for its next action.</span><span>TC FLOOR $300K / YEAR · Current state, not conversion history</span></div>
</div>
<script src="/sandbox/libs/d3.min.js"></script>
<script>
(()=>{
const sourceNames=['opportunities'];
const colors={'Not applied':'#7297ee','Researching':'#b5a0ef','Applied':'#5be2ce','Interviewing':'#f6c273','Offer':'#b8ee8b','On hold':'#8490a6','Rejected':'#f08c9b','Withdrawn':'#b69483'};
const order=Object.keys(colors);let jobs=[],filter='all',chosen=null,query='',priority='all';
const count=s=>jobs.filter(j=>j.status===s).length;
const clean=s=>String(s||'').replace(/\[([^\]]+)\]\([^)]+\)/g,'$1');
function read(){let failed=[];const all=[];for(const name of sourceNames){const src=window.strata?.data?.get(name);if(!src||src.kind!=='table'){failed.push(name);continue;}for(const row of src.rows){const obj=Object.fromEntries(src.columns.map((c,i)=>[c,row[i]]));if(!obj.Company||!obj.Role)continue;const j={company:clean(obj.Company),role:clean(obj.Role),status:obj.Status||'Not applied',priority:obj.Priority||'Unspecified',date:obj['Applied date']||'Not recorded',action:obj['Next action']||'Not recorded',contact:obj['Follow-up / contact']||'Not recorded'};j.id=j.company+'::'+j.role;all.push(j);}}if(failed.length){document.getElementById('error').hidden=false;document.getElementById('error').className='error';document.getElementById('error').textContent='The Opportunities table is unavailable: '+failed.join(', ')+'. Counts below include available tables only.';document.querySelector('.live').textContent='Partial tracker data';}else{document.getElementById('error').hidden=true;document.querySelector('.live').textContent='Connected to tracker';}jobs=all;render();}
function metric(label,value,note,color){const el=document.createElement('div');el.className='metric';const l=document.createElement('div');l.className='eyebrow';l.textContent=label;const v=document.createElement('strong');v.textContent=value;if(color)v.style.color=color;const n=document.createElement('small');n.textContent=note;el.append(l,v,n);return el;}
function render(){renderFlow();const sent=jobs.filter(j=>['Applied','Interviewing','Offer','Rejected','Withdrawn'].includes(j.status)).length;const m=document.getElementById('metrics');m.replaceChildren(metric('Tracked',jobs.length,'opportunities'),metric('Submitted',sent,'applications','#5be2ce'),metric('Interviewing',count('Interviewing'),'in progress','#f6c273'),metric('Offers',count('Offer'),'received','#b8ee8b'));
const counts=order.map(status=>({status,n:count(status)}));for(const j of jobs)if(!order.includes(j.status)&&!counts.some(c=>c.status===j.status))counts.push({status:j.status,n:count(j.status)});
const svg=d3.select('.ring');svg.selectAll('*').remove();const g=svg.append('g').attr('transform','translate(180,147)');
const defs=svg.append('defs');const grad=defs.append('radialGradient').attr('id','halo');grad.append('stop').attr('offset','0%').attr('stop-color','#284461').attr('stop-opacity',.42);grad.append('stop').attr('offset','100%').attr('stop-color','#101827').attr('stop-opacity',0);g.append('circle').attr('r',146).attr('fill','url(#halo)');
[81,125,138].forEach(r=>g.append('circle').attr('r',r).attr('fill','none').attr('stroke','#28374c').attr('stroke-width',.7).attr('stroke-dasharray',r===138?'2 7':null));
g.append('circle').attr('r',104).attr('fill','none').attr('stroke','#243249').attr('stroke-width',22);
const pie=d3.pie().sort(null).value(d=>d.n).padAngle(.035),arc=d3.arc().innerRadius(91).outerRadius(118).cornerRadius(4);
g.selectAll('path.segment').data(pie(counts.filter(d=>d.n))).join('path').attr('class','segment').attr('d',arc).attr('fill',d=>colors[d.data.status]||'#94a3b8').attr('opacity',d=>filter==='all'||filter===d.data.status?1:.2).style('cursor','pointer').attr('tabindex',0).attr('role','button').attr('aria-label',d=>d.data.status+': '+d.data.n+' roles. Filter status.').on('click',(_,d)=>toggle(d.data.status)).on('keydown',(e,d)=>{if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle(d.data.status);}}).append('title').text(d=>d.data.status+': '+d.data.n+' opportunities');
g.append('text').attr('text-anchor','middle').attr('y',-3).attr('fill','#edf5ff').attr('font-size',48).attr('font-weight',450).attr('letter-spacing','-2px').text(filter==='all'?jobs.length:count(filter));
g.append('text').attr('text-anchor','middle').attr('y',23).attr('fill','#a3b4cd').attr('font-size',11).text(filter==='all'?'OPPORTUNITIES':filter.toUpperCase());
g.append('text').attr('text-anchor','middle').attr('y',44).attr('fill','#65d9c9').attr('font-size',10).text(jobs.length?Math.round(sent/jobs.length*100)+'% submitted':'No roles yet');
const legend=d3.select('.legend').selectAll('button').data([{status:'all',n:jobs.length},...counts.filter(c=>c.n||['Applied','Interviewing','Offer'].includes(c.status))]).join('button').attr('type','button').attr('class',d=>d.status===filter?'active':'').attr('aria-pressed',d=>String(d.status===filter)).on('click',(_,d)=>toggle(d.status));legend.selectAll('*').remove();legend.append('i').style('background',d=>colors[d.status]||'#e1eafa');legend.append('span').text(d=>d.status==='all'?'All opportunities':d.status);legend.append('b').text(d=>d.n);renderList();}
function renderFlow(){
const svg=d3.select('.flow-svg');svg.selectAll('*').remove();
const submitted=new Set(['Applied','Interviewing','Offer','Rejected','Withdrawn']);
const group=s=>submitted.has(s)?'Submitted':['Not applied','Researching'].includes(s)?'Preparing':'Paused / other';
const groups=['Submitted','Preparing','Paused / other'];
const states=[...order,...new Set(jobs.map(j=>j.status).filter(s=>!order.includes(s)))].filter(s=>count(s));
const nodes=[{id:'root',label:'All opportunities',n:jobs.length,col:0,color:'#91b4fc',filter:'all'},
...groups.map(s=>({id:'g:'+s,label:s,n:jobs.filter(j=>group(j.status)===s).length,col:1,color:s==='Submitted'?'#5be2ce':s==='Preparing'?'#7297ee':'#8490a6'})).filter(n=>n.n),
...states.map(s=>({id:'s:'+s,label:s==='Applied'?'Applied · awaiting response':s,n:count(s),col:2,color:colors[s]||'#94a3b8',filter:s}))];
const k=jobs.length?Math.min(22,(290-Math.max(0,states.length-1)*14)/jobs.length):1;
const xs=[24,355,700],width=13,top=58;
for(let col=0;col<3;col++){const ns=nodes.filter(n=>n.col===col),height=ns.reduce((v,n)=>v+n.n*k,0)+Math.max(0,ns.length-1)*14;let y=top+(290-height)/2;for(const n of ns){n.x=xs[col];n.y=y;n.h=n.n*k;n.in=0;n.out=0;y+=n.h+14;}}
const map=new Map(nodes.map(n=>[n.id,n]));
const links=[];
for(const g of nodes.filter(n=>n.col===1)){links.push({s:map.get('root'),t:g,n:g.n});for(const s of states.filter(s=>group(s)===g.label))links.push({s:g,t:map.get('s:'+s),n:count(s)});}
const defs=svg.append('defs');
links.forEach((l,i)=>{const h=l.n*k,y0=l.s.y+l.s.out,y1=l.t.y+l.t.in;l.s.out+=h;l.t.in+=h;const x0=l.s.x+width,x1=l.t.x,m=(x0+x1)/2;
const grad=defs.append('linearGradient').attr('id','flow-grad-'+i).attr('gradientUnits','userSpaceOnUse').attr('x1',x0).attr('x2',x1);grad.append('stop').attr('stop-color',l.s.color);grad.append('stop').attr('offset','100%').attr('stop-color',l.t.color);
svg.append('path').attr('class','flow-link').attr('d','M'+x0+','+y0+' C'+m+','+y0+' '+m+','+y1+' '+x1+','+y1+' L'+x1+','+(y1+h)+' C'+m+','+(y1+h)+' '+m+','+(y0+h)+' '+x0+','+(y0+h)+' Z').attr('fill','url(#flow-grad-'+i+')').attr('opacity',.28).on('mouseenter',function(){d3.select(this).attr('opacity',.65)}).on('mouseleave',function(){d3.select(this).attr('opacity',.28)}).append('title').text(l.s.label+' → '+l.t.label+': '+l.n+' roles');});
['OPPORTUNITIES','APPLICATIONS','CURRENT STATUS'].forEach((s,i)=>svg.append('text').attr('x',xs[i]).attr('y',26).attr('class','flow-caption').text(s));
const ns=svg.selectAll('g.flow-node').data(nodes).join('g').attr('class','flow-node').attr('transform',n=>'translate('+n.x+','+n.y+')').attr('tabindex',n=>n.filter!==undefined?0:null).attr('role',n=>n.filter!==undefined?'button':null).attr('aria-label',n=>n.label+': '+n.n+' roles').on('click',(_,n)=>{if(n.filter!==undefined){filter=n.filter;render();}}).on('keydown',(e,n)=>{if(n.filter!==undefined&&(e.key==='Enter'||e.key===' ')){e.preventDefault();filter=n.filter;render();}});
ns.append('rect').attr('width',width).attr('height',n=>Math.max(0,n.h)).attr('rx',3).attr('fill',n=>n.color);
ns.append('text').attr('x',22).attr('y',n=>n.h/2-3).attr('fill','#edf5ff').attr('font-size',12).attr('font-weight',550).text(n=>n.label);
ns.append('text').attr('x',22).attr('y',n=>n.h/2+14).attr('fill','#a5b7cf').attr('font-size',11).text(n=>n.n+' role'+(n.n===1?'':'s'));
if(!jobs.length)svg.append('text').attr('x',355).attr('y',200).attr('fill','#a5b7cf').text('Add opportunities to populate the pipeline.');
}
function toggle(status){filter=filter===status?'all':status;render();}
function renderList(){let shown=jobs.filter(j=>(filter==='all'||j.status===filter)&&(priority==='all'||j.priority===priority)&&(j.company+' '+j.role).toLowerCase().includes(query.toLowerCase()));shown.sort((a,b)=>(a.status==='Applied'?-1:0)-(b.status==='Applied'?-1:0)||a.company.localeCompare(b.company));document.getElementById('listtitle').textContent=filter==='all'?'All opportunities':filter;document.getElementById('visibleCount').textContent=shown.length+' ROLES';if(!shown.some(j=>j.id===chosen))chosen=shown[0]?.id||null;
const list=d3.select('#jobs');list.selectAll('*').remove();const items=list.selectAll('button').data(shown).join('button').attr('type','button').attr('class',d=>'job'+(d.id===chosen?' selected':'')).attr('aria-pressed',d=>String(d.id===chosen)).on('click',(_,d)=>{chosen=d.id;renderList();});items.append('span').attr('class','avatar').text(d=>d.company.slice(0,2).toUpperCase());const main=items.append('span');main.append('strong').text(d=>d.company);main.append('small').text(d=>d.role);items.append('span').attr('class','badge').style('color',d=>colors[d.status]||'#b4c4d9').text(d=>d.status);if(!shown.length)list.append('div').attr('class','empty').text('No roles match these filters.');
const detail=d3.select('#detail');detail.selectAll('*').remove();const selected=shown.find(j=>j.id===chosen);if(selected){detail.append('div').attr('class','eyebrow').text('NEXT ACTION / '+selected.company);detail.append('h3').text(selected.action);detail.append('p').text(selected.role);detail.append('div').attr('class','meta').text('STATUS '+selected.status.toUpperCase()+' · APPLIED '+selected.date+(selected.priority!=='Unspecified'?' · PRIORITY '+selected.priority.toUpperCase():''));}else detail.append('p').text('Select another status or clear the search to explore your pipeline.');}
document.getElementById('query').addEventListener('input',e=>{query=e.target.value;renderList();});document.getElementById('priority').addEventListener('change',e=>{priority=e.target.value;renderList();});window.addEventListener('strata:data',read);read();
})();
</script>Opportunities
Edit Status to update the dashboard: Not applied, Researching, Applied, Interviewing, Offer, On hold, Rejected, or Withdrawn. Applied date records when you submitted. Status is the sole source for chart segments and counts.
Company | Role | Priority | Status | Applied date | Next action | Follow-up / contact |
|---|---|---|---|---|---|---|
Netflix | High | Applied | 2026-09-10 | Await recruiter response | Not recorded | |
Slack | High | Applied | 2026-09-10 | Await recruiter response; confirm $300k+ TC | Not recorded | |
NVIDIA | High | Applied | Not recorded | Await recruiter response; confirm level and $300k+ TC | Not recorded | |
Ai2 | Medium | Applied | 2026-09-09 | Await recruiter response; confirm $300k+ TC | Not recorded | |
Shopify | High | Applied | 2026-09-09 | Await recruiter response | Not recorded | |
Apple | High | Applied | 2026-09-09 | Await recruiter response; confirm level and $300k+ TC | Not recorded | |
OpenAI | High | Not applied | Not recorded | Review role; tailor agent/full-stack examples | Not recorded | |
Anthropic | High | Not applied | Not recorded | Review staff scope; tailor agent tooling examples | Not recorded | |
Figma | High | Not applied | Not recorded | Confirm level; tailor MCP and sandbox examples | Not recorded | |
Figma | High | Not applied | Not recorded | Confirm level; tailor Strata product examples | Not recorded | |
CoreWeave | High | Not applied | Not recorded | Review Kubernetes requirements and TC | Not recorded | |
CoreWeave | High | Not applied | Not recorded | Tailor developer platform strategy examples | Not recorded | |
Anthropic | High | Not applied | Not recorded | Ask about DevEx / extensibility team placement | Not recorded | |
OpenAI | High | Not applied | Not recorded | Review systems requirements; tailor harness work | Not recorded | |
Anthropic | High | Not applied | Not recorded | Tailor collaborative editor and frontend examples | Not recorded | |
CoreWeave | High | Not applied | Not recorded | Review role; tailor internal agent automation | Not recorded | |
Databricks | Medium | Not applied | Not recorded | Confirm senior TC; tailor full-stack delivery | Not recorded | |
Databricks | Medium | Not applied | Not recorded | Review staff frontend scope and TC | Not recorded | |
Coinbase | Medium | Not applied | Not recorded | Review infrastructure fit; confirm TC | Not recorded | |
Coinbase | Staff Software Engineer, Backend Platform — Core AI Automation | Medium | Not applied | Not recorded | Review staff scope and automation examples | Not recorded |
Airtable | Medium | Not applied | Not recorded | Ask about Developer Platform placement and level | Not recorded | |
CoreWeave / Marimo | Medium | Not applied | Not recorded | Assess Kubernetes/distributed systems requirements | Not recorded | |
Figma | Medium | Not applied | Not recorded | Assess build systems/Bazel requirements | Not recorded | |
DoorDash | Medium | Not applied | Not recorded | Explore senior/staff placement in one funnel | Not recorded | |
DoorDash | Medium | Researching | Not recorded | Coordinate with staff opening before applying | Not recorded | |
Amperity | Medium | Researching | Not recorded | Screen for $300k TC before investing time | Not recorded | |
Microsoft | Medium | Researching | Not recorded | Find active official requisition; confirm TC | Not recorded | |
Smartsheet | Low | Researching | Not recorded | Screen for $300k TC before investing time | Not recorded | |
DoorDash | Low | On hold | Not recorded | Assess ML/GPU infrastructure requirements | Not recorded | |
Robinhood | Low | On hold | Not recorded | Assess ranking/personalization experience fit | Not recorded |
Role details and compensation
NVIDIA — Senior Engineer, Local AI — Agents and Systems
Requisition: JR2021986
Location: Redmond eligible, per earlier research; posting URL names Santa Clara.
Posted base/salary: Previously researched ranges: L4 $184,000–$287,500/year; L5 $224,000–$356,500/year, plus equity. Confirm level and full package.
Fit / application notes: Andrew confirmed this is the recommended NVIDIA role he applied to. Local AI agents and systems; Windows, C++, CUDA, and isolation requirements are areas to assess.
Posting: View role
OpenAI — Full Stack Software Engineer, Codex
Location: Seattle / San Francisco
Posted base/salary: $255,000–$405,000/year. Base + equity; confirm offer TC.
Fit / application notes: Strong AI developer tooling and full-stack fit.
Posting: View role
Anthropic — Staff Software Engineer, Claude Code
Location: Seattle eligible / hybrid
Posted base/salary: $320,000–$625,000/year. Posted annual salary; confirm package.
Fit / application notes: Direct AI coding tools; staff scope to demonstrate.
Posting: View role
Figma — Software Engineer, AI Platforms
Location: US hubs / remote US
Posted base/salary: $153,000–$376,000/year. Multi-level base + equity; confirm level/TC.
Fit / application notes: MCP, agent harnesses, sandboxing and context.
Posting: View role
Figma — Software Engineer, AI Product
Location: US hubs / remote US
Posted base/salary: $153,000–$376,000/year. Multi-level base + equity; confirm level/TC.
Fit / application notes: Full-stack AI product development.
Posting: View role
CoreWeave — Senior Software Engineer, Developer Experience
Location: Bellevue eligible
Posted base/salary: $165,000–$242,000/year. Base + discretionary bonus/equity; confirm TC.
Fit / application notes: Developer tools; assess Kubernetes depth.
Posting: View role
CoreWeave — Staff Software Engineer, Developer Experience
Location: Bellevue eligible
Posted base/salary: $188,000–$275,000/year. Base + discretionary bonus/equity; confirm TC.
Fit / application notes: MCP and agent-accessible APIs; staff scope.
Posting: View role
Anthropic — Senior Software Engineer, Full-stack
Location: Seattle eligible / hybrid
Posted base/salary: $320,000–$320,000/year. Posted annual salary; confirm package.
Fit / application notes: Strong senior option; team matched later.
Posting: View role
OpenAI — Software Engineer, Codex Core Agents
Location: Seattle eligible
Posted base/salary: $230,000–$385,000/year. Base + equity; confirm offer TC.
Fit / application notes: Agent execution and orchestration; isolation stretch.
Posting: View role
Anthropic — Staff Software Engineer, Claude Design
Location: Seattle eligible / hybrid
Posted base/salary: $320,000–$485,000/year. Posted annual salary; confirm package.
Fit / application notes: Strata collaboration/editor experience relevant.
Posting: View role
CoreWeave — Senior Software and AI Engineer
Location: Bellevue eligible
Posted base/salary: $182,000–$242,000/year. Base + discretionary bonus/equity; confirm TC.
Fit / application notes: React, TypeScript and internal enterprise agents.
Posting: View role
Databricks — Senior Software Engineer, Fullstack
Location: Seattle
Posted base/salary: $157,700–$213,800/year. Base; equity/bonus may apply. Confirm TC.
Fit / application notes: Broader senior full-stack option.
Posting: View role
Databricks — Staff Frontend Engineer, UI Platform
Location: Seattle
Posted base/salary: $181,000–$261,000/year. Base; equity/bonus may apply. Confirm TC.
Fit / application notes: Frontend architecture and multi-quarter leadership.
Posting: View role
Coinbase — Senior Software Engineer, Core AI Infrastructure
Location: Remote US / quarterly gatherings
Posted base/salary: $186,065–$218,900/year. Base; equity/bonus may apply. Confirm TC.
Fit / application notes: Internal AI APIs; AWS/Kubernetes.
Posting: View role
Coinbase — Staff Software Engineer, Backend Platform — Core AI Automation
Location: Remote US / quarterly gatherings
Posted base/salary: $218,025–$256,500/year. Base; equity/bonus may apply. Confirm TC.
Fit / application notes: Agent systems for support/compliance workflows.
Posting: View role
Airtable — Software Engineer, Infrastructure
Location: Remote greater Seattle
Posted base/salary: $187,000–$260,000/year. Base; other compensation unconfirmed.
Fit / application notes: Developer Platform team preferred; level to confirm.
Posting: View role
CoreWeave / Marimo — Staff Software Engineer, Infrastructure
Location: Bellevue / remote US
Posted base/salary: $188,000–$275,000/year. Base + bonus/equity; confirm package.
Fit / application notes: Collaborative Python/AI notebooks; systems stretch.
Posting: View role
Figma — Software Engineer, Developer Experience
Location: US hubs / remote US
Posted base/salary: $185,000–$376,000/year. Multi-level base + equity; confirm level/TC.
Fit / application notes: Developer experience; build systems depth needed.
Posting: View role
DoorDash — Staff Software Engineer, Backend
Location: Seattle / hybrid 2 days
Posted base/salary: $193,800–$285,000/year. I6 base + equity; confirm package.
Fit / application notes: Broader backend option; coordinate with all-teams role.
Posting: View role
DoorDash — Software Engineer, Backend — All Teams
Location: Seattle eligible
Posted base/salary: Not recorded. Multi-level posting; compensation to confirm.
Fit / application notes: Same recruiting funnel; avoid duplicate applications.
Posting: View role
Amperity — Lead Software Development Engineer
Location: Seattle
Posted base/salary: $190,000–$260,000/year. Base; incentives unconfirmed.
Fit / application notes: Data platform and real-time/batch systems.
Posting: View role
Ai2 — Senior Software Engineer, Agent Frameworks
Location: Seattle
Posted base/salary: $146,880–$220,320/year. Base; bonus/long-term incentives unspecified.
Fit / application notes: Strong agent tooling fit; compensation screen first.
Posting: View role
Microsoft — Senior Software Engineer, CoreAI
Location: Redmond
Posted base/salary: $119,800–$234,700/year. Secondary listing range; verify on official posting.
Fit / application notes: Copilot data pipelines; live requisition unconfirmed.
Posting: View role
DoorDash — Senior Software Engineer, ML Infrastructure — GenAI
Location: Seattle
Posted base/salary: $167,800–$246,800/year. I5 base shown; other levels have different ranges.
Fit / application notes: GPU inference/fine-tuning experience gap.
Posting: View role
Robinhood — Staff Machine Learning Engineer, AI R&D
Location: Bellevue
Posted base/salary: $255,000–$300,000/year. Base + bonus/equity; confirm package.
Fit / application notes: ML specialization makes this a weaker fit.
Posting: View role
Smartsheet — Senior Software Engineer I, Automation
Location: Bellevue / remote
Posted base/salary: $145,000–$193,750/year. Base; incentives unconfirmed.
Fit / application notes: Relevant automation work; compensation screen first.
Posting: View role
Shopify — Staff Software Engineer — Internal Tools
Location: Remote — Americas; Seattle
Posted base/salary: Not recorded. Posted compensation not disclosed; confirm $300k+ TC.
Fit / application notes: Submitted directly by Andrew after form issues. Interview language: TypeScript.
Posting: View role
Apple — Software Engineer, Agentic Developer Platform
Requisition: 200674539-3337
Location / level: To confirm.
Posted base/salary: Not recorded; confirm full package against $300k TC floor.
Application notes: Andrew confirmed application September 9, 2026. Agentic developer platform aligns with stated interests; detailed requirements not yet reviewed.
Posting: View role
Shopify application response
Submitted by Andrew directly after problems with the application form. Preferred interview language: TypeScript.
What technology or tool have you been tinkering with lately?
I’ve been building Strata, an agent-first collaborative markdown platform with MCP, CLI, and API access, a sandboxed AI environment, scheduled agents, and third-party connectors. I’m particularly interested in making shared context useful to both people and agents, and turning complex workflows into intuitive tools. I dogfood Strata by using it to collaborate with my coding agents as well as human collaborators on the project.
This builds on my work at Amazon, where I created an agent harness adopted across four organizations and productionized an MCP server exposing developer tools to engineers and AI agents. I enjoy owning the full path from interface and architecture to production adoption.