{"event":{"name":"DevFlow Conf 2027","slug":"devflow-2027","timezone":"America/Los_Angeles","startDate":"2027-05-12T00:00:00.000Z","endDate":"2027-05-15T00:00:00.000Z"},"sessions":[{"id":"cmt0g1mkg000304jso3m6lno7","title":"Lightning: Agents in Production Q&A","description":"A rapid-fire Q&A on running AI agents in production: what breaks, what monitoring actually catches problems, and the guardrails that matter most when agents touch real systems.","startTime":"2027-05-11T16:00:00.000Z","endTime":"2027-05-11T16:10:00.000Z","room":"Workshop Loft","tracks":[{"name":"AI Engineering","color":"#6366f1"}],"format":"Lightning Talk","level":"Intermediate","tags":[],"speakers":[{"displayName":"Marcus Okafor","firstName":"Marcus","lastName":"Okafor","jobTitle":"Staff Developer Advocate","company":"Cloudreach Labs","headshotUrl":null,"bio":"Marcus Okafor is a Staff Developer Advocate at Cloudreach Labs focused on AI agents in production. He writes the newsletter 'Agents Weekly' and co-organizes the SF AI Tinkerers meetup.","role":"speaker"}]},{"id":"cmt0gljrf000m04l4tnww7kp4","title":"Your AI Pair Programmer Is Lying to You: Verification Patterns That Scale","description":"Code generation is easy; trusting it is hard. This session covers verification patterns for AI-generated code — property tests, mutation coverage, snapshot judges, and CI gates — with data from 18 months of running them on a 200-engineer codebase. Includes what we stopped doing because it didn't catch anything.","startTime":"2027-05-11T16:00:00.000Z","endTime":"2027-05-11T16:30:00.000Z","room":"Embarcadero Studio","tracks":[{"name":"AI Engineering","color":"#6366f1"}],"format":"Talk","level":"Advanced","tags":[],"speakers":[{"displayName":"Priya Raman","firstName":"Priya","lastName":"Raman","jobTitle":"Principal Engineer","company":"Latticework Systems","headshotUrl":"https://nzbceinbopvnxxmjzrxz.supabase.co/storage/v1/object/public/speaker-assets/headshots/cmsydmckx000004joc38412jn/1787164567625-headshot.png","bio":"Priya Raman is a Principal Engineer at Latticework Systems where she leads the build-tooling platform team. She previously maintained the open-source task runner 'gantry' and has spoken at over a dozen developer conferences on build systems, CI reliability, and developer productivity metrics. SBEK-PORTAL-BIO-01","role":"speaker"}]},{"id":"cmsnq84bu000104jv5rvjqbud","title":"The Economics of Context Windows","description":"Longer context is not free. A cost model for context spend, with the break-even points where retrieval beats stuffing the window.","startTime":"2027-05-11T16:00:00.000Z","endTime":"2027-05-11T16:30:00.000Z","room":"Presidio Room","tracks":[{"name":"AI Engineering","color":"#6366f1"},{"name":"Infrastructure & Scale","color":"#10b981"}],"format":"Talk","level":"Intermediate","tags":[],"speakers":[{"displayName":"Jonas Weber","firstName":"Jonas","lastName":"Weber","jobTitle":"Infrastructure Lead","company":"Kestrel Compute","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Jonas-Weber","bio":"Jonas has been on call for GPU fleets since before it was fashionable. He writes about scheduling, spot capacity and the true cost of a token.","role":"speaker"}]},{"id":"cmsky61na009cn7pkcxuibjbu","title":"Prompt Caching, Batching and Other Boring Wins","description":"Unglamorous optimisations with outsized effects, benchmarked on production traffic rather than a synthetic loop.","startTime":"2027-05-11T16:00:00.000Z","endTime":"2027-05-11T16:30:00.000Z","room":"Mission Hall","tracks":[{"name":"Infrastructure & Scale","color":"#10b981"}],"format":"Talk","level":"Intermediate","tags":["LLMs","DevEx"],"speakers":[{"displayName":"Kwame Boateng","firstName":"Kwame","lastName":"Boateng","jobTitle":"Staff Engineer","company":"Anansi Systems","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Kwame-Boateng","bio":"Kwame works on inference runtimes and open-model deployment on hardware that was never meant for it.","role":"speaker"}]},{"id":"cmt0gltcr000e04jsychpp2d8","title":"Docs That Answer Back: Retrieval-Grounded Documentation Sites","description":"A 10-minute tour of turning a static docs site into one that answers questions with citations, stays honest when it doesn't know, and costs under $50/month to run. Live demo, real failure cases, and a checklist you can apply to your own docs this week.","startTime":"2027-05-11T16:30:00.000Z","endTime":"2027-05-11T16:40:00.000Z","room":"Mission Hall","tracks":[{"name":"Developer Experience","color":"#8b5cf6"}],"format":"Lightning Talk","level":"Beginner","tags":[],"speakers":[{"displayName":"Priya Raman","firstName":"Priya","lastName":"Raman","jobTitle":"Principal Engineer","company":"Latticework Systems","headshotUrl":"https://nzbceinbopvnxxmjzrxz.supabase.co/storage/v1/object/public/speaker-assets/headshots/cmsydmckx000004joc38412jn/1787164567625-headshot.png","bio":"Priya Raman is a Principal Engineer at Latticework Systems where she leads the build-tooling platform team. She previously maintained the open-source task runner 'gantry' and has spoken at over a dozen developer conferences on build systems, CI reliability, and developer productivity metrics. SBEK-PORTAL-BIO-01","role":"speaker"}]},{"id":"cmt0ekvwx000d04juwsf9mz8l","title":"UPDATED: Taming 40-Minute CI: Incremental Builds at Monorepo Scale","description":"Our monorepo CI took 40 minutes on a good day. This talk walks through how we cut it to 6 minutes with content-addressed caching, remote execution, and a test-selection model — including the two migrations that failed first. You'll leave with a decision framework for which incremental-build investments pay off at which repo sizes, and the graphs to convince your platform team. This session now includes a live demo of remote build caching. Attendees should bring a laptop.","startTime":"2027-05-11T17:00:00.000Z","endTime":"2027-05-11T17:30:00.000Z","room":"Room 2A","tracks":[{"name":"Platform & Infra","color":"#0d9488"}],"format":"Talk","level":"Intermediate","tags":[],"speakers":[{"displayName":"Priya Raman","firstName":"Priya","lastName":"Raman","jobTitle":"Principal Engineer","company":"Latticework Systems","headshotUrl":"https://nzbceinbopvnxxmjzrxz.supabase.co/storage/v1/object/public/speaker-assets/headshots/cmsydmckx000004joc38412jn/1787164567625-headshot.png","bio":"Priya Raman is a Principal Engineer at Latticework Systems where she leads the build-tooling platform team. She previously maintained the open-source task runner 'gantry' and has spoken at over a dozen developer conferences on build systems, CI reliability, and developer productivity metrics. SBEK-PORTAL-BIO-01","role":"speaker"},{"displayName":"Marcus Okafor","firstName":"Marcus","lastName":"Okafor","jobTitle":"Staff Developer Advocate","company":"Cloudreach Labs","headshotUrl":null,"bio":"Marcus Okafor is a Staff Developer Advocate at Cloudreach Labs focused on AI agents in production. He writes the newsletter 'Agents Weekly' and co-organizes the SF AI Tinkerers meetup.","role":"speaker"}]},{"id":"cmsky61hk009an7pkx00ll0s9","title":"From Notebook to Nine-Nines: Productionising ML","description":"A migration story across four teams: the ownership model, the CI that made it safe, and the two rewrites we would skip if we did it again.","startTime":"2027-05-11T17:00:00.000Z","endTime":"2027-05-11T17:30:00.000Z","room":"Golden Gate Ballroom","tracks":[{"name":"Infrastructure & Scale","color":"#10b981"},{"name":"Product & Practice","color":"#ec4899"}],"format":"Talk","level":"Intermediate","tags":["DevEx"],"speakers":[{"displayName":"Elena Vasquez","firstName":"Elena","lastName":"Vasquez","jobTitle":"Director of Engineering","company":"Halcyon Data","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Elena-Vasquez","bio":"Elena has migrated four companies from notebooks to production and has strong opinions about which parts of that journey are optional.","role":"speaker"}]},{"id":"cmsky61v2009en7pkdt4tuscg","title":"Human-in-the-Loop Without Being Human-Hostile","description":"Review queues, escalation and undo, designed so the humans in the loop stay willing to be in it. Patterns, anti-patterns and measured throughput.","startTime":"2027-05-11T17:30:00.000Z","endTime":"2027-05-11T18:15:00.000Z","room":"Presidio Room","tracks":[{"name":"Product & Practice","color":"#ec4899"}],"format":"Panel","level":"Beginner","tags":["DevEx"],"speakers":[{"displayName":"Grace Oyelaran","firstName":"Grace","lastName":"Oyelaran","jobTitle":"Product Engineer","company":"Fernwood","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Grace-Oyelaran","bio":"Grace designs and ships AI features end to end, and has opinions about streaming interfaces that she will share at length.","role":"speaker"},{"displayName":"Sofia Bianchi","firstName":"Sofia","lastName":"Bianchi","jobTitle":"Engineering Manager","company":"Vantage Grid","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Sofia-Bianchi","bio":"Sofia manages two platform teams and treats developer experience as a reliability concern.","role":"speaker"},{"displayName":"Elena Vasquez","firstName":"Elena","lastName":"Vasquez","jobTitle":"Director of Engineering","company":"Halcyon Data","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Elena-Vasquez","bio":"Elena has migrated four companies from notebooks to production and has strong opinions about which parts of that journey are optional.","role":"moderator"}]},{"id":"cmsky602w008vn7pksa7j1xc1","title":"Shipping Agents That Don't Melt Down at 3 A.M.","description":"A field report on running long-lived agents in production: timeouts, retries, poison inputs, and the runbook that finally made the pager quiet.\n\nWe started with one agent that could file a support ticket and ended up with a fleet of them touching billing, inventory and customer email. Everything that broke, broke at night — a tool call that hung for nineteen minutes, a retry loop that re-sent the same refund four times, and a prompt change that quietly doubled token spend on the busiest queue of the week.\n\nThis keynote walks through the three incidents that reshaped our architecture and the guardrails we shipped after each one: hard per-step deadlines, idempotency keys on every side effect, a spend ceiling enforced outside the model, and a replay view that lets an on-call engineer see exactly what the agent believed at the moment it went wrong.\n\nYou will leave with the runbook we now hand to every team before their agent gets production credentials, the four dashboards we page on, and an honest account of which safeguards were worth the engineering time and which ones we deleted six weeks later.","startTime":"2027-05-12T16:00:00.000Z","endTime":"2027-05-12T16:45:00.000Z","room":"Golden Gate Ballroom","tracks":[{"name":"Agents & Tooling","color":"#f59e0b"},{"name":"Infrastructure & Scale","color":"#10b981"}],"format":"Keynote","level":"Advanced","tags":["LLMs","DevEx"],"speakers":[{"displayName":"Samuel Adeyemi","firstName":"Samuel","lastName":"Adeyemi","jobTitle":"CTO","company":"Pathfinder Robotics","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Samuel-Adeyemi","bio":"Samuel leads engineering at Pathfinder Robotics, where models plan and humans still hold the stop button.","role":"speaker"}]},{"id":"cmsky60b0008xn7pkyfowpm74","title":"Evals as a Product Surface: Making Quality Legible","description":"Evaluations are usually treated as an internal chore. We shipped ours to customers instead, and it changed how the whole team argued about quality.","startTime":"2027-05-12T17:15:00.000Z","endTime":"2027-05-12T17:40:00.000Z","room":"Mission Hall","tracks":[{"name":"AI Engineering","color":"#6366f1"}],"format":"Talk","level":"Intermediate","tags":["Evals"],"speakers":[{"displayName":"Diego Ferreira","firstName":"Diego","lastName":"Ferreira","jobTitle":"Staff ML Engineer","company":"Cartograph AI","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Diego-Ferreira","bio":"Diego works on evaluation tooling and spends most of his week arguing that a benchmark you cannot reproduce is a rumour.","role":"speaker"}]},{"id":"cmsky60gs008zn7pkj7lapja9","title":"The RAG Is Dead, Long Live Retrieval","description":"Three years of retrieval architectures, what survived, what did not, and why the boring parts (chunking, freshness, permissions) still decide the outcome.","startTime":"2027-05-12T18:00:00.000Z","endTime":"2027-05-12T18:25:00.000Z","room":"Presidio Room","tracks":[{"name":"AI Engineering","color":"#6366f1"}],"format":"Talk","level":"Intermediate","tags":["LLMs","Retrieval"],"speakers":[{"displayName":"Amara Okonkwo","firstName":"Amara","lastName":"Okonkwo","jobTitle":"Second Base","company":"Northwind Labs","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Amara-Okonkwo","bio":"Amara builds retrieval systems that survive contact with real users. She has spent eight years on search infrastructure and now leads the applied AI group at Northwind Labs.","role":"speaker"}]},{"id":"cmsky6210009in7pk1kjy1fi0","title":"Sponsor Showcase: Kestrel Compute","description":"A twenty-minute look at how Kestrel Compute schedules mixed CPU/GPU workloads, presented by our platinum sponsor.","startTime":"2027-05-12T19:30:00.000Z","endTime":"2027-05-12T19:55:00.000Z","room":"Golden Gate Ballroom","tracks":[{"name":"Infrastructure & Scale","color":"#10b981"}],"format":"Talk","level":null,"tags":[],"speakers":[{"displayName":"Jonas Weber","firstName":"Jonas","lastName":"Weber","jobTitle":"Infrastructure Lead","company":"Kestrel Compute","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Jonas-Weber","bio":"Jonas has been on call for GPU fleets since before it was fashionable. He writes about scheduling, spot capacity and the true cost of a token.","role":"speaker"}]},{"id":"cmsky60ok0091n7pklyeqd975","title":"Cutting Inference Costs 70% Without Touching the Model","description":"Caching, batching, routing and quantisation, measured end to end on a real workload. Includes the changes that looked clever and made things worse.\n\nOur inference bill grew faster than our traffic for two quarters straight, and the obvious answers — a smaller model, a cheaper provider — were off the table for quality reasons. So we went looking for the money everywhere else: in the cache we were not reusing, in the requests we were sending one at a time, and in the long tail of prompts nobody had read since launch.\n\nIn this hands-on session we rebuild that programme from scratch against a live workload. You will add a prompt cache and measure the real hit rate rather than the hoped-for one, batch a stream of requests and watch the latency percentiles you just traded away, route by difficulty so the expensive path only handles the requests that need it, and trim context that has been dead weight since the second sprint.\n\nWe finish with the cost model we now review monthly — cost per resolved request rather than cost per token — plus the two optimisations we rolled back and the graphs that told us to. Bring a laptop; every exercise ships with a workload you can run locally.","startTime":"2027-05-12T20:30:00.000Z","endTime":"2027-05-12T22:00:00.000Z","room":"Workshop Loft","tracks":[{"name":"Infrastructure & Scale","color":"#10b981"}],"format":"Workshop","level":"Advanced","tags":["DevEx"],"speakers":[{"displayName":"Jonas Weber","firstName":"Jonas","lastName":"Weber","jobTitle":"Infrastructure Lead","company":"Kestrel Compute","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Jonas-Weber","bio":"Jonas has been on call for GPU fleets since before it was fashionable. He writes about scheduling, spot capacity and the true cost of a token.","role":"speaker"},{"displayName":"Priya Ramanathan","firstName":"Priya","lastName":"Ramanathan","jobTitle":"Head of Platform","company":"Lumen Systems","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Priya-Ramanathan","bio":"Priya runs the platform team at Lumen Systems, where she is responsible for the inference tier that everything else quietly depends on.","role":"speaker"}]},{"id":"cmsky60ue0094n7pkmu47qo1q","title":"Structured Output Is a Distributed Systems Problem","description":"Schema drift, partial responses and retries: why validating model output belongs in the same mental model as any other unreliable network call.","startTime":"2027-05-13T16:30:00.000Z","endTime":"2027-05-13T16:55:00.000Z","room":"Golden Gate Ballroom","tracks":[{"name":"AI Engineering","color":"#6366f1"},{"name":"Agents & Tooling","color":"#f59e0b"}],"format":"Talk","level":"Advanced","tags":["LLMs"],"speakers":[{"displayName":"Mei-Lin Chao","firstName":"Mei-Lin","lastName":"Chao","jobTitle":"Founding Engineer","company":"Tessellate","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Mei-Lin-Chao","bio":"Mei-Lin is a founding engineer at Tessellate, building structured-output tooling for teams who need model responses to be parseable on the first try.","role":"speaker"}]},{"id":"cmsky61260096n7pkhsi1scsa","title":"Building a Tool-Calling Runtime in 300 Lines","description":"Live-coded from an empty file: a minimal, debuggable tool-calling loop with cancellation, tracing and a sandbox, and what each abstraction buys you.","startTime":"2027-05-13T18:00:00.000Z","endTime":"2027-05-13T19:30:00.000Z","room":"Embarcadero Studio","tracks":[{"name":"Agents & Tooling","color":"#f59e0b"}],"format":"Workshop","level":"Intermediate","tags":["Open Source","DevEx"],"speakers":[{"displayName":"Tobias Andersson","firstName":"Tobias","lastName":"Andersson","jobTitle":"Developer Advocate","company":"Rivergate OSS","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Tobias-Andersson","bio":"Tobias maintains three open-source agent libraries and one very long changelog. He cares about docs more than demos.","role":"speaker"}]},{"id":"cmsky618n0098n7pkih8yxv9z","title":"Observability for Nondeterministic Systems","description":"Traces, spans and sampling when the same input legitimately produces different output. What to log, what to redact, and how to make it searchable.","startTime":"2027-05-14T17:00:00.000Z","endTime":"2027-05-14T17:25:00.000Z","room":"Mission Hall","tracks":[{"name":"Infrastructure & Scale","color":"#10b981"}],"format":"Talk","level":"Advanced","tags":["DevEx"],"speakers":[{"displayName":"Yuki Tanaka","firstName":"Yuki","lastName":"Tanaka","jobTitle":"Applied Scientist","company":"Orinoco Labs","headshotUrl":"https://api.dicebear.com/9.x/notionists/svg?seed=Yuki-Tanaka","bio":"Yuki bridges research and product, mostly by writing the harness nobody else wants to write.","role":"speaker"}]}]}