View this post on the web at https://newsletter.posthog.com/p/2030-shaped-software
By 2030, AI agents will be the primary users of software.
Many of the conversations and decisions about what we’re building now are impacted by this. More and more, we’re aiming towards building “2030-shaped software.”
This is a vague aspiration and “agent-first software [ https://substack.com/redirect/14fec710-af6c-462a-b0a0-8284e481f324?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]” isn’t much better. But, while we can’t predict the future, we can share how we’re thinking about the problem.
Human and agent work is split
The current era of software is designed for humans to do all the work, but in 2030, agents will be the ones doing. Agents have shown that they can do the obvious stuff themselves. What does this leave humans to do?
Judging and deciding. Humans will approve, prioritize, choose direction, and resolve ambiguity.
Understanding and trusting. Humans will evaluate whether it worked, if it’s safe, and what’s changed.
“Doing” UI like buttons and forms are going away. They will be replaced with UI that supports the two types of work above. This helps optimize humans’ limited time and energy by pointing them where their input actually matters.
Product infrastructure is agent-first
If a human can do something with your product, agents should be able to do it too. This means complete APIs, an MCP server [ https://substack.com/redirect/64f71e67-4b85-4d45-8cac-8c433279a3d0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], tools, and permissions. Build for agents as a primary surface [ https://substack.com/redirect/4a4c3a5b-7b45-4fdf-bcc7-c921e6d94ded?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], not an afterthought.
Missing capabilities are a failure mode. Say you ask an agent to set up an A/B test [ https://substack.com/redirect/dd57fb37-6a78-42d7-b1be-c832d4cb8df9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. It creates the feature flag [ https://substack.com/redirect/22f7d7ae-691c-4841-ab0c-c464cecb85ab?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], builds the insight, wires up the events, and stops because you never exposed a tool to create the experiment. It now has to ask you to do that part which defeats the purpose of using agents.
This doesn’t mean that tools are all you need. It won’t be enough to just let Claude use your product on its own. Relying entirely on a model provider is too much risk. Building your own harness lets you guarantee quality, protect your brand, and make continuous improvements. Even OpenAI notes [ https://substack.com/redirect/40f05742-6d17-414d-9e38-3d35088094a1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] that agents struggle not because they are incapable, but because they lack “the tools, abstractions, and internal structure required to make progress toward high-level goals.”
Context is what makes your agent special. The model is the same for everyone, your moat is the source code, usage data, customer data, and product skills you feed it. This means context engineering [ https://substack.com/redirect/6f41aa3d-ea3e-4c07-bd9c-ee74a2715239?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], creating pipelines and flows to get fresh, valuable context to the agents when they need it.
Chat is the front door, generative UI inside
People like to complain about chat as an interface, but we think it's a good one. There's a reason why it's still the primary interface to work with agents and companies are doubling down with products like Slack apps – have you tried the PostHog Slack app [ https://substack.com/redirect/201920ce-11d9-4def-83bd-4405dbb8ca7c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] yet? Telling an agent what's needed and letting it go do it is a powerful interaction method.
But chat isn’t enough because sometimes reading a paragraph is worse than glancing at a chart or flicking a toggle. Text can be too low bandwidth as it’s flexible but linear; a UI is legible but rigid. Generative UI is in between.
Most generative UI will be disposable, but some will become artifacts: outputs worth keeping, sharing, and forking. Examples include reports, documents, code, pull requests, configuration, and even entire apps. All of them are backed by your app's data. Generative UI is how you work with the agent right now; artifacts are what you walk away with.
Build UI when text isn’t enough
Text and generative UI cover much of what a product needs, but not everything. Some jobs will continue to need persistent, purpose-built UIs, like:
Trust and verification surfaces confirming the agent did what you wanted. Checking work, not doing it.
Triage and inbox surfaces listing decisions that need a human. Approvals, ambiguous calls, unclosed support tickets.
It's tempting to make your UI agent-first by removing the buttons, forms, and other parts of the UI that power the doing, but this is a half-measure. Most of this new "read-only" UI can be delivered as text by an agent, making it redundant and misaligned with what humans need the UI for.
Take our feature flags [ https://substack.com/redirect/22f7d7ae-691c-4841-ab0c-c464cecb85ab?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] page. The jobs to be done are:
Is my flag rolled out?
To whom?
Does it have a payload?
What type is it?
An agent can answer all these questions in a sentence. You're not verifying the agent's work and there's no decision to be made. You're just checking the flag's state. A 2030 flags page shows how agents change rollouts and previews a pull request to clear up stale flags.
The question to ask is: is a human looking at this for trust and judgement, or to act? If it’s an action, give the agent the capability. If it’s to trust or judgement, build for that specifically.
Be everywhere
Agents don't work like apps. They run on their own, often for a long time. Nobody should have to sit in a browser tab watching them. 2030 products come to their users, no matter if that means desktop [ https://substack.com/redirect/3041c728-65e8-45fd-bff7-d3ee82165783?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Slack [ https://substack.com/redirect/201920ce-11d9-4def-83bd-4405dbb8ca7c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], mobile, email, API, or voice.
These are a shared control plane between humans and agents. Thin clients over a shared backend, so the experience is the same anywhere and the handoff between surfaces is seamless.
This pushes you towards cloud-first. The real bottleneck when working with agents is concurrency and babysitting. Builders want to run many agents at once, point them at a backlog, and refine the output from anywhere. On-device execution can’t do that.
Cloud-first only works if all that infrastructure is excellent. Sandboxes need to be rock solid: fast repo imaging, snappy execution, no crashing or freezing. Your app is ubiquitous, your infrastructure invisible.
Building 2030-shaped software now
2030 software requires a lot of changes, and 2026 is not 2030. As a company with multiple successful products [ https://substack.com/redirect/7d34251c-aa0e-497f-bce7-084757d25948?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and thousands of users relying on us, the hard part is getting there while having a real product and revenue to support. Do we retrofit or start fresh?
Retrofitting maximizes reach, that’s where our users already are, but we inherit all our 2026 patterns. Every change draws complaints from users attached to the way things work today (not to mention the tech debt).
Starting fresh means a clean break with years of cumulative UI built on assumptions that might not be valid or relevant. The people who opt in are early adopters who want to co-create the future with us. They don’t complain about what’s missing, they tell us what they need. The cost of this is convincing existing users to switch (eventually) and splitting focus with our existing products while we do.
We’re cheating a bit and going semi-fresh, using our existing data and infra on a new surface. We’re expanding our existing PostHog Code app [ https://substack.com/redirect/3041c728-65e8-45fd-bff7-d3ee82165783?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to fit our 2030 vision first before migrating other surfaces. It’s already where the best agents live, it draws exactly the early adopters we want, and it’s simple enough to be a genuine blank slate.
Without this change, we risk building 2026-shaped software with AI bolted on. We answer “how do we add AI to this” rather than “what is the agent-first version of this?” We can’t predict 2030, but don’t need to be right about the details to build in the right direction. The companies that matter in 2030 will be the ones who started building for it well before they had to.
Words by Ian Vanagas [ https://substack.com/redirect/985fdf83-393e-42f9-90c9-885859754407?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] who’s looking forward to 2030 software almost as much as a 2030 World Cup.
Share with someone who should be building 2030-shaped software.
📅 2026 blog posts you should read now
Our session replays are opening their own pull requests [ https://substack.com/redirect/8f4d7520-b0e9-4959-a075-61a59149f982?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Sara Miteva
The Future of SaaS Is Agentic [ https://substack.com/redirect/00b4a721-3e35-440d-b887-10ad279ec0b1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Arjun Kashyap
Riding Technology Waves [ https://substack.com/redirect/d1b8b6d4-c160-4410-b674-83931b9c9b3a?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Stay SaaSy
Own the Outer Loop [ https://substack.com/redirect/21bfe7da-6d61-4e37-a393-482a5c35e214?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Addy Osmani
Why AI hasn’t replaced software engineers, and won’t [ https://substack.com/redirect/0cbe34a9-c6bb-4435-83f5-0afd95d49bdd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Arvind Narayanan and Sayash Kapoor
💼 Join us on our journey
AI Research Engineer [ https://substack.com/redirect/075bd6a3-444c-485e-b9b0-95492c8cb7c5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Site Reliability Engineer (Pacific timezone) [ https://substack.com/redirect/37e8c53d-842a-4e93-9e2a-669c60ebe284?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
BDR Team Lead [ https://substack.com/redirect/4d62a466-9f6f-48e4-8ec0-ef0f710b3020?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Context Engineer [ https://substack.com/redirect/bb7f91ab-d3a9-476d-948f-253513e697b9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Backend Engineer [ https://substack.com/redirect/7dc5c7d7-857b-4e19-a409-26e21477fd83?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakl3TnpFMU5UTTJNQ3dpYVdGMElqb3hOemcwTlRZNU9UazFMQ0psZUhBaU9qRTRNVFl4TURVNU9UVXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5Tal9BM0tHSkd6WW5hRDEwNVlFNF9sb1piay1yTEFDSVBENVhMRGMxdmQ0IiwicCI6MjA3MTU1MzYwLCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc4NDU2OTk5NSwiZXhwIjoyMTAwMTQ1OTk1LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.AH-MHafLn0OGN4bpRhMJ8tRe8wF3gz-9fgDGILXmVzM?
View Email
2030-shaped software
productforengineers@substack.com7/20/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/product-for-engineers-is-now-build
We’re rebranding Product for Engineers as build mode to better cover everything it takes to build successful products from now into the future. Here’s why.
We accomplished our original goal
We started Product for Engineers to challenge the idea that engineers only care about code.
We showed that engineers can flex their product muscle, talk to users directly [ https://substack.com/redirect/64ad56cf-ced6-4b8f-a191-2828e2d7bfb1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], be opinionated about what to work on [ https://substack.com/redirect/e7096cc8-9bb3-4aeb-aa67-8b24493f803f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], work autonomously to ship features, and figure out if they are successful. The tens of thousands of subscribers we amassed, the rise in popularity of the product engineer role, and 100+ YC startups hiring them now are proof we accomplished this.
Along the way, we learned product engineers care about more than just product. They care about building a successful company and career more broadly. After all, great products come from the people and companies who build them.
Following the advice to “build write something people want,” we wrote about everything from finding a job [ https://substack.com/redirect/34efc8ca-1f57-4f10-94d2-2abcf9ca1683?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to scaling a startup [ https://substack.com/redirect/327b960b-4cb2-4af7-9bd3-d85b3e3e5aaa?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to marketing [ https://substack.com/redirect/e3c20129-5d54-4cde-9715-aabb99b981b2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to collaboration [ https://substack.com/redirect/9be89d42-6859-4528-b35d-6c56d547db7d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
But every post like this pulled us away from the “product” framing in our name. Helping people build more successful products meant a lot more than just helping engineers do product.
AI changes engineering and the meaning of “engineer”
The other part of our name has also seen huge changes because of AI.
First, people are building AI-powered products and using AI to do so. Last week, PostHog saw 3.5M MCP [ https://substack.com/redirect/e7980e38-0725-401c-91c4-237adba8f897?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] tool calls, nearly 100K PostHog AI [ https://substack.com/redirect/6b1f5c70-f54b-4eb7-9015-2401aa5de2d6?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] chats, and 40% of experiments created through our MCP. Our AI observability [ https://substack.com/redirect/34e38a43-89c5-4879-9798-12daa308f393?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] product grew 17x in the last year. Building the best products now requires building for agents [ https://substack.com/redirect/a0371208-e749-497a-baf9-4d7dde18a4ec?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], writing loops [ https://substack.com/redirect/9b9960a7-79c8-45fa-a8de-0cdec0e8c9d5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and making full use of AI coding tools [ https://substack.com/redirect/005c01d6-2d9a-4eed-8203-13a0c69e9009?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Second, AI has made it possible for anyone to build. The engineeringification of everything [ https://substack.com/redirect/334a88b5-106c-4894-ab49-c869914c2955?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] is real. Salespeople ship features [ https://substack.com/redirect/49ffff68-5f1b-4c60-a6c0-b17cb18296d3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], product managers fix bugs [ https://substack.com/redirect/ca75809d-cbd2-4548-a94e-ec224d9db327?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], marketers build video games [ https://substack.com/redirect/4dbfd9b1-48e4-4167-b14a-2f8aadd85eaa?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Our posts are relevant to a new group who don’t exclusively label themselves as engineers.
PostHog as a company is changing to reflect this. Beyond building more for AI, our ICP [ https://substack.com/redirect/15b2d4be-bc2f-49a3-9876-080bbc02b529?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] has changed from engineers at high growth startups to the people building products in AI-pilled software teams at any scale. Our newsletter should reflect this change too.
The Product for Engineers brand wasn’t resonating for us or our readers, so we’re changing it and going build mode.
What is build mode?
The tools, tactics, and taste builders need to build successful products, companies, and careers like:
How to build AI-native products [ https://substack.com/redirect/a0371208-e749-497a-baf9-4d7dde18a4ec?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] (and agents [ https://substack.com/redirect/52ad0b25-0160-4717-b0f7-dfccaf710c83?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]) successfully
How to leverage AI to build more successful products and careers
How to build a successful company [ https://substack.com/redirect/235e523f-0949-487b-b1c3-81329f02fa26?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], culture [ https://substack.com/redirect/2b9e4edd-195b-4ea6-a130-aed06f164817?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and brand [ https://substack.com/redirect/5c6e7d3c-8456-4357-be24-a281e8205afb?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Lessons from the frontlines [ https://substack.com/redirect/c4293ffc-e915-4474-9cbd-adb3e80a3d5b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] of doing all of the above at PostHog [ https://substack.com/redirect/200850c5-5c87-4be1-853d-93a2d54cc95c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
build mode is a reflection of what's happening now and what we think matters to builders going forward. Our upcoming posts will cover what we think the future of software looks like, writing agent skills, and an explainer on effort levels.
It turns out that when code is cheap, the product skills we wrote about become even more important. AI enables more people to build and takes them further, faster, but it still needs the guidance, judgement, and taste only you can provide. Build mode aims to help you with this as best as we can.
Go build mode.
Words by Ian Vanagas [ https://substack.com/redirect/0832f862-ad35-47ce-8afa-92bb904b0a13?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] who will miss our mascot Swolehog.
Share to make your friends and family go build mode
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakl3TmpRMU9URXhOQ3dpYVdGMElqb3hOemd6T1RZNE1EQTFMQ0psZUhBaU9qRTRNVFUxTURRd01EVXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5lOHQtMHhHZGhFVjJMSDFtSFJ5aUtEeUlmb2w3ekZyYnJITEpFdjFiYkNVIiwicCI6MjA2NDU5MTE0LCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc4Mzk2ODAwNSwiZXhwIjoyMDk5NTQ0MDA1LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.B_K4FDb9iinVfvWdui9oU2sFoTj3D-mBB_Cijf9P9bQ?
View Email
Product for Engineers is now build mode
productforengineers@substack.com7/13/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/code-review-tips
Agents are writing code faster than any human can review.
The naive solution would be for developers to review code faster. The 500 IQ take is for developers to review as little code as possible.
If you need to be involved in every code review, you will always be the bottleneck. Instead, put yourself outside of the code review loop by building a pipeline that delegates tasks to agents.
We asked engineers at PostHog how they’ve been reviewing AI-generated code to keep shipping fast without losing quality.
Here are four workflow changes you can steal (with prompts included) to make your life easier.
1. Make agents review code for you
The number one thing to add, if you haven’t yet, is a way for agents to review code for you.
The goal is to offload the simpler reviews to agents, and flag if something genuinely needs a human.
The key is that the agent that wrote the code can’t be the one that reviews it. Agents are bad at checking their own work since they’re often unaware of their own blind spots.
For the same reason, it’s better to have multiple agents with different instructions and goals to cover more gaps, as well as different models and providers for different reviewers.
Here’s how one of our engineers, Paul D’Ambra [ https://substack.com/redirect/41795cf2-2ceb-4191-b54d-451c4d8349c6?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], makes his own custom agent review system work:
First, qa-swarm [ https://substack.com/redirect/9417bdb3-5ec1-4852-b27b-de38c845aa0d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] spawns four reviewer agents, each with their own special instructions:
qa-team – spawns technical subagents that hunt for security, database, performance, etc.
security-audit – probes for vulnerabilities like SQL or prompt injections
paul-reviewer – uses Paul’s voice and focuses on observability, rollouts, naming
xp-reviewer – applies an Extreme Programming lens to review
Then, review-triage [ https://substack.com/redirect/99afd8f3-4bb0-427a-9415-70720e2e20c4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] sorts those reviews to classify threads into three categories:
actionable → gets fixed and pushed
nits → get resolved and replied to with a comment
ambiguous → escalated and sorted for Paul to work through with the agent later
An outer loop iterates up to three times or until no new actionable threads appear.
From there, you can connect this to another loop that shepherds the PR until it’s ready to merge – more on that in the next section.
The takeaway: Save time reviewing code by making agents [ https://substack.com/redirect/348d19b5-d815-4abb-bf42-d109eacc6b1c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] review each other. This knocks out easier reviews so that only the PRs that really need human attention get flagged.
Steal this
You can check out and copy Paul’s qa-swarm [ https://substack.com/redirect/bc443047-cf16-42d1-b528-033ffb0248c7?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and review-triage [ https://substack.com/redirect/99afd8f3-4bb0-427a-9415-70720e2e20c4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] skills, or use this prompt to design your own review loop based on his:
Read Paul D'Ambra's qa-swarm skill, plus its sibling review-triage in the same folder, then help me design my own version: https://github.com/pauldambra/dotfiles/blob/main/ai/skills/qa-swarm/SKILL.md
It should take in a single PR, spawn a reviewer panel, triage every finding and existing PR thread into actionable / nit / ambiguous, and keep going until nothing's left but the ambiguous ones flagged for me.
Interview me about my stack, tooling, available models, and how autonomous it should be — what gets auto-fixed vs. only reported, and what it may post to GitHub — before writing the final SKILL.md, then install it.
That said, these systems can get token expensive:
“Something like 60% of my token spend is burned automating the toil of handling CI and review and I don’t regret a single dollar.” – Paul
So if running multiple agents or loops isn’t an option for your team, look for single agent designs like this one [ https://substack.com/redirect/3605d8e9-df73-4d0d-be64-d04aebefe635?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] by Kun Chen.
2. Delegate PR babysitting to loops
The context switching that comes with agentic coding is exhausting. One easy way to reduce that fatigue is by automating code review-adjacent tasks that don’t need your attention.
For example, babysitting a single PR can involve tedious tasks like monitoring CI, re-running flaky tests, checking notifications for comments, and keeping the branch up to date.
Why waste your most precious resource – your energy – when you can just delegate all of it to a loop [ https://substack.com/redirect/34b78ca5-58df-417f-b721-4c6b3dfa6ef1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]?
The takeaway: Reduce context switching and fatigue by delegating simple tasks like PR babysitting to a loop.
Steal this
You can implement your own PR babysitter skill, based on babysit-prs [ https://substack.com/redirect/a722a2d7-86db-4737-9704-c7217d050aab?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] by Phil Haack [ https://substack.com/redirect/5c4a198b-a4fa-4d40-9541-baa9f496e65e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]with the prompt below. (It works best if you run it after creating a review loop skill from the previous section.)
Read https://github.com/haacked/dotfiles/blob/main/ai/skills/babysit-prs/SKILL.md and adapt it for me: same sweep/state design, but it dispatches my own single-PR review skill via a spawned agent per unreviewed PR.
Before writing SKILL.md, interview me on: which skill it dispatches and where my skills live, my stack/tooling/models, and which extra tasks to include — CI monitoring, branch freshness, flaky-test reruns, lint/format autofix, regenerating drifted artifacts, description sync.
Ground the interview in facts you can discover yourself (my open PRs, gh auth, clone layout) rather than asking about them.
3. Add a PR auto-stamper
Fast-moving teams generate a lot of small, low-risk PRs, and every one still needs approval on GitHub (a.k.a., a stamp).
At PostHog, we used to handle this in Slack where you drop your PR in #dev-stamp-exchange and wait for someone to give it a quick approval and react with a stamp emoji. We even built a leaderboard [ https://substack.com/redirect/19759da3-bfd2-4c59-9640-183760cf666f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for it.
It worked, but each stamp required another engineer to take themselves out of their flow to approve a change they had little to no context on.
Now, most of those are done by our StampHog agent instead. And in just one quarter, it gives the final stamp on roughly 1 in 3 PRs merged into our main repo.
Our engineers add a stamphog label on their PR in GitHub, and it runs a few safety checks based on:
PR state. No merge conflicts or changes requested
Blast radius. Deny list keywords (auth, secrets, billing, public APIs, etc.)
Diff size. Under 500 lines and 20 files
A simple LLM check. For basic showstoppers
If the agent approves, it’ll leave a bare GitHub approval with no line comments.
Otherwise, it refuses or escalates with a 1-2 sentence reason, risk level rating, and next steps. Usually that means routing to a subject matter expert based on CODEOWNERS-soft [ https://substack.com/redirect/311d1908-148d-470a-a8d2-f9e4a8909e05?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and git-blame familiarity.
We still use #dev-stamp-exchange when the agent can’t auto-accept or route, but it’s way less active now. Last month, the StampHog agent took care of 1.6K PRs on its own – that’s 1.6K fewer Slack interruptions for our engineers.
The takeaway: Let an agent can take care of low-context PR approvals and routing to reduce distractions. Use deterministic checks to route sensitive code to humans.
Steal this
The code for StampHog is available here [ https://substack.com/redirect/23dbcdf3-07b7-47bd-97d9-110f5ea773e9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Many of its inner workings are specific to PostHog, so instead of copying it, here's a prompt to start customizing one for your repo based on ours:
Read https://github.com/PostHog/posthog/blob/master/tools/pr-approval-agent/README.md and build the equivalent for the repo at <path>.
Copy the architecture; preserve its safety invariants exactly (fail closed, never request changes or merge, LLM can tighten gates but never loosen).
Their deny-list and thresholds are calibrated to their codebase — re-derive mine: mine my git history for high-blast-radius deny candidates and calibrate size/tier ceilings from my merged PRs, then propose the full gate config for my sign-off before writing any code.
At the same time, ask me whatever you can't derive from the repo — at minimum the CI system and trigger label, escalation routing if there's no CODEOWNERS, and which LLM/SDK to use and how CI gets its credentials.
Leave the result as uncommitted files on my working tree.
4. Verify by observation, not reasoning
Agents [ https://substack.com/redirect/7e88fbe6-5f69-471d-8c3b-f2060d5e44ba?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] are good at explaining why their code works. The explanation is often convincing... but also wrong.
If you run the code end to end, you’ll frequently find errors the agent never reasoned about, or output that’s just slightly not what you asked for.
That’s why Daniel Visca [ https://substack.com/redirect/f6777e75-8dcb-418c-93df-71c259d9dd5f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]‘s rule of thumb is observability over reasoning. Don’t accept an argument that the code works when you can watch it work.
The gold standard is something you can observe directly, like sending a real API request and reading the response. If the behavior is in front of you, you don’t have to trust the agent’s rationale at all. But this has a scaling problem since a 3,000-line PR would be challenging to trust and observe.
His approach is to make agents decompose the work. For example, for a large change (like building a metrics pipeline end to end), he instructs the agent to produce a stack of small, single-purpose PRs and then uses Graphite [ https://substack.com/redirect/dbc290cf-a6f4-4437-a776-2af0fac397b3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for its “stacking” functionality. This makes each diff independently runnable and observable:
At each step of the stack, you can run a real check and confirm the output matches what you expect. Then, as you merge bottom-up, each layer only builds on behavior that’s already been verified.
This way, early mistakes can’t compound, and when something does break, you’re debugging one small diff instead of the whole change.
As a bonus, this lets StampHog from #3 auto-approve the small and focused PRs. You end up with two different checks: the agent reasoning about the code first, and a human observing its actual behavior.
The takeaway: When you can't trust an agent's reasoning, don't read more code; decompose the change until you can watch each piece run. Observation scales better than review.
Steal this
You can set this up by using Graphite to stack smaller PRs produced by your agents with these instructions:
Split work into a stack of small PRs, each under 400 changed lines and focused on a single change, building only on the PRs below it.
Every PR must ship with its own tests and end with a way to observe it working directly — a command to run and the output I should expect.
This approach is especially valuable for frontend work since deterministic tests don’t always capture the visual or behavioral functionality you’re looking for.
Pawel Cebula [ https://substack.com/redirect/3d2ad41a-c8f0-4f6f-813d-856b182c6ff8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] says it’s a huge timesaver to have an agent take screenshots and GIFs for each step, with something like this:
For each PR with frontend work, run the affected screens and capture evidence from the branch's final state: a screenshot of each relevant state (empty, loading, error, populated) and a GIF of the key interaction end to end. Where behavior changes, include before/after.
Attach it all to the PR so the change can be reviewed by observation, not by reading the diff — and re-capture if the code changes after.
Words by Jina Yoon [ https://substack.com/redirect/9c305c1d-b7cb-4f27-9eb8-827d43a090d7?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] who was, admittedly, the bottleneck for this post.
Blogs worth human review
Why we rebuilt our data warehouse and how it unlocks self-driving products [ https://substack.com/redirect/342ec398-7cca-49c4-bff9-f4808da0b961?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Eric Duong
Agentic Failure Modes [ https://substack.com/redirect/82ffb892-db8d-4439-9939-5dbdd6c3f5fd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Dylan Martin
Better Models: Worse Tools [ https://substack.com/redirect/dbc929f2-99da-4648-aa06-714437d7ee47?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Armin Ronacher
Agentic Code Review [ https://substack.com/redirect/b78ec50f-c031-496f-a025-b202a31dcaad?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Addy Osmani
Understanding is the new bottleneck [ https://substack.com/redirect/327dcbf5-4f7d-4125-b945-3bb8c7c43d46?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Geoffrey Litt
🤖 We can’t automate these yet
AI Research Engineer [ https://substack.com/redirect/774d29d6-d61e-423e-9432-6adcfef76c1b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Customer Success Manager - Americas [ https://substack.com/redirect/c9db214e-fe80-4074-bfc4-41a3b6a5971a?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Context Engineer [ https://substack.com/redirect/8839d2da-ab55-4faf-974f-7330d1161b3c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Revenue Ops Manager (sales focused) [ https://substack.com/redirect/7279e8fc-7c46-4946-9ed5-1f15fd6ba1af?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Developer who connects with other developers [ https://substack.com/redirect/653f2b3d-7e2c-4ec6-a93b-57529f42195d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Don’t be selfish – help others steal from us, too
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakl3TmpJME16UTNPQ3dpYVdGMElqb3hOemd6TmpJNE5ESXlMQ0psZUhBaU9qRTRNVFV4TmpRME1qSXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS43bEhnTXJzLUZEYnRld0dnRDRmN1Q3bkpZX1Etb1VvUF9hd01hZWdQdld3IiwicCI6MjA2MjQzNDc4LCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc4MzYyODQyMiwiZXhwIjoyMDk5MjA0NDIyLCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.9S-DruGr0P-sArhdtTUGC6mxyOmDUQBepqyOVtDJbX4?
View Email
Stop being the code review bottleneck
productforengineers@substack.com7/9/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/we-used-ai-to-5x-conversion-and-2x
It all started with a friction log.
A year ago, Josh Snyder [ https://substack.com/redirect/ea6f24f0-e70f-4aa2-8aae-55e9a830f50d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], then on the growth team, binged session recordings of users trying to onboard to PostHog. The long list of failure modes was painful.
But it jolted an idea loose: what if AI could handle the onboarding for you? So we built an AI onboarding wizard.
The PostHog Wizard [ https://substack.com/redirect/908837c7-c8c5-4e5e-a119-0c30713bf2cd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] is an AI agent that fully integrates PostHog into any codebase with a single CLI command. No manual SDK installation, no docs spelunking. Just npx @posthog/wizard.
Early versions were primitive, but today’s wizard completes two hours of work in just 8 minutes. It’s a genuinely magical experience. People LOVE it.
Building it taught us some important lessons about how to build agents people genuinely love (with great ROI, too!), starting with the most important lesson of all...
Lesson #1: Reasoning isn’t the bottleneck
We initially tried solving everything at the agent layer – better progressive disclosure [ https://substack.com/redirect/289b566f-3823-4fae-90ab-b3238efd9c31?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] techniques, multi-step planning, subagents, pruning, compaction – but the gains were marginal.
The biggest improvements came from simply giving the agent more context. A lot more. That told us something about the shape of the problem.
With 20+ products, 17+ SDKs, and 25+ frameworks, there are thousands of ways to integrate PostHog, and each setup requires some piece of technical trivia, like:
Where should PostHog initialize? Client, server, both, or serverless?
How do events get sent? Direct, or through a reverse proxy?
How are pages rendered? SSR or SSG? RSC?
The agent routinely got these details wrong because it was operating in a context deficit. So we started engineering the context that powered it.
(The wizard is open source [ https://substack.com/redirect/c4d6d514-f044-4105-917c-d12915f7ae63?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. You should steal it!)
Our Docs team of technical writers became a Docs & Wizard team of context engineers – same people, different mission. Their job became building a library of context for agents, and a delivery system that made it accessible.
The result was a company-wide context layer that could pull from everything we maintained: docs, source code, SDK references, example apps, anything that could widen the scope of what the agent could handle.
Remember: If your agent is tackling a high-variance problem like onboarding, reasoning usually isn’t the bottleneck. Context supply is.
Lesson #2: Don’t hardcode knowledge
The naive way to supply more context (which we did) was to hardcode it into its harness.
In v1 [ https://substack.com/redirect/d93f452a-f6f2-4cca-8bc4-228ae0188869?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], the wizard’s context and code were locked together, so the two couldn’t scale independently. Supporting a new framework or product in the wizard meant shipping a whole new agent.
Our answer was the context mill [ https://substack.com/redirect/ac0780a3-a88f-4312-bf9e-03a89a4f88b2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], an assembly-line service for turning scattered PostHog knowledge into portable, versioned zip files that agents can consume remotely.
Here’s how the context mill works:
It pulls context from our docs, source code, Open API specs, example apps, and other maintained sources.
It assembles the source material into a collection of zip files and cuts a versioned GitHub release.
It delivers each one as a skill or registers it with an MCP server as a resource.
It reaches every downstream agent without a redeploy or update.
This lets us generate large libraries of skills that cover our entire platform with just a few simple build scripts. Then, at runtime, the wizard can browse a “skill menu” from the context mill’s manifest and choose the best skill for the job.
For example, if there’s a framework we don’t support yet, like serverless Next.js, we load the context into the mill and send it straight to the agent. It’s continuous context delivery.
The same pipeline also delivers skills to our AI plugins [ https://substack.com/redirect/b05bfa31-abae-4125-8df2-5bbc543d638e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], PostHog Code [ https://substack.com/redirect/d99ef6d4-42e7-4e82-a332-ec01c34e1dd5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and our MCP [ https://substack.com/redirect/f76182ce-fe22-4ca7-8dcc-82a80eb31054?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] server.
Remember: The fastest way to make an agent obsolete is to hardcode its knowledge. Decouple the context from your harness and assemble it from sources of truth.
Lesson #3: Fix context drift at the source
The context mill solved packaging and distribution, but the wizard was still instrumenting out-of-date SDK versions and settings. We realized its context was going stale further upstream, at the source.
The culprit was something we’re very proud of: we ship fast. Like, weirdly fast [ https://substack.com/redirect/860e99be-bb7d-49fc-bbab-d64d8a608ddb?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Our cracked engineers were moving faster than our documentation could keep up with, which meant drift crept into the context mill’s output.
So we added a docs agent to close the loop on knowledge management.
It uses a system of deep research subagents with RAG powered by Inkeep [ https://substack.com/redirect/7ef0cc8a-d82b-4fe6-a70c-bbee7ce16c68?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. The docs agent retrieves embeddings across our entire platform and internal repos, follows our style guide, and uses skills and MCPs to draft documentation.
Now every merged feature PR creates a corresponding docs PR, cross-referenced across multiple sources, diffed against existing pages, and ready for a human to review.
Within weeks, our docs velocity matched our code velocity. We’re at an all-time high in both.
Remember: If your context drifts, so does every agent consuming it. Build tight feedback loops, human-reviewed where necessary, between your sources and their maintained knowledge bases.
Lesson #4: Reuse context to compose new skills
Our context mill was delivering fresh but unstructured context at first. We needed a way to shape it into skills the agent could run.
So we gave the wizard a declarative YAML spec – a recipe for which pieces of context to pull together and how to assemble them into skills.
Say we want to teach the wizard how to set up Error Tracking [ https://substack.com/redirect/c5bb6368-1873-48d6-8161-f1ce30b84389?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. The context spec might include:
A product overview
The relevant SDK reference
An example app
But error tracking doesn’t work the same way in every language, so the spec also defines variants. The shared content stays put, and each variation swaps in its own specifics:
Shared: the product overview, the core instructions
Python: the Python SDK reference, a Flask example app
JavaScript: the JS SDK reference, a React example app
The context mill then stitches everything into a collection of skills. Namespacing keeps the Python skill and the JavaScript skill from getting tangled up, even though they came from the same context recipe.
That’s how the wizard went from supporting 5 frameworks to 25+ in a few days. Composing context from shared pieces was more flexible and efficient than writing from scratch, even with AI’s help.
Once we had building blocks, we started seeing context shapes that should exist but didn’t, kind of like how building a REST API makes you notice endpoints inside your data model.
Take our audit-3000 [ https://substack.com/redirect/5a34a725-7c01-49e2-b888-7d890df95a2d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] skill from our recent hackathon. It chains multiple product guides, privacy pages, pricing, and a dozen other docs into a hyper-robust workflow that audits a PostHog setup for data integrity. It also comes with arcade games, because why not?
The skill’s shape and scope completely surprised us. But to the team who built it, it was obvious because the pieces were already there. The spec just made the combination easy to see.
Remember: Make context easy to compose, so anyone can mix and match knowledge and rapidly expand what your agents can do. Once experimentation is cheap, you can build powerful new skills based on intuition.
Lesson #5: Eliminate context silos
Going in, we assumed making the wizard work would mean creating context. We spent most of our time digging it out.
Like data, context is generated everywhere, but most of it sits stuck in silos.
We found those barriers everywhere at PostHog. The API references live in the codebase, the installation steps in the docs, and the troubleshooting steps in a runbook. All of it valuable context to the wizard, all of it trapped in separate systems.
We connected the gaps with a network of APIs, MCPs, CI/CD, and gateways, so context can circulate across the company. It looks less like a monolith and more like an ecosystem.
It’s the same plumbing you already use for general software infrastructure, but landscaped for context, so it can run downhill to wherever it’s needed.
When a PR is merged, or a docs page is updated at PostHog, that context can reach an agent within minutes.
With the wizard’s context layer as shared infrastructure, we can ship a new customer-facing agent to production in an afternoon.
Arguably the most powerful source of context we unlocked wasn’t even technical, it was our company handbook [ https://substack.com/redirect/54dc19d4-2477-430d-ac0c-259aa62db832?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Because our business playbooks are open source alongside our docs, the same context system that produces skills for Next.js integrations can produce skills to support enterprise customers, or run marketing campaigns.
Today our small teams [ https://substack.com/redirect/9c11151f-b65c-4651-bcee-1130a37dccf0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] are building their own fleet of wizards. Many as forward-deployed agents to help users with support, outreach, sales playbooks, and other business motions.
Turns out being a transparent company [ https://substack.com/redirect/2861eb86-b03a-4a4c-9859-52ff711971f1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] also makes you agent-ready.
Remember: The context with the most leverage is the context you already have. Building shared infrastructure will free the context trapped within your systems to accelerate agent development across teams.
Lesson #6: Investing in context pays off
The wizard is one of the highest-impact things we’ve shipped, and the context behind it is the main reason why.
Here’s how it changed our onboarding:
5x paid conversion: 14.2% of wizard users convert to paid usage vs 2.6%
2x faster activation: first event in 1.9 hours vs 3.8, with 94% activating within one hour vs 67%
80% larger MRR in the first paying month
Building a context layer is high-leverage for any company shipping agents, but it takes real investment and a shift in how you think about the work.
We created a whole new team [ https://substack.com/redirect/69ac77dc-def1-4008-9e16-d54ceabd6a53?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for it. It’s a kind of work that didn’t exist a year ago, and it’s only going to get bigger as more of what companies ship runs on agents.
The job is context.
Words by Edwin Lim, who listed “context engineer” as an occupation and then had to explain it to his landlord over the phone.
Share this with someone who could use some more context.
💻 Other jobs at PostHog
AI Research Engineer [ https://substack.com/redirect/394a6af1-859a-4780-8251-f77d8d94da67?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Customer Success Manager [ https://substack.com/redirect/d760f3f8-9b2f-4928-80ce-124e279c8675?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Product Engineer [ https://substack.com/redirect/f0dd064b-9a06-41ba-ad2b-fc0f820eb48c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Revenue Ops Manager (sales focused) [ https://substack.com/redirect/07260708-acac-44d2-bfca-d34dedd3ef87?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Account Executive [ https://substack.com/redirect/aca6193c-3f01-4cbe-bac3-b306e6cfa070?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
➕ Add these to your context layer
What is distributed tracing? (A guide for engineers) [ https://substack.com/redirect/62b5babe-2291-4610-bd4d-592b590eb718?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Daniel Visca
The Coming Loop [ https://substack.com/redirect/34cad3e7-a99f-43fd-8486-05d507b0d2d1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Armin Ronacher
What if your product built itself? [ https://substack.com/redirect/c09d6ed9-8df4-440b-b01b-c0d440ec9043?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Josh Snyder, Cleo Lant
All social media metrics are bad [ https://substack.com/redirect/96506099-14ba-429e-87fd-014e7fdb5bf4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Liam Graham
What is a scout? A technical deep dive [ https://substack.com/redirect/fa743069-07c8-4dcf-98a9-6c9619493b58?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Andy Maguire
Everything (and everyone) is build mode now [ https://substack.com/redirect/c0e666f6-29dd-4297-adbb-f378f1a69589?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Cleo Lant
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakl3TXpNek16QTFOaXdpYVdGMElqb3hOemd5TXpNeE5qSXlMQ0psZUhBaU9qRTRNVE00TmpjMk1qSXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS42OThpSWpTMkUzQktRTTdBQlQ2czVScjFoZVFkbHJaWWM0Q3NMSmJUTkRZIiwicCI6MjAzMzMzMDU2LCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc4MjMzMTYyMiwiZXhwIjoyMDk3OTA3NjIyLCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.eojb8vKRfmuKNZ1sjx4XPA9m-tgfLsONI_2V_7N5Hm8?
View Email
We used AI to 5x conversion and 2x activation
productforengineers@substack.com6/24/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/why-were-bullish-on-loops
When the creators of both OpenClaw and Claude Code speak, people listen. And last week Peter Steinberger [ https://substack.com/redirect/dac9a933-fc69-47c5-b2c7-d94898308898?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and Boris Cherny were both talking about [ https://substack.com/redirect/6d5853b9-7d2a-432c-984b-fd1e94e02c48?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] the same concept: loops.
Their argument? You shouldn’t be prompting agents to write code, but building loops that prompt themselves to write code, so agents can complete long running tasks and you can use multiple agents at once to go further, faster.
What’s needed to engineer a loop?
You need four things:
1. A goal
Agents are capable, but you need to scope the loop so they know what you want them achieve. A loop without a goal is a slop cannon.
2. Context
Context is fuel and loops are often starved of it. Context can include tools, skills, analytics data, errors, memories – any information that helps the agent find work and complete the loop. It’s best to curate context and feed it throughout, rather than dump it all upfront. The agent needs to be able to fetch and react to new inputs.
3. Evaluation
This is how the agent checks itself. Tests [ https://substack.com/redirect/fc5e42f1-9c3d-4695-abd2-ad7c31af778f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], evals, metrics, LLM-as-judge [ https://substack.com/redirect/6ca15516-5d3d-4bf2-92f8-f805e2eb127d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], playgrounds. Test-driven development is so back, or maybe it never left? This is a big difference between loops and prompting: agents do the verification, not engineers.
4. An agent (obviously)
The most basic is using something like Claude Code with a while true (aka Ralph [ https://substack.com/redirect/7204c573-051a-40a2-aee0-77a06b6842a4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]) or using /goal. More complicated is purpose-built harnesses and context systems – e.g. an agent on a cron that pulls signals from your product data and emit work to subagents, or a loop that codegens its own test suite to verify itself.
Good examples of loops include:
PR babysitter. The goal is to get a pull request to pass tests and “get CI green.” The context is the changes (diff) as well as the testing suite, and the evaluation is done by the CI.
Bug fixer. The goal is to fix the bug. The context is the bug report and error trace. The evaluation is the test suite, snapshots, logs.
Flaky test hunter. The goal is to kill flaky tests. The context is CI history and retry logs. The eval is consecutive green runs.
Performance autoresearcher. The goal is to beat a benchmark. The context is the system, metrics, and budget. The eval is whether it is faster, better, etc. on that metric. We recently used Karpathy’s autoresearcher loop and it fixed a 3-year-old bug in our query engine [ https://substack.com/redirect/3d10c885-faac-4f9f-9070-aa33336f57e1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and increased performance by 11%.
Why is everyone talking about loops right now?
Because it works. Yes, Peter and Boris lit the fire, but they’re doing so because it’s a real thing. The real “why now” is new and improved capabilities:
Models are better at long running tasks. METR finds that Opus 4.6 can complete 50% of tasks that take 12 hours [ https://substack.com/redirect/1a428df0-d89a-424a-ba77-a3b26867c4e8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], over 6x the 1 hour 40 minutes of Opus 4 from a year ago. Fable (RIP) pushed this even further.
Stories about huge tasks completed. Stripe performed a codebase-wide migration in a day [ https://substack.com/redirect/7f760541-ad17-4536-8e0c-c04768e0b832?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] that would take a team two months by hand. Lovable found it can now one shot apps that previously took hundreds of prompts to build.
Loops are built-in now. Claude Code shipped a /loop command, both it and Codex have automations, and there’s even a Ralph plugin for Claude Code [ https://substack.com/redirect/695cdf20-83ab-4009-982b-48993316de6b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Subagents separate the loop from the work. The main loop can spin up subagents that do the work and report back, saving tokens and preventing degradation.
Harnesses are maturing. Compaction keeps context windows from filling. Skills and MCP [ https://substack.com/redirect/e3a81d4f-4909-4d3c-a0ce-6eda56125659?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] enable agents to use more tools. Cloud execution lets you kick off a loop and walk away.
Loops didn’t magic themselves into existence based on a couple of tweets. They’re an expression of real industry-wide progress.
Loops are not just a new AI thing
Critics deride loops as a ploy from OpenAI and Anthropic to get everyone tokenmaxxing, but we think there’s a greater goal here: self-driving products [ https://substack.com/redirect/c5a41cf6-2d53-496e-87df-27e3948a8487?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Rather than an engineer needing to prompt an agent to progress a project, the agent can prompt itself. The product improves itself without input. User problems get solved faster and yes, numbers go up.
And here’s the thing, product engineers [ https://substack.com/redirect/a9ec91fa-df9d-4029-893d-bd5fcff77f1f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] already complete this loop manually by:
Collecting data through analytics and talking to users
Building and shipping improvements to their products based on that data
Evaluating how that improvement performed to guide future development
Repeating constantly
PostHog has helped product engineers complete this loop for years now, so we think we’re in a great position to help agents with it too. It’s why we’re betting on building features that help make your product self-driving, like our Slack app [ https://substack.com/redirect/fde7056c-9f11-44c1-a5b3-7c92e995ec3f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], PostHog Code [ https://substack.com/redirect/3318e811-3df7-44e0-9d62-93e35c3b2f6d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and Replay Vision [ https://substack.com/redirect/cd29bffa-8096-4c9e-8040-ad357ab2c1b3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Yes, we’re a little AI-pilled.
There are, of course, limits. Loops aren’t about to eliminate all engineering work, but they can put the 1% gains on cruise control: the bugs, UX issues, paper cuts [ https://substack.com/redirect/497d8ada-c57a-4ee7-9f3d-388c8cacaa79?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and conversion tweaks. The things that drain engineering hours, but rarely need strategic input.
The more you can automate these tasks, the more time you can spend on more impactful and (frankly) interesting work. The “self” in self-driving doesn’t mean autonomy from the engineer, it’s autonomy from user instruction as the starting point.
Code was never the problem
The opposition to loops is easy to understand: it’s another shift in the way software is built. Being told they should be “designing loops” makes engineers feel like they’re being replaced. The work is increasingly abstracted away from writing code.
But the rise of product engineers already showed that writing code was only a small portion of the work. The direction, taste, and empathy of a product engineer remain critical for building successful products in a loop-driven future.
Words by Ian Vanagas whose favorite type of loop is froot.
Share to power the loop that produces more posts like this one.
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakl3TWpJeE9URTNNU3dpYVdGMElqb3hOemd4TnpFNE5UZzJMQ0psZUhBaU9qRTRNVE15TlRRMU9EWXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5yVnlpSThkR0NzRXVEcnlTN0k4cEZ6ZnVudy05THZCVFhMVk9rWExtVU00IiwicCI6MjAyMjE5MTcxLCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc4MTcxODU4NiwiZXhwIjoyMDk3Mjk0NTg2LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.63Wq0eT69qAT2eFi0QyIPO6F3xkKQdzPD6YLQqtjK0s?
View Email
Why we're bullish on loops
productforengineers@substack.com6/17/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/llms-are-picking-winners-heres-how
In the last two years, our traffic from LLMs grew 41x. Every quarter set a new record with no signs of slowing down.
If you’re a skeptic like me, you’re probably about to ask: “WeLL, BuT dOeS iT cOnvErT?”
Yes, yes it does. Better than almost anything else we have.
I’m not telling you this to humble brag (well, maybe a little). I’m telling you because the inverse is also true.
PostHog has 14 products and counting [ https://substack.com/redirect/d473fee9-a4b7-46d8-b254-cb2089a226bf?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and (sadly) not all of them are recommended by LLMs at the same scale or rate. While most models know us for product analytics [ https://substack.com/redirect/ba6a3626-609d-4458-96c8-d4ff6b317abc?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], session replay [ https://substack.com/redirect/f5d8ec4d-735b-445f-925e-308fde435d9b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], error tracking [ https://substack.com/redirect/de381592-3ba4-40e4-864d-647b6987e712?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and feature flags [ https://substack.com/redirect/11674396-0560-420a-8c80-610435c25d3b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], fewer acknowledge we also offer a data warehouse [ https://substack.com/redirect/e7f62829-3c5d-4c55-afa4-13ba16acd963?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], AI observability [ https://substack.com/redirect/d4c89814-5328-4423-8119-09897ebd3615?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], logs [ https://substack.com/redirect/ad858f03-a4ad-4a84-814d-1ef823e6286f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and a lot more.
This is likely the case for your product too. Changing it requires dipping into the mystical new field of answer engine optimization (AEO), which I’ve learned a lot about as the person responsible for it at PostHog over the last year.
1. Do LLMs even know you exist?
Your first step should be finding out if you’re being mentioned at all.
Go to ChatGPT, Claude, and Gemini (make sure memory is off or private mode is on).
Run 3-5 basic prompts a real customer would use like “best X tool” or “alternative to Y” or “recommended Z product.” Being more specific is less helpful here.
See where you show up, are missing, or are misrepresented.
If you want a more robust opinion, pick one of the dozens of AEO tools that have launched in the last year. A decent tool runs hundreds of prompts for you every day, which gives a clearer picture into your LLM visibility over time and across models.
Don’t overthink this, choose a tool that fits your budget comfortably and matches your usual analysis workflow.
The LLMs and your AEO tool will reveal you almost certainly aren’t in the place you want to be (we aren’t). This doesn’t mean you’re doomed, it’s where the rest of this post comes in.
Models rely on both their training data (often from 6+ months ago) and search to create responses. To get into the game, you need your product to show up in the places LLMs are looking.
How do you do this?
2. SEO isn’t dead, it just got a new job
Here’s the least sexy but most obvious piece of advice: most of traditional SEO [ https://substack.com/redirect/6edb925e-dae7-425b-972c-7a69b8ec50ae?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] still works.
Good structure, clear writing, semantic HTML, internal linking, fast load times, answering the damn question instead of burying it under 400 words of “in today’s fast-paced digital landscape…” all still matters.
The takeaway here isn’t “SEO is dead, long live AEO.” It’s that SEO and AEO are drinking from the same well, the difference is how they drink it.
Now, the unit of consumption is a chunk, not a page. Your content needs to be citable in pieces, not just useful as a whole.
Which means the “AEO checklist” most of the industry already agrees on looks something like:
Make your content scannable. Subheadings, short paragraphs, lists where lists belong.
Use natural language. Write like a person explaining something to another person.
Answer questions directly. If someone asks “what is X,” tell them in the first sentence. Supporting context comes after.
Structure for retrieval. H2s that are actual questions, definitions that can stand alone, summary tables, clear data, FAQs.
Be specific. Models favor content with concrete details (real numbers, named tools, specific scenarios) over vague gesturing. “Most teams hate GA4” is forgettable; “73% of teams using GA4 fantasize about leaving” is citable. (I made that up. Google legal team, don’t @ me... it’s probably true anyway.)
I'm not going to pretend I'm reinventing the wheel over here; everything I just listed would also be considered good SEO advice [ https://substack.com/redirect/ce03685a-0c36-48f5-9f13-167f85548cad?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] in 2019. The stakes are just higher now, and we have the benefit of hindsight to back it up.
Spoiler: if you’re looking for examples for how to do this... you’re reading it right now.
3. Pick your battles
If "the basics" above sound underwhelming, you're not alone.
Most people read a list like that and immediately wonder what else is there to do – and lucky for them, AEO has no shortage of side quests to embark on:
Optimize your Reddit presence
Claim your Wikipedia page
Build a YouTube strategy
Get mentioned in traditional press
Chase down that one blog post a guy wrote on Medium in 2023 that’s outranking your product page
There's this underlying pressure to show up on every surface that might influence how LLMs talk about you – and it's true, they all might. That's the catch.
When you don’t really know what’s feeding the models, everything is a potential input, which means everything becomes a candidate for your time.
Here’s the rule I’ve settled on: clean your house first. Making sure your owned content is genuinely great is step one. Everything else comes after.
That doesn’t mean ignore the extra stuff forever; it means do them when you have the capacity to do them well, not when you’re panicking that your competitor has a Reddit thread and you don’t.
4. Call the bullshit, especially your own
There has never been an easier time to be a charlatan in this industry. It is trivially easy to say “I increased prompt visibility 50x” when you’re the one who chose the prompts – and god knows if anyone actually asked them.
“Who is the best Brazilian-Canadian content marketer with copper hair and a birthmark on her left hip?” OH MY GOD IT’S ME!
I optimized the result to be me. Groundbreaking AEO work.
See what I did there?
In a world with no real prompt volume data (and no, please don’t come at me with tales of clickstream), there are no definitive results either.
The whole discipline is mostly propped up on assumptions and operating on vibes. Which is fine (we’re early) but it means your job is to be the most honest person in every room you’re in.
That means questioning everything, especially the stuff that makes you look good. When your own dashboard tells you something flattering, be twice as suspicious as when it tells you something bad.
When a vendor shows you a case study, ask 50x over what baseline? Measured how? Especially watch for “we tracked it” being passed off as “we caused it” – a lot of “AEO impact” case studies are correlation dressed up as causation.
And when the honest answer is “I don’t know yet,” say that.
This will save you a lot of pain that comes from building a strategy on a lie you told yourself.
5. You can just… ask
I’m not great at the whole not knowing thing, so I worked around it. We added a conditional question to our onboarding flow: whenever someone says they heard about us through AI, we ask them which prompt they used.
To my surprise, people answer. In detail. Sometimes long, long paragraphs of detail.
Now we have first-party data on the prompts actually leading people to us. Real sentences typed by real humans with real credit cards.
As of today, 9,214 of them to be exact (and we’ve only been doing this for 3 months).
Every morning, our PostHog Slack automation drops a report with 50–100+ real prompts submitted by users who signed up on the previous day. PostHog AI [ https://substack.com/redirect/821e581b-e70f-4745-9da6-9265443adbb0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] helps me identify patterns and pull out useful little nuggets of information, which I feed straight back into our strategy.
It’s an amazing feedback loop. The best part is that it cost roughly zero dollars to set up, and it’s become one of the most (if not the most) valuable strategic inputs in my entire reporting stack.
It has also been a goldmine of unfiltered user thoughts, which I love.
Best was the user who found out about PostHog in Fortnite voice chat, specifically talking to a Darth Vader NPC about analyzing the Fortnite economy. I think about him often.
6. AEO reporting is a quilt, not a blanket
No single data source tells the full story. Not yet, anyway.
Referrer traffic catches some of it, but not everything is properly tagged.
Self-reported attribution catches more, but not everyone answers the question.
Bot analytics (who’s crawling you, how often, for what) helps you understand what the models are seeing, which is a different question than what the models are saying.
Prompt visibility tools tell you what the models are saying, but only for the prompts you thought to track.
We can poke holes in every one of these sources.
Is it annoying? Yes, very. The last decade of clean(ish) attribution coddled us – anyone in growth, marketing, or analytics got used to a dashboard where everything reconciled. AEO isn’t going to give us that anytime soon.
If you’re a founder watching your team try to report on this, give them grace; if you’re the one reporting on it, godspeed.
So does that mean you don’t report on it? No. Sometimes you tell the story even if all you have is duct tape and a dream.
The good news is that this has gotten dramatically easier thanks to MCPs [ https://substack.com/redirect/2edab23f-4ea6-4e5b-b1a5-dbe419a923e5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. If your data sources have them, your agent can fetch from each one and help you see the bigger picture.
Mine pulls from Gauge [ https://substack.com/redirect/27442d2d-62c8-46df-b46b-e0b74759b7a1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for prompt visibility; Google Search Console for clicks, impressions, and rankings; and PostHog [ https://substack.com/redirect/2edab23f-4ea6-4e5b-b1a5-dbe419a923e5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for traffic, conversion, product-level breakdowns, our self-attribution survey, and prompt data for the qualitative side.
It’s not magic, and it’s not always clear cut, but it’s a hell of a lot better than copy-pasting between four tabs and praying the numbers line up.
7. Be prepared to start over
A few months in, I realized we were tracking hundreds of AI-generated prompts, but they had little overlap with the prompts real people were actually using to find us. (How did I figure that out? See #4 and #5.)
Which meant six months of historical data aged like milk.
When you’re working in a discipline this new, any data feels sacred, so admitting to my team and myself that ours needed to be scrapped was a tough pill to swallow. It would’ve been easier if there was a playbook to defer to; there isn’t.
But we started over anyway, and the new approach [ https://substack.com/redirect/4bb495df-8248-4fae-8c51-d2cba9986259?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] is already producing more useful data than the old one ever did.
Zoom out and the same principle applies to everything else in AEO. The models change constantly; a feature that didn’t exist last week can completely rewire the landscape you thought you’d figured out. A win today may not be a win tomorrow.
What I’m trying to say here is that adaptability isn’t a nice-to-have. In mature channels, being attached to your v1 is inefficient; in a new one like AEO, it can be fatal.
The key is to not fear it, but to expect it.
Words by Natalia, who believes in throwing pasta at the wall and seeing what sticks (figuratively and literally)
Share with someone to help LLMs make their product a winner 🏆
🤖 More content that LLMs will read, but you should too
Karpathy’s Autoresearch found a 3-year-old bug in our query engine (and improved performance by 11%) [ https://substack.com/redirect/b3183d08-2483-48e1-8349-701d370cff36?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Robbie Coomber
Collaboration sucks, but PMs and PMMs need each other [ https://substack.com/redirect/3aefffb5-c2e2-4e46-ad24-99e38d91d124?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Sara Miteva
We put PostHog in Slack and now everyone’s an engineer [ https://substack.com/redirect/c2f864a4-1610-47fd-94d6-eb1464228339?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Cleo Lant
I didn’t understand the OS I built with AI until the MCP gave it analytics [ https://substack.com/redirect/336c745e-60b5-4039-a05e-7595c41dc2cd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Joe Martin
What matters when anyone can build [ https://substack.com/redirect/788dcac0-d630-4c9e-9002-c337b044fe40?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Yuhki Yamashita
🦔 Jobs at PostHog
Product Engineer [ https://substack.com/redirect/713ac0b3-f841-4b28-a6c3-bee779b3422b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Customer Success Manager [ https://substack.com/redirect/96a51973-6ccb-42c2-af9a-c10c54a1cdd3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Backend Engineer — Ingestion [ https://substack.com/redirect/6ad3a41c-a5f3-4b58-b2e2-de297aa11a75?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Forward Deployed Engineer [ https://substack.com/redirect/852ec161-9fd3-4757-8cce-e6977b584b0f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Backend Engineer — Billing [ https://substack.com/redirect/135db54d-eb1f-4802-916c-3789533e99b9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakl3TURZeU9UazNNeXdpYVdGMElqb3hOemd3T1RReU5EQXlMQ0psZUhBaU9qRTRNVEkwTnpnME1ESXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5aRDNfWjZxb2hVZG50SV9XNEVGcE5xRnlYMWFlZEtsV3doM1MxT3hzamd3IiwicCI6MjAwNjI5OTczLCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc4MDk0MjQwMiwiZXhwIjoyMDk2NTE4NDAyLCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.pqFjnXg0G1e6BiPF7O7Zef_p3FAO8gdez2y6ck1TJk4?
View Email
LLMs are picking winners. Here’s how to become one
productforengineers@substack.com6/8/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/how-to-demo
A good demo can be the difference between a project shipping or shutting down, and a startup getting funded or going nowhere.
Yet most developers don’t invest in learning how to demo well – probably because we enjoy building things more than presenting them.
I watched 50+ hackathon [ https://substack.com/redirect/29b3161a-0df6-4153-bc3e-c8d16b4c60d8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] demos back to back at our offsite last week and, after that many in a row, some patterns became super obvious.
Here's a practical list of what set the S-tier demos apart from the rest.
The basic structure
1. Pick one main point you want people to remember and make everything else in your demo revolve around it. Typically, this should be the problem you’re solving and how you’re solving it.
2. Get to your main point as soon as possible. No one needs the whole story behind the idea – if you need context, keep it 1-2 sentences max.
3. Treat the demo like a pitch, not a product walkthrough. The goal isn’t to just show off the cool thing you made, it’s to get people excited about it.
4. End with something immediately actionable. It can be as literal as a QR code, or simply calling for contributors and inviting audience questions.
One team during our offsite hackathon created a system that lets you interact with PostHog over any messaging app, so they put up a phone number in their last slide (which I texted right away):
The MCP Analytics team even announced that their project was already rolled out to 25% of PostHog users. Shipping before you even demo [ https://substack.com/redirect/5d36249d-547e-4191-bf40-593d05fa5570?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] adds a huge "wow" factor, especially if you can show real user data flowing.
Storytelling tactics
5. Lead with a shared pain point that everyone in the audience understands.
Two of our designers built a web app that automatically tags and indexes illustrations. They opened their demo by asking who has had trouble finding a specific hedgehog in their chaotic lovely “Hoggies” Figma file. Everyone raised their hand.
6. Borrow a familiar concept to explain a new one. For example, one hackathon team explored building our own take on Claude Cowork [ https://substack.com/redirect/8a91ab4d-8ef9-4002-b300-e42df950f347?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] inside PostHog Code [ https://substack.com/redirect/eed04b5b-131a-4ea0-bbcc-fde1298f81a3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], so they creatively named their project PostHog Work.
7. Create a separate demo app, especially if you’re showing off a dev tool.
Dev tools are easier to grasp once people see them applied. For example, one team created a tool to instruct and deploy agents that manually test your UI. The idea only clicked once they showed it on a separate demo app called OnlyHogs (it’s fake, I checked):
8. Use “you” framing to put the audience in the right perspective. Instead of saying “we built an app to manage support tickets”, one team asked the audience to “imagine you’re on-call and you’re trying to resolve six incidents at once.”
9. Demo against the alternative. Show the painful 6-step current workflow side-by-side with your 1-step version. Comparisons create stakes; without them, the audience has no reference for whether what you built is actually good.
10. Save how it works for later. Like how magicians never reveal their tricks, you shouldn’t tell people how you built it (at least, not up front). Sharing a link to a video, or blog post, where you explain this can make a good ending CTA for your demo.
Setup and delivery
11. Channel your inner Steve Ballmer [ https://substack.com/redirect/fb3f8aec-4b7e-44a1-bf78-e93c181ed098?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. A great demo is often just a good one from someone with a lot of energy.
12. Don’t apologize. “Sorry, it’s still kind of rough,” trains the audience to lower expectations before you’ve shown anything. Just start.
13. Make it obvious when you’re done. This prevents that awkward moment when people aren’t sure if it’s time to clap. End with a closing sentence, descending intonation, or celebratory visual:
14. Do everything in your power to please the demo gods. We even have a demo setup checklist [ https://substack.com/redirect/a95dcb4f-af68-4338-9346-e9d2581b227b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] just for this:
[ ] Use a demo project, not a live account with customer data
[ ] Disable notifications on your laptop
[ ] Silence your phone
[ ] Bookmark your demo URL — don't type it live
[ ] Know what happens if WiFi dies (screenshots as backup)
[ ] Zoom your browser to 125–150% so the back row can read it
[ ] Test the projector before anyone arrives
15. Use real data wherever possible. Obviously fake data just looks lame.
When the HogNet team demoed their hackathon-in-a-box rental service concept, they created a website with pricing and shipping logistics. This felt way more realistic than if they had used lorem ipsum:
16. Pre-load and cache as much as you can (without taking away from the demo, of course). It’s like how TV chefs prepare their ingredients in advance to make every second on air interesting.
Common places where you can eliminate dead time include agent responses, long queries, and slow builds.
17. Practice out loud at least once. It helps you build confidence in what you’re saying, so it comes out naturally.
18. Don’t let perfectionism stop you from demoing. Everyone presents at our hackathons, no matter what shape their project was in. Demos are for in-progress work anyways.
Make it fun
19. Avoid showing plain old code. Even if your project doesn’t have a UI, there’s simply no excuse for skipping visuals anymore. You can generate an architecture diagram in seconds:
20. Don’t just show plain old slides, either. Active demos always win. Anyone can talk about a cool idea; the point of a demo is to build it and show it.
21. Default screen recording tools suck. There are plenty of apps like Screen Studio [ https://substack.com/redirect/610799b6-7349-4225-873c-6e131161641d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] that zoom in and add animations so it’s easier to see what’s going on:
22. Your visuals don’t need to be beautiful. They just need to highlight what’s important. This demo had simple graphics, but each callout provided useful information:
23. Audio is underrated. One team generated a sea shanty voiceover, while another project that does quick calls for AI-powered user research made their demo fully audio-only.
24. Do more weird. No one asked for clips of Dylan [ https://substack.com/redirect/177e6931-8a14-490d-b72e-9a7b064cd95c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] sipping piña coladas in the background, but the PostHog Code [ https://substack.com/redirect/eed04b5b-131a-4ea0-bbcc-fde1298f81a3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] mobile app team did it anyway. It’s also the demo I remember most. 🍹
Words by Jina Yoon [ https://substack.com/redirect/148038de-9be1-46e1-a633-ac42cdebe38c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], who had to overcome her fear of public speaking without these tips.
💡 More memorable content
From 270GB RAM to 5GB: Moving local flag evaluation from Django to Rust [ https://substack.com/redirect/2afcd994-3c2a-4186-bb3e-e49d3ccfbb6c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Patricio Tarantino
Being AI-native matters more than experience [ https://substack.com/redirect/969b242c-e3ee-4604-8954-fbe2ad0e53d3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Fraser Hopper
A guide to growth metrics for startups that don’t fit in [ https://substack.com/redirect/c063c407-b63d-44ab-9578-43441eaebe05?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Mine Kansu
How to grow your AEO function (without losing your mind) [ https://substack.com/redirect/30e46f98-6c42-4ef1-a5c3-17c6d8224744?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Natalia Amorim
The do’s and don’ts of minimum viable product marketing [ https://substack.com/redirect/5f28ee37-dffd-4e02-afcc-7c4d119b83cd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Joe Martin
Stop adding AI between you and your customers [ https://substack.com/redirect/cdae7a4d-b969-49a5-b991-18bc48be1bc6?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Abigail Richardson
🌴 Join our next offsite
AI Research Engineer [ https://substack.com/redirect/ea7811ef-e99b-4021-920d-4fad02b4591c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Backend Engineer (Ingestion) [ https://substack.com/redirect/6a57754d-f23c-4ade-a26a-87c77257a502?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Forward Deployed Engineer [ https://substack.com/redirect/b21ecadb-175c-4ca6-9915-4f29c2af2138?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Customer Success Manager [ https://substack.com/redirect/17394b64-0e1f-4775-8e6d-0072a03d692e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Subscribe for more S-tier tips
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU1T1RRd05qRTBPU3dpYVdGMElqb3hOemM1T1RreE5UWTVMQ0psZUhBaU9qRTRNVEUxTWpjMU5qa3NJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5MbUx6Vk1VSHRmeGdhdmNyQTAtYVVIcU9KRVBxX2ZqWDB6UmxDZHFFM2FzIiwicCI6MTk5NDA2MTQ5LCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc3OTk5MTU2OSwiZXhwIjoyMDk1NTY3NTY5LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.Zuj86uUHEaULHfjgJ6V-SROxglrQQeFIrXQRSVT7Xaw?
View Email
24 tips for giving S-tier demos
productforengineers@substack.com5/28/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/the-stuff-nobody-tells-you-about
Every few weeks, a founder emails me some version of the same thing:
“We’re getting early traction. How do we start doing marketing?”
Most advice is written for people at companies that already know what they’re doing. You don’t. That’s fine. I didn’t either when I joined PostHog in 2020, and somehow I’m still here!
This is everything about marketing that I’d tell the Charles who doesn’t know anything in 2020.
1. You do have experience
People who contact me think marketing is a thing they haven’t started yet.
I used to think the same, but it turns out a bunch of things we were already doing at PostHog was marketing. We just didn’t think of it like that.
Our launch post [ https://substack.com/redirect/0fefe649-db6b-4314-b10f-a977a26a1697?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] on Hacker News? Marketing.
An unusually deep employee handbook [ https://substack.com/redirect/c4b929c7-9e40-4390-89b0-80eb5ad490e8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] on a weird-looking website? Also marketing.
Posting what is basically your diary to your company website? Marketingggggg!
Marketing is simply closing the gap between what you’re building and the people who’d care about it. Our handbook is a good example: James and Tim knew early users might doubt there was a real company behind PostHog, so they published all internal processes and values on the main website to build credibility fast.
So no, you don’t need a fancy strategy, brand guidelines, a content calendar, or a paid budget. Just figure out what your audience finds interesting and talk about it. Plus, when you treat marketing this way, your brand will be that much more authentic.
2. Depth-first > breadth-first
So you have something working. Yay.
The instinct at this point is to write a list of 5-10 other channels to try in the hope that one of them also works. This is a great way to end up, six months later, with a pile of stuff that didn’t work and no idea why.
It’s much better to do more of the thing that’s already showing signs of life. If you went mildly viral on LinkedIn, keep posting every day. If a podcast appearance converted, email another hundred. If a blog post got picked up, write the next one. And the next one.
That’s what we did early on to get our first 1,000 users [ https://substack.com/redirect/514b7edc-e08c-4de5-a495-b60dcd2c1e68?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. When we saw early success with our HN launch, James kept serial posting founder blogs about everything behind the scenes:
A reflection after the HN launch [ https://substack.com/redirect/5c9e3231-c181-45d0-ad57-570597a539a3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] on what made it successful, and what we wanted to do with the momentum.
An explainer about how we raised $3M in seed funding as an open source company [ https://substack.com/redirect/0fd541b4-2075-48d5-938e-cf0e0f016af8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] (including all the tactical details of VC meetings to the boring paperwork).
A retro about how we pivoted through six failed product ideas [ https://substack.com/redirect/1ad33c47-78f3-487d-9503-57b319548968?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] before landing on open source product analytics.
Going niche forces you to develop something unique in a way that others can’t copy. A big company could never write a “founder blog” series the way we did – being small and relatively unknown allowed us to be as transparent as we are.
So go deep, not wide, and resist the temptation to half-ass a bunch of things.
3. Match your channels to your sales motion
The right first channels depend on whether you’re running a PLG (product-led growth [ https://substack.com/redirect/1fd5dc22-367d-4adb-be99-8d6cabecde14?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]) or sales-led motion. If you’re not sure which one you are yet , you need to define your ICP [ https://substack.com/redirect/a633b905-73a8-45a1-a8dd-dec655c82b49?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] first – it’s your map converting potential users into paying customers.
If you’re PLG, your early wins are going to come from places where your users already hang out: Hacker News, Reddit, X, dev communities, tutorials, docs, etc. The goal here is to widen the beginning of your funnel. Other things that help with this include branding, ads, and word of mouth growth. If done well, customers will come to you rather than the other way around.
(We are obviously hideously biased, but if you are seeing early signs of PLG working, keep going! It’s an incredibly efficient way to build a business.)
If you’re sales-led, from what I’ve heard from marketers at other companies, your early wins are going to come from more targeted approaches. You’ll be the one going up to them. Think direct outreach, industry events, partnerships, and the founder’s own network. Get on the podcasts your buyers listen to. Turn up to AWS Re:invent. 😤🔥
In either case, however, don’t start with SEO. SEO is also one of those domains that takes a very long time, and requires you to know what you’re doing. It is very hard to vibe-SEO. Same goes for AEO. See Non-obvious SEO advice for startups [ https://substack.com/redirect/c7c425ad-6fa4-44e9-8675-8ce6c180e8b7?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]for more on this.
4. Think in terms of experiments
Just like how you measure success for product launches, you need a similar mindset for marketing.
Before you start anything new, write down your prediction for what “worked” would look like. A simple yes or no question like:
“Did more people who look like our ICP sign up, use our product, and become enthusiastic recommenders?”
It doesn’t need to be a metric target – in fact, I’d strongly discourage it at this stage (sorry, John Doerr). You haven’t done this before so any number you’d choose is basically made up. You just need to design your goal so that it’s unambiguous whether you succeeded or failed.
As for how long to run an experiment, six weeks is usually enough time to tell. We’ve never had something run for longer where the results magically became good. You can always shut off your experiment if you’re getting clear signals before then.
But if you can’t obviously say “it worked” by then, you’ve either designed the experiment poorly, or the answer is no – which is great, actually! You now know not to do the thing again. The worst outcome of marketing is actually “I’m not sure.” That ends up producing a pile of half-working content that nobody can justify turning off.
This will also keep you from spreading too thin while still making forward progress (à la depth-first). For example, when we started doing paid ads, we ran 2-3 small experiments at a time in phases instead of launching on all ad platforms at once.
The first experiment for each platform was to get targeting right: were we getting clicks from people who looked like our ICP? If not, we’d keep adjusting the audience, keywords, and placements until we got it right.
Once a channel passed that initial bar, we’d move on to optimizing with better copy, lower cost per acquisition, etc. We only started experimenting on new platforms once we felt like the previous one was in a good state for “maintenance mode”.
5. Attribution is a lie
As you start to think about marketing in terms of experiments, you’ll inevitably run into problems with attribution.
Let me explain. Say someone sees your viral tweet on X, looks up your company, clicks on a Google Ad, and signs up. Your analytics are going to attribute that user to the Google Ad, but this is a lie since it really started with the tweet.
If you’re not careful about this, you’ll end up drawing the wrong conclusions about your data and spending money in all the wrong places. This is how people end up burning their money on paid ads.
Accept that attribution is a 7/10 problem, not a 10/10 one. Don’t try to build or buy a model with fancy multi-touch attribution software. You don’t need one.
What you do need is a “where did you hear about us?” text box in your signup flow. This is the single highest-signal piece of marketing data you will collect, and it costs nothing. Make it optional – 5 to 10% of people will fill it in. Read them every week.
Adding this was essential for our early growth. The responses (and conversations that followed [ https://substack.com/redirect/f76341cc-82bf-4662-ad92-fb146f84864b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]) confirmed for us that developers hated feeling “sold” to, but they inherently found our startup journey interesting.
So, two rules of thumb for dealing with the attribution mirage:
Trust attribution when the signal is overwhelming. Ignore when it’s ambiguous.
If your “where did you hear about us?” box and your attribution data agree, believe them. If they don’t, believe the box.
6. Don’t outsource to an agency
This is the other thing founders email me about: “Should we hire a marketing agency to do blah?”
No. Well, not yet.
An agency can’t build your positioning, understand your users, or decide what “good” looks like for your brand. That’s your job, and you can’t delegate it until you’ve done it yourself.
As a bonus, when you learn what types of marketing works well for your target audience, it will also improve your product decisions. It’s an extension of talking to your users [ https://substack.com/redirect/a347ae0a-97eb-4921-9079-164a5a96f933?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
If you hand your earliest marketing to an agency, the output will be generic, the feedback loop will be slow, and you’ll learn nothing.
Only use agencies for things you genuinely can’t do internally, like we eventually did for paid ads [ https://substack.com/redirect/686f9283-b2ae-48c1-a75f-cc3f371035ed?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Managing them was a time intensive task that didn’t require much PostHog-specific context and clearly benefited from long-term experience. It just made sense for us to outsource this at $5k/month as it’s not a skill we necessarily felt the need to grow in-house.
Never use agencies to replace thinking you haven’t done yet.
7. When to make the first hire
Founders always want to hire a marketing person too early. Like, the-microsecond-they-have-budget early. Personally, for a hire to be worth it, I think you need these first:
Users who actually use the product
Users who enthusiastically recommend it to other people
Users who pay for it
… and ideally, they’re doing all of the above despite the product still being a bit janky
When you do hire your first marketer, hire a generalist.
Titles are not terribly useful in your search here. In different companies, this person might be called a content marketer, a product marketer, or a growth marketer.
What you actually want is someone who can write, think in funnels, talk to users, and figure things out without a playbook. You don’t want someone who’s a specialist in one channel, because you don’t yet know which channel matters. Specialists are also more likely to depend on playbooks.
Our first marketing hire was Joe [ https://substack.com/redirect/7336963e-14a5-4270-b0ac-fa00b40fd521?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], who had a background across journalism, content marketing, copywriting, and product marketing. We didn’t have a ton of direction for him, so he spent as much time talking to engineers as writing copy, because figuring out what we actually needed was part of the job.
Your first hire should also be someone who is pretty experienced since you won’t have a long-term strategy to present to them. The most you can provide is context on what’s been working well, and it’ll be up to them to figure out the rest.
Words by Charles Cook [ https://substack.com/redirect/f449f007-da31-45af-9eba-fdaaca2e8b45?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], generic exec person at PostHog, who has a suspicious amount of opinions about marketing for someone with an MBA.
Subscribe for more interesting stuff delivered to your inbox every other week.
🦔 Jobs at PostHog
AI Research Engineer [ https://substack.com/redirect/62ddb251-43f6-4e12-a113-1c07ad00dc40?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical CSM [ https://substack.com/redirect/c8c51267-95e2-4985-86ca-1971e3df37da?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Payroll Manager [ https://substack.com/redirect/847600e2-8ff6-40b0-9f09-c99d93adffe2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Partnership Marketer [ https://substack.com/redirect/1afe9062-7e1a-4de1-8830-8475d893028e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
📚 More good stuff to read
PostHog's next chapter [ https://substack.com/redirect/a566448b-f367-4ae0-a782-5d6643bd1a4e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – James Hawkins
PostHog Code and the self-driving product [ https://substack.com/redirect/08dfea6f-2982-45e1-80c1-b42bc0f23e16?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Cleo Lant
Making Claude Cowork actually useful [ https://substack.com/redirect/3bb6aea3-a068-4c48-8da9-a8e388a7018d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Charles Cook
DuckDB vs ClickHouse: Why we use both at PostHog [ https://substack.com/redirect/49193bd4-13de-410b-a3c2-5152a29b0f67?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Mathew Pregasen
In-App Surveys: The Playbook from 4M PostHog Responses [ https://substack.com/redirect/ffd16a97-2c38-45ef-b653-87685065cefa?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Aakash Gupta
Yabu: A language designed to make LLM agents iterate faster [ https://substack.com/redirect/56aa792b-6bbf-48c9-a801-84cc2f6d1522?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Marce Coll
Endless Toil: Hear your agent suffer through your code [ https://substack.com/redirect/235e2ab6-8858-42ad-a355-17d257c5d16b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Andrew Vos
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU1TmpReU1Ua3dNeXdpYVdGMElqb3hOemM0TURrd05qYzJMQ0psZUhBaU9qRTRNRGsyTWpZMk56WXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5KU1ZKRWpodWtOdGN0a1pJcVpLWmhOTTc1OGhzWVh5cHpBMWp1QzN3SGtjIiwicCI6MTk2NDIxOTAzLCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc3ODA5MDY3NiwiZXhwIjoyMDkzNjY2Njc2LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.2vZL6UVxtDxcdy18c7Bt8vDsVxGCFCA0N07Z3bFjl08?
View Email
The stuff nobody tells you about startup marketing
productforengineers@substack.com5/6/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/great-companies-are-built-in-hackathons
PostHog hackathons have generated millions in revenue. Session Replay [ https://substack.com/redirect/f1221cb6-8b96-422d-acf6-de5583505895?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Data Warehouse [ https://substack.com/redirect/ad39e3bb-9788-46f9-96f6-6aa11013fd65?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Logs [ https://substack.com/redirect/676e1a05-524f-44c5-b1d9-dc1baea8a701?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Workflows [ https://substack.com/redirect/cf388197-60fc-429a-9e20-541679a08cd1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and PostHog AI [ https://substack.com/redirect/c8a60515-815f-4716-ade4-0ee8169e2f45?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] wouldn’t exist without them.
We take multiple days out of every year to do them. They are days our team looks forward to all year. They’re an integral part of our culture.
Yet for many companies and people, hackathons are seen as a waste of time. A distraction from important “real work.” An act of performative participation.
This is because they think about and do hackathons wrong.
Hackathons are an innovation engine, but only if separate from work
Hackathons fail when they’re not separate from regular work or used as cover to accelerate existing work. We have two simple rules to prevent this:
You should work on totally new things. Hackathons are for ambitious, weird ideas, trying new things, and learning new technologies. Pitching ideas on the roadmap is forbidden.
You should focus 100% on the hackathon. We protect people from regular work by running our hackathons during offsites [ https://substack.com/redirect/594728da-d645-4056-9d8d-44543a530939?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], where we have dedicated time and coverage plans for support and incidents. DigitalOcean employs work embargoes [ https://substack.com/redirect/08b31868-804b-4261-af4f-55d27031027d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for hackathons run in an office.
These rules fuel the innovation engine because people are unconstrained by their day-to-day work, and have a safe space to work on ambitious bets without distractions.
We’ve seen first-hand how running hackathons like this can lead to transformative new products and features that influence the direction of the whole company.
In PostHog’s earliest days, an engineer decided to build Session Replay during a hackathon based on user feedback, despite co-CEO James arguing it would take too long and split the focus of the company.
It ended up being wildly popular, with over 50,000 daily active users, and led us to become the multi-product company we are today. As an early Facebook engineer noted, code wins arguments [ https://substack.com/redirect/1944b426-f0e7-4d68-890c-7362934277a8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and hackathons are a great venue for this to play out.
Remember this: Give permission and cover for your team to focus on the hackathon and ignore day-to-day work. Not doing so leads to low participation, burnout, and unambitious hackathon projects.
Hackathons are for everyone
When you think about hackathons, you picture a bunch of engineers huddled around laptops, coding up a storm. This is mostly what our hackathons look like with one difference: they’re not just for engineers.
LLMs let anyone build software [ https://substack.com/redirect/cbefbad8-5c9e-4493-b28d-0901247f5f8d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. When this is combined with specific domain expertise and a sprinkle of motivation, it leads to the dozens of hackathon projects our “non-technical” team members have built, including:
Games like Three Button Dungeon, Awkwardness Avoider, and Flappy Hog for DeskHog [ https://substack.com/redirect/4647856e-8e3b-4258-8290-a58fab59ab84?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], our open-source developer toy.
Instagram Stories [ https://substack.com/redirect/4b3936e3-0ae8-4e06-8f8e-f617473a3817?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for PostHog showcasing our latest features in a format everyone’s familiar with.
A DPA generator [ https://substack.com/redirect/6744fa6a-82c5-4edc-9fdf-353cd0eb6c23?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] that automates and brings joy to an otherwise boring legal document.
Non-technical team members can require more encouragement to pitch projects and support to ensure they can contribute, but the cultural benefits of getting them involved are worth it.
Getting unfamiliar parts of the organization to work together breaks down silos between technical and non-technical teammates. DigitalOcean [ https://substack.com/redirect/01024173-b65b-4acb-9a11-13d2833f511f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] finds “the teams that have created truly innovative products and addressed real, practical problems are cross-functional teams with members from all across the company.” Twilio [ https://substack.com/redirect/4806c74e-17c3-4565-801c-0de5d21b6d1e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] actively discourages “lone wolf” ideas to make this happen, as do we.
Beyond the hackathon, getting non-technical people building opens their eyes to what’s possible and encourages them to explore more. Trying out new technologies often leads to adopting them in day-to-day work. That’s why companies like Jane [ https://substack.com/redirect/97888606-6db8-43f9-bab8-4f63c326c51a?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Uber [ https://substack.com/redirect/c4c4586d-93f4-4a03-8a66-ed08a8400082?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and Vanta [ https://substack.com/redirect/5dca86b1-c8ff-4438-85e0-86f5b014c549?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] are all driving AI adoption with hackathons.
Ultimately, we agree with Slack [ https://substack.com/redirect/d246b6dd-66d3-4fd5-b1f6-857117c1a14e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], who found that “the more people participate, the better your outcomes” – both during the hackathon and beyond.
Remember this: Encourage everyone to participate in hackathons, including people who would never see themselves as hackathon participants. Give them the tools they need to succeed (like Claude Code) and create cross-functional teams.
Curious what a PostHog hackathon actually looks like? We filmed a behind-the-scenes documentary about one and you can watch it below:
Demos aren’t optional
At our 2024 hackathon [ https://substack.com/redirect/6b96e6fb-09ac-4294-8e3c-85f545074c2f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], the “RealTimeHog 3000” team built a livestream service that displayed events as soon as they hit our ingestion Kafka topic using server-sent events.
It was cool when they showed this by getting people to click around on the demo site they built, it was even cooler when they had a “one more thing” moment and showed off a globe on posthog.com of all the events being captured worldwide into our US and EU Cloud services.
Requiring demos is a forcing function. You want to have something worth showing off, so initially ambitious plans quickly become more realistic to ship something real.
They’re also fun. When someone says “this is available now” or “we already have users using this,” there are always “ooohs” and “ahhhs.” People love a little showmanship and it’s fun to be in the spotlight.
While demos are mandatory, judging and prizes are optional and arguably undesirable. We hire people [ https://substack.com/redirect/2cd84962-d4f7-499a-820a-60b613503c75?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to “be the driver [ https://substack.com/redirect/b1bf81b0-6b4c-4a3b-bc68-7d47c95a0099?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].” They don’t need artificial motivation like gift cards or merch to do that. We also don’t want people to only build projects they think will win, or what the bosses want to see.
When you give a self-motivated and autonomous team time and space to work on what they think is best, they’ll surprise and delight you with what they build. The results of our hackathons are proof of that.
Remember this: Let people know they’ll be demoing at the start and make sure everyone does. As a bonus, keep track of what people demo. It’s easy for these valuable ideas to get lost. Writing about what people built also makes for great [ https://substack.com/redirect/6b96e6fb-09ac-4294-8e3c-85f545074c2f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] blog [ https://substack.com/redirect/3039a956-2c3f-44fd-80e0-64639485eaa4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] content [ https://substack.com/redirect/b591d4e4-ce03-4c70-9484-9f3419d343af?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
The best hackathon projects ship
A common complaint about hackathons is that they are a waste of time. You spend a lot of time and effort that’s all lost after a few days, but it doesn’t have to be like that.
What does this look like in reality? Our Logs [ https://substack.com/redirect/676e1a05-524f-44c5-b1d9-dc1baea8a701?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] product can give you an idea:
By the end of the 2025 offsite hackathon, the team had built OTEL log capture into ClickHouse, a query API, and a basic frontend.
After the offsite, the team felt it was worth continuing as Frank was looking into an internal logging solution anyways. He thought it could be “good enough” within one sprint.
Two weeks later, it was! It had the features we needed: filtering, search, and speed.
Logs then went on the backburner, but Tim mentioned it as a product we wanted to build soon and customers requested it.
Four months later, Frank revisited it, which was made easier because the product had already shipped internally. Ahead of Q4 planning, Logs was identified as a priority, made its own team, and moved quickly towards a proper launch.
We don’t have a perfect hackathon-to-production pipeline. Instead we rely on a product engineer [ https://substack.com/redirect/213d4f21-8f93-4930-9a00-02a437ec2242?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] “being the driver,” pushing the project forward, and having the freedom to do so.
This wouldn’t have been possible without some slack after the hackathon to wrap up the project, ship what we’ve built, and make longer term plans. Doing this makes it easier to revisit and improve in the future.
Getting real customer demand was a big help, even if that customer was us. We looked at what Datadog would charge us for Logs and saw it was a minimum of $260,000 per month, providing a big incentive to work on it.
We don’t expect all projects to ship to production, deadend hackathon projects are part of the messy process of innovation, but everyone starts knowing that great projects can end up in production.
Remember this: Encourage people to “be the driver” to take their project as far as they can and give them some slack after the hackathon for them to do it.
Make hackathons a tradition
Out of 17 projects from at our 2025 hackathon in Mexico [ https://substack.com/redirect/3421c523-485a-42a6-b27f-52c8295a1300?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], 10 were shared in our #hackathon-ideas Slack channel in advance.
This is the power of making a hackathon a tradition. People are more likely to share ideas throughout the year when they have a space for it and know they might actually get worked on. Good ideas can come at any time and often sound like weird ideas.
This is not an original idea. Early Facebook hackathons [ https://substack.com/redirect/93cebcda-69f9-4ff4-b237-b843a6b5ca4d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] featured an internal wiki to share ideas. Some of their “most-loved products” started this way like Video, the Like button, Chat, Hip Hop for PHP, and even Timeline.
The added benefits of making your hackathon a tradition are:
People are less restless working on things because they know they’ll have a chance to flex their other muscles at hackathons.
Many hackathon ideas are just inspiration for features that should be built as part of a team’s day-to-day work. A roadmap often misses the ambitious ideas hackathons encourage.
It’s a perk and cultural cornerstone. The hackathons show we value autonomy and give people the time to make the most of it. It also creates lore, like the time our AI chatbot was insistent PostHog’s mascot was a character named “Hoge.”
Making your hackathon a tradition turns them into a promise: that the company will keep making space for the weird and wonderful things they believe in, not just what’s on the roadmap. This is what really helps a hackathon turn into a foundation for building a great company.
Remember this: Start referring to your hackathon as your “annual hackathon.” Manifest it. Create a #hackathon-ideas Slack channel and post your random “we should build this” ideas in there.
Words by Ian Vanagas, who has not forgotten about Hoge.
Share to help someone find their next million dollar product in a hackathon
🦔 Jobs at PostHog
Join us at our next hackathon with this one easy trick (applying):
Product Engineer [ https://substack.com/redirect/0c4b2211-e1d5-4336-8731-a7301bd0cef4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Account Manager [ https://substack.com/redirect/458c50bd-6cfd-44c3-9dbe-0c45eb056676?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Payroll Manager [ https://substack.com/redirect/815b01f4-6de4-48f1-ab65-2661d466cb8a?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Backend Engineer - Ingestion [ https://substack.com/redirect/66e51f23-5fe5-4444-a026-d55b1232b6d1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
BDR [ https://substack.com/redirect/5ec0132b-0d82-48bd-a77d-b9c13c517346?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
🛋️ Late night reads to procrastinate to
A beginner’s guide to testing AI agents [ https://substack.com/redirect/06c633f4-ada4-42a3-a05a-181093a72692?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Radu Raicea
You’re doing lifecycle emails wrong [ https://substack.com/redirect/8f42df23-0144-493c-ac6e-e7cdb1bc05fa?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Sara Miteva
Untangling Tokio and Rayon in production: From 2s latency spikes to 94ms flat [ https://substack.com/redirect/f328e2dc-5206-4ccf-a0d4-8f2d964c92f7?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Matheus Batista
Hack Days [ https://substack.com/redirect/696d54f6-f63f-4e13-9be0-0bc3a7f380d3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Alex Watt
Software Bonkers [ https://substack.com/redirect/2413000f-7d3d-4eae-9f60-f138f8edba28?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Craig Mod
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU1TkRrd05UTTNOeXdpYVdGMElqb3hOemMyTnprMU1qSTBMQ0psZUhBaU9qRTRNRGd6TXpFeU1qUXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS40ZWdyX3JNRzlTTjZyRG5oUVFuS2VDNVllNHloZmpVeW43OFBQaDliZ0JjIiwicCI6MTk0OTA1Mzc3LCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc3Njc5NTIyNCwiZXhwIjoyMDkyMzcxMjI0LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.kzY4nM_-daWDm_Frdf2n-wq-Cs4h2RdT27TPJdj_CAs?
View Email
Great companies are built in hackathons
productforengineers@substack.com4/21/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/the-golden-rules-of-agent-first-product
Companies building for agents often treat them as a bolt-on feature.
This is a mistake.
Agents today are more like a new form factor – an interaction layer that sits between your product and your users:
That means you need to build for agents as a primary surface, not an afterthought.
When done right, this opens up a whole new space of possibilities for your product, like autonomous work and asynchronous flows.
Implement it poorly and you’ll lose users’ trust due to slow, buggy experiences and incorrect results.
We learned this the hard way and overhauled our AI architecture two [ https://substack.com/redirect/37fa1012-c2bd-4536-bd46-8cb61f4bb018?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] times [ https://substack.com/redirect/cf4f85f9-8266-4a25-90fa-b236940ee3a8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] in the last year. Now, our agent [ https://substack.com/redirect/6da4865e-b788-4731-a04a-0cef54070a85?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and MCP [ https://substack.com/redirect/7ddaf094-28c0-47d4-ba07-fb7cb4672bfa?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] have 6K+ daily active users.
Here are the golden rules of agent-first product engineering we learned along the way.
1. Let agents do everything users can
If a human can do something in your product, an agent should be able to do it as well.
For example, let’s say you ask an agent to set up an A/B test [ https://substack.com/redirect/8f20975f-12ad-4217-bc5b-b078cb75ef3f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for a new pricing page [ https://substack.com/redirect/f05cd854-b614-4ac0-bcde-2aee44f67934?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
The agent would use the PostHog MCP to create the feature flag [ https://substack.com/redirect/71840181-264b-4725-8cb4-15a4eecc3627?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], create the experiment, link it to the flag it just created, and set up the insight and metrics.
Now imagine if the experiment-create tool was missing because we just hadn’t prioritized it yet. The agent creates the flag and insight, but must stop and ask you to go to posthog.com, create the experiment yourself, and paste the experiment ID.
This is annoying and defeats the entire point.
The benefit of agents is that they reduce the time, attention, and expertise needed to complete a task. If your product doesn’t give agents the same capabilities as users, you’ll always be limited by the human in the loop.
Of course, there are situations where requiring human input makes sense, like if you’re dealing with sensitive data. But these should be deliberate exceptions, not accidental gaps.
What this looks like in practice
In practice, this means nearly everything in your API needs to be accessible to agents.
That doesn’t mean converting every endpoint into an MCP tool; we made that mistake in v1. (More on why that's bad in the next rule.)
Here’s how we do it now in v2:
Our pipeline [ https://substack.com/redirect/156cae90-e902-4055-8314-cb231aa80e40?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] autogenerates an OpenAPI spec from our typed Django endpoints.
It then converts them into TypeScript validation (Zod) schemas.
In parallel, product teams have to manually opt-in each endpoint via YAML config files. Nothing is exposed by default.
The pipeline then combines the Zod schemas + YAML configs to generate the final TypeScript tool handlers.
The result is a set of tool handlers – one file per product area – ready to go in our MCP server. Agents are able to do anything that a human can through the PostHog API, even if the tools don’t exactly match the endpoints 1:1.
2. Meet agents at their level of abstraction
To build an agent-first experience, you have to find the semantic layer where agents already reason best and meet them there.
This saves a ton of context (a precious resource) but the benefits are more than practical. They’re fundamental. The more “raw” your product’s agent interface is, the more creative potential you unlock.
Think about giving a child a Lego set for their birthday. If it comes with tires and axles already glued together, they’re going to make cars, trucks, and airplanes – vehicles that everyone has seen before.
If the parts come separated, they’re free to mix and match to build motorcycles, tire swings, snow sleds, and who knows what else?
What this looks like in practice
In the old version of our MCP, to answer “why did signups drop last week?”, an agent had to make four separate calls: projects-get, insight-get, and insight-query (twice).
get-insight or get-funnel may be meaningful to humans navigating the PostHog UI, but to an agent, it’s just an unnecessary translation step.
So in our MCP v2, we let agents query PostHog data in a language they already speak fluently [ https://substack.com/redirect/ca44673e-904e-42fe-9c74-88941a04a5a9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]: SQL.
By exposing our product at this layer of abstraction, we were able to turn off all our read/get endpoints off since they get subsumed by executeSql.ts [ https://substack.com/redirect/72e53e92-19d2-41bc-82cc-5bf0c40c8d66?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Now, answering “why did signups drop last week?” can be answered with just a single, elegant query:
SELECT
toStartOfWeek(timestamp) AS week,
countIf(event = 'signed_up') AS signups
FROM events
WHERE timestamp >= now() - INTERVAL 2 WEEK
GROUP BY week
ORDER BY week
3. Front-load universal context
In the early days of AI, developers had to front-load everything into agents to compensate for smaller context windows and less capable models.
But as the technology keeps improving, there’s a new trend that removes as much context as possible and trusts the model to figure out the rest.
That works for general-purpose agents since they’re designed to be flexible. Anthropic can’t predict everything that everyone is using Claude for [ https://substack.com/redirect/5ac87a7a-1427-4690-8750-1ed73ff717d5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
But if you’re building an agent experience for your specific product, the problem space is much smaller. You already know the key scenarios, tools, and use cases.
So for product engineers [ https://substack.com/redirect/30a5c6b1-b092-4e11-9b48-beb1c0571af9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], you can strike that balance by front-loading what you know every session will need, and defer the rest.
What this looks like in practice
We didn’t think about it this way at first, so our v1 system prompt was four lines that essentially said “Here are some tools for using PostHog, GLHF.”
Every agent would waste time and tokens to rediscover the same things every time they connected.
In v2, we made use of the fact that anyone connecting to the PostHog MCP is there to query their PostHog data. That’s the whole point.
Now, we load these at the start of every PostHog MCP session:
PostHog-specific taxonomy. What’s a feature flag, experiment, session replay [ https://substack.com/redirect/6540e52b-259f-43d7-928e-f1da729afa20?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], etc.
Our SQL syntax. How to use our custom translation layer over ClickHouse SQL [ https://substack.com/redirect/236fcde2-14e2-48c5-ba25-99e97fdf4f49?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Critical querying rules. Hard constraints that apply to every query (e.g., always filter by time range).
Everything else gets pulled later. We let the agent figure out when.
4. Writing skills is a human skill
Skills help you fill the gap between what your product can do and what an agent can do out of the box with your tools:
The biggest mistake people make is writing them like step-by-step manuals. If you’re too prescriptive, agents will follow your instructions too rigidly and lose the ability to improvise (see rule #3).
Instead, think of it like onboarding a new employee who’s already highly qualified.
A bad manager micromanages every process — do A, then B, never C, and always D. A good manager trusts the hire and only steps in with the specific things they couldn’t have known on their own.
That’s what good skills look like [ https://substack.com/redirect/037a3799-60bb-41af-abc8-0d5d56936f19?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
They should only contain context that a human can provide since an agent can’t discover by itself, such as:
Idiosyncratic knowledge. Internal acronyms, naming conventions, and style guides.
Edge cases. The uncommon places where things break, and how to handle them.
Taste [ https://substack.com/redirect/a6507063-785f-4b42-9e70-3aa1a1eafb90?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and craft. Not just how to use your product correctly, but how to use it well.
What this looks like in practice
To figure out what goes into a skill, ask yourself: what would an agent get wrong about your product without you?
For us, it’s in the connective tissue between our products, the domain knowledge buried in our data, and our niche developer takes. For Linear, it’s the opinionated issue hierarchy. For Figma, it’s their design system coherence.
As an example, here’s a line we added to query-retention.md [ https://substack.com/redirect/a00cf954-e4bb-4b7a-9e9a-251eba1e185d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]:
For activation [ https://substack.com/redirect/f8c0450d-222e-47ee-a57c-e3413ff6b67f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and retention [ https://substack.com/redirect/d5f31b68-25aa-4db9-9d8c-842241404ae0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] events, use the $pageview event by default. Avoid infrequent or inconsistent events like signed in unless asked explicitly, as they skew the data.
Without this guidance, an agent would just use whatever event the user mentions, which is usually misleading. Retention would look worse than it actually is, and there’s no way a user would know unless they’d done this analysis themselves before.
By adding this line in the skill, we’re embedding a PostHog Certified™ opinion about what good metrics and analysis actually look like. This ensures agents use our product correctly, and users aren’t inadvertently misled.
5. Treat agents like real users
In traditional software, even if user behavior isn’t predictable, the code is. With AI, you lose that stability; the same inputs won’t produce the same outputs anymore [ https://substack.com/redirect/f311e424-e0c7-4064-8a45-c614f003f125?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
This means classic testing methods will leave a gap [ https://substack.com/redirect/c83cfbf0-516b-4d51-9bdc-859e7d3c03e3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], so you need new ways to catch the things automated tests no longer will.
You need to treat the agent like you would treat a user. Talk to them [ https://substack.com/redirect/2efb55da-1a6f-476b-8901-a0d56b5e090f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], build empathy for them, and develop an intuition of what they want.
This helps you see your product like they would and get familiar with all the interaction patterns and quirks they have.
What this looks like in practice
Here are a few habits and behaviors we adopt at PostHog to achieve this:
Dogfooding [ https://substack.com/redirect/dfd9afa7-cd7d-4a02-8f07-b9e92fb86012?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] headlessly. When testing our agent features, we reach for the CLI before the UI. This puts us in the same environment the agent operates in and exposes us to the same types of errors, syntax, and friction they’d experience. It’s how we caught an issue internally and found that our MCP tool descriptions were eating up way more tokens than it should.
Doing manual trace reviews [ https://substack.com/redirect/4273da2a-b5b8-41c5-b23d-24cde51d2916?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. We hold a weekly “traces hour” where we go through real user sessions that have user feedback ratings. For example, we found a case where PostHog AI confidently told a user that feature flags don’t support scheduled releases [ https://substack.com/redirect/a70bcd79-eb77-4878-a7c2-2ca730895961?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and then backtracked. Automated tests wouldn’t have caught that since the agent did respond; the response was just incorrect.
Feeding our intuition into a loop [ https://substack.com/redirect/c83cfbf0-516b-4d51-9bdc-859e7d3c03e3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. We then amplify the value of those manual reviews by building evals based on what our human eyes caught – both the good and the bad. Once, we found a session where PostHog AI correctly intervened when it spotted a weird data pattern that the user hadn’t noticed. We turned that into an eval case so that future model or prompt changes don’t regress the good behaviors we want to keep.
Words by Jina Yoon [ https://substack.com/redirect/84f84119-a260-47cf-9812-d0830cf0dbfc?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] who hereby declares herself agentpilled.
Subscribe for more gilded content
📜 Related texts
You Need to Rewrite Your CLI for AI Agents [ https://substack.com/redirect/c97934c7-2ded-4f65-9afa-62f3681f738b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Justin Poehnelt
Building MCP servers in the real world [ https://substack.com/redirect/69684d0c-79db-4b52-a80a-3c1139ae1f2f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Gergely Orosz and Elin Nilsson (The Pragmatic Engineer)
Block’s Playbook for Designing MCP Servers [ https://substack.com/redirect/f5d6b36a-1e8c-4cb0-acb2-8ca087275445?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Salman Mohammed and Kalvin Chau (Block)
Patterns for Agentic Tools [ https://substack.com/redirect/83da7e62-bd52-46df-bfca-6a1bb9f50737?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Arcade
I hate the standup bot (so I built an agent to do it for me) [ https://substack.com/redirect/3e9950a8-3179-41f5-98d1-41e0c5664013?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]– Andy Maguire
🦔 Join the order
Product Engineer [ https://substack.com/redirect/67238a88-674a-4c1d-aecb-9249a3640708?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Product Manager (ex-founder or ex-product engineer) [ https://substack.com/redirect/dfe6a551-710c-49e2-8623-bf42e8a403da?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Account Manager [ https://substack.com/redirect/fbbfdbc1-6387-45ae-a9b5-f8bcfaa7ae0c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Security Engineer [ https://substack.com/redirect/b30fe189-c769-415b-a710-3e78f6148584?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
AI Product Engineer [ https://substack.com/redirect/ddd210ad-cf03-4833-8754-ab6088d4caae?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU1TXpVME9UUXpNU3dpYVdGMElqb3hOemMxTmpjMU1USXdMQ0psZUhBaU9qRTRNRGN5TVRFeE1qQXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5kWFl5Xy1LdzRXcHBQRXRGbUo4NjBlMjgxMVR3ek9aaEZUVmkyMGZOX3EwIiwicCI6MTkzNTQ5NDMxLCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc3NTY3NTEyMCwiZXhwIjoyMDkxMjUxMTIwLCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.qLX9MMj-iNpE7va4uq7oVCX_-0czF3BLu6bTwcsibjA?
View Email
The golden rules of agent-first product engineering
productforengineers@substack.com4/8/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/what-we-wish-we-knew-before-building
One thing on every startup’s mind: Should we build an AI agent?
We had this thought two years ago, released an “AI product assistant” 6 months later, iterated, and then relaunched as PostHog AI [ https://substack.com/redirect/43ff4c75-1dbe-4a7c-b36a-c540db88eaa6?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] in November last year
We learned a lot along the way that we wished we knew when we started. With that knowledge, we could have…
Launched months earlier.
Provided a better early experience to users.
Made progress on capabilities faster.
To help you build a better agent faster, we’re sharing what we wished we had known about building AI agents.
1. Should you build an MCP server instead?
Should you even build an AI agent into your product? The capabilities of agents are unquestionably valuable but this does not mean you need to build a custom one. Making your product accessible to agents is often a better option.
Could your agent capabilities just be an MCP server [ https://substack.com/redirect/e43d3dc9-8777-417d-9733-4a01b800ab5b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]? These are simpler to build and require less maintenance, and for us, is used as much as our built-in agent, PostHog AI. For example, 34% of dashboards created by AI were done through our MCP server (18% of all dashboards created).
MCP servers are great if you expect your users to be developers or people combining your product with others in their ✨agentic workflows✨. Just as importantly, MCP servers validate demand for further agentic capabilities.
Custom agents are better when your users are non-engineers [ https://substack.com/redirect/b9b0195f-d50d-4d8b-87b1-5bcbe7ff6718?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], when compliance blocks external agents, or when you need full control of the user experience (for example, custom image generation).
Even when you decide to go custom, consider if simpler alternatives fit your use case:
For one-shot Q&A like generating product descriptions, try a simple LLM call with good prompting
For a single task like SQL or code generation, use a specialized model with structured output
For a multi-step but predictable flow like email classification plus response drafting, create a hardcoded workflow with LLM steps
Although PostHog AI is an agent now, we validated demand for it with a simpler use case and system. We built a workflow for data-related questions like “How many people signed up last week?” which lead directly to insight generation.
Only once this workflow saw adoption and users demanded other use cases (like answering docs questions or creating feature flags [ https://substack.com/redirect/d4397b80-dca5-41ec-858d-9668f83da928?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]) did the team build an agent.
2. Your harness is not your moat
Once you decide to build an agent, the next question is how will it work. The answer to this is an agent harness: the code and infrastructure that combines with a model to help it understand and use your product.
You aren’t going to win because you’ve created some genius new harness, especially if you’re building your first AI agent. Don’t use innovation points here. Anthropic wrote a perfectly good SDK [ https://substack.com/redirect/ab87182b-164c-400f-8717-6eff606b948c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and both Anthropic [ https://substack.com/redirect/16133c33-eaa5-44e4-800d-688255a94f56?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and AmpCode [ https://substack.com/redirect/3008328a-840d-4829-8f2f-827e25ba3744?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] have helpful guides.
If we were restarting today, we would have skipped building a custom harness and made MCP the canonical interface. We learned this the hard way through three iterations of PostHog AI this year.
The first harness [ https://substack.com/redirect/bb94b638-b495-4452-beb9-b5b99217532f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] was a coordinator that routed user messages to specialized sub-agents, but this created a black box problem as the coordinator couldn’t see what sub-agents were doing leading to context loss and confusion.
The second [ https://substack.com/redirect/88573bfb-47cd-4fb8-a107-78b9ee7059b0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] was a single agent loop with self contained modes and tools within each mode. This solved the visibility issue, but didn’t scale. If we didn’t write a tool, the capability wouldn’t exist. This led us to spending a lot of time writing tools (44 by the end) rather than improving in other ways.
Our third and current harness uses the Claude Agent SDK with MCP tools and skills. This change came from two realizations:
Our agent could be more creative. The Claude Agent SDK gives PostHog AI access to a code-execution sandbox. The agent can use it to query with SQL and run custom scripts, unlocking new capabilities without us needing to build them.
Agents are a primary persona. Our “users” are increasingly agents, whether that is through PostHog AI or our MCP server [ https://substack.com/redirect/e43d3dc9-8777-417d-9733-4a01b800ab5b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Our work here should converge and support both using a single architecture.
The flexibility of the sandbox plus the scalability of MCP tools and skill standards (which I’ll explain more about later) solves the issues of the second harness and positions us better for an agent-first future.
3. Your context is your advantage
When building an agent, there’s ultimately one question you need to answer to succeed: How does this beat Claude?
Context is the most important part of an answer. The combination of your app’s functionality and user data create a unique blend no other product can match.
Although you have product and user context sitting around, you need structure and format it to be useful for the agent. We do this with:
MCP tools [ https://substack.com/redirect/653f0201-f181-4ca3-adf7-8a87eb130d95?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Capabilities selected and extracted from the PostHog API [ https://substack.com/redirect/ed6c78ee-be6b-4b6a-b6e9-da0f87e70cad?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to expose all possible actions that agents can perform in PostHog. Examples include list feature flags, create a survey, or execute an SQL query.
Skills [ https://substack.com/redirect/bb2b74ab-90f6-4d32-a057-3ed6303eb2a7?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Markdown files we write to teach the agent complete workflows [ https://substack.com/redirect/f7c1f3b5-9710-4801-981b-eab36ff9b809?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and how to use our product. These include query patterns, system table schemas, examples, and MCP tool references. They are templates rendered at build time, so they can pull live context from the codebase like model schemas.
Layered runtime context injection [ https://substack.com/redirect/12b4e6f2-b522-4543-9ac7-1381a725a138?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. The frontend sends the user’s current view and state such as dashboards, insights, session recordings [ https://substack.com/redirect/bdfd5bfc-ccbc-4163-a3a7-196d0b5ceefe?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and filters. This is enriched with actual queries results and project metadata like timezone and organization name.
A taxonomy tool [ https://substack.com/redirect/6e53a73e-3fa2-49bc-a93b-803bb46f67f5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. This lets the agent explore the user’s event names, properties, and property values on demand rather than stuffing them all into the prompt upfront.
A memory onboarding flow [ https://substack.com/redirect/861ceea4-ae1c-4c86-9822-d1b85513a2fd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. This collects company and product context through conversation and persists it across sessions, so the agent builds understanding of each user’s setup over time.
Without this structured product context, the agent struggles to understand both our product and the user’s goals. It can get lost on simple questions because the context behind those questions is complex.
Reality has a surprising amount of detail and people define tasks in ambiguous ways. How would you answer “where do users drop off in CFMP conversion” without context?
4. Set up observability and evaluation from day one
These are essential as AI agents are non-deterministic and can fail in unpredictable ways [ https://substack.com/redirect/c8293164-a1d8-425f-812a-5d5e3415802d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Without visibility into this, you can’t improve them or catch regressions.
We didn’t have observability and evaluation early and regretted it. We wish we had:
Tracing [ https://substack.com/redirect/24504054-21dc-4413-8836-a058e686cb0f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for every LLM call with inputs, outputs, latency, and cost
Trace IDs that span the full conversation
The ability to replay and debug specific interactions [ https://substack.com/redirect/13d6f47e-e731-4577-a01b-f17061b568df?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
A curated datasets [ https://substack.com/redirect/10d0b889-7df2-4c5d-9bc7-2036f6536da8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] of real user queries
Automated scorers like LLM-as-judge [ https://substack.com/redirect/eea326b6-fcad-4122-906c-59828650d064?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and deterministic checks
Basically, LLM analytics [ https://substack.com/redirect/78c6c3f5-38c3-41a5-aeb3-f2e918cce5ce?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Unfortunately, LLM analytics alone isn’t enough. Reality is gnarly and to deal with it, our team often looks at real usage.
They run a “traces hour,” where they meet, manually analyze LLM traces (AKA real user interactions), and find areas to improve. Evals [ https://substack.com/redirect/631c1a59-9aee-4de3-89c1-e15b534e9639?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] make the most sense when they stem from these investigations.
Like building any successful product, understanding a user’s experience is critical to building a successful agent.
5. It doesn’t matter how cool your capabilities are
After getting buried in technical details, it’s important to poke your head out and remember who you’re building for. You’re not building for some hypothetical “coolest AI agent” contest, you’re building for your users.
What users want is often at odds with what’s coolest. The most common pain points users faced weren’t our agent’s range of capabilities or functionality, but things like:
Inconsistent performance
Unexpected failures
Generic error messages without clear explanation
Unclear capabilities leading to complex queries failing
Lack of signs of uncertainty, source of insights, and progress
While new capabilities are cool, ensuring your agent actually solves your customer’s problems is even cooler. Ultimately, building an AI agent is not just a showcase of your AI skillz, but a product engineering problem [ https://substack.com/redirect/fb0392b7-7546-4f51-8ec5-071703ce6e8e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. This requires you to talk to users, ship features they want, and iterate.
Words by Ian Vanagas [ https://substack.com/redirect/4f3b4eff-57ac-42a8-885f-27a8c1f14932?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] who has plenty of agentic capabilities himself if you ask nicely.
Share with someone building an agent to save them a few months
🦔 Jobs at PostHog
Unlike many AI companies, we don’t think agents are going to take over every job in the next 6 months. In fact, we’re hiring!
Product Engineer [ https://substack.com/redirect/90ca14c5-8bce-46ea-a07f-fb0dac9260ba?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Security Engineer [ https://substack.com/redirect/50275ff4-9b62-45b2-9da7-82b4fd8c1db0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
FinOps Engineer [ https://substack.com/redirect/e58878d9-17cf-4809-b9dd-c09bd50a1fd9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Account Manager [ https://substack.com/redirect/a678d906-5315-446d-aa97-1aaa20f432d0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Forward Deployed Engineer [ https://substack.com/redirect/4a8fa297-d4dc-4d70-b556-2f391d27e4b9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
📚 More good reads
How we built automatic clustering for LLM traces [ https://substack.com/redirect/ca23c6ca-a618-49cc-a528-9d98110668c1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Andy Maguire
MCP is Dead; Long Live MCP! [ https://substack.com/redirect/d7a1e0fe-3b7c-4b94-8281-900b6891b6d2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Charles Chen
Production Telemetry Is the Spec That Survived [ https://substack.com/redirect/4b83e92b-eb11-4697-b48c-2ee46031e687?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Vidhya R.
You Need to Rewrite Your CLI for AI Agents [ https://substack.com/redirect/436da205-37a5-4c7f-b953-c0ea12a558b4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Justin Poehnelt
8 learnings from 1 year of agents [ https://substack.com/redirect/bb94b638-b495-4452-beb9-b5b99217532f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Michael Matloka
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU1TVRrMk9ETXdOaXdpYVdGMElqb3hOemMwTXpjNU1qYzVMQ0psZUhBaU9qRTRNRFU1TVRVeU56a3NJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS44MllHczBPQXlocm5kNGdudHdIWFo2Z3ZfVUVqd05lTVRQQ1Iyd2JfcXpFIiwicCI6MTkxOTY4MzA2LCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc3NDM3OTI3OSwiZXhwIjoyMDg5OTU1Mjc5LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.6GuAp5njFWV9ji9ebGMwalrBTZhzySN5doesBSIe2ks?
View Email
What we wish we knew about building AI agents
productforengineers@substack.com3/24/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/an-engineers-guide-to-product-management
In our last issue, Ian Vanagas wrote about how engineering has escaped the codebase. [ https://substack.com/redirect/83341901-38d6-4ffc-9e9a-a4bc0da41719?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] How engineering tools, mindset, and identity increasingly shape every function, especially at startups.
We’ve seen this first-hand at PostHog [ https://substack.com/redirect/91ab9728-22ea-48de-accd-e218c498df1f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], but it’s not an isolated trend. The lines between product management and engineering are blurring, too.
Thanks to LLMs, figuring out what to build is now a greater bottleneck than how to build it, and it’s forcing engineers to think more like product managers (PMs).
In this issue, we’ll help you take advantage of what product managers have already figured out by going over the top three skills in their playbook.
1. Gather the right context
Providing context is a product manager’s most important job.
What exactly do we mean by context? In the same way that sailors used to navigate by the stars, engineers depend on context to make the right product decisions.
Good context points teams in the right direction; great context can change a company’s entire trajectory.
Take Duolingo for example.
In a guest edition of Lenny’s Newsletter [ https://substack.com/redirect/5db8c9bd-3e9d-44e8-beda-bfb1734ff572?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Duolingo’s Head of Product, Jorge Mazal, recounted how the company fixed its stalling growth problem. The team initially focused on friend referrals, premium trials, and in-game mechanics. Nothing worked, and daily active users (DAU) continued to decline.
But then Mazal and the data science team discovered that current user retention rates (CURR) were 5x more impactful on DAU than any other projected metric. That single piece of context completely shifted the product roadmap.
Instead of trying to acquire new users, the team invested in keeping existing learners hooked with leaderboards, daily streaks, and – of course – passive-aggressive push notifications from everybody’s favorite lime green owl.
Four years later, Duolingo successfully exited with massive 4.5x DAU gainz.
Product metrics like CURR and DAU in Duolingo’s story are just one form of context. There are many more, such as:
Competitor landscape. What are our competitors doing, and should we do that, too? In an interview with TechCrunch [ https://substack.com/redirect/73da7b88-5f58-443d-a3de-525c81fd78e2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Instagram’s CEO described how the company copied and outperformed Snapchat Stories in 2016.
User research. What do prospective users say they want? Buffer interviewed 30+ content creators [ https://substack.com/redirect/a6738ee3-1641-4447-8445-6eb0ca22b2f7?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to discover what people actually want from creative AI assistants.
Industry news. What’s happening in the industry that we should pay attention to? When generative AI took off in 2023, Canva turned it into its core feature [ https://substack.com/redirect/d7f574b6-55fc-43a5-9566-66796b5c880c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and doubled revenue in two years ($1.7B → $3.3B).
Customer feedback. What do current customers say they want, and is it actually what they want? When Linear users requested “custom fields”, they dug deeper and built Customer Requests [ https://substack.com/redirect/3b9e9f6e-9748-438a-a203-396239ff52c9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to track support tickets, Slack messages, and calls.
Gathering context can be difficult since it’s not always obvious what information is useful at any given point in time. You could spend weeks analyzing bug reports to improve feature adoption, only to realize after one user interview that it was a discoverability problem all along.
The good news is that you can develop an intuition for this by tracking what types of context led to measurable success through accountability loops (we’ll cover what that looks like in the next section).
Takeaway for engineers
Don’t wait around for someone else to give you the right context for your product. Instead, generate it yourself by creating your own systems for discovery.
In addition to helping you ship faster, this gives you an unfiltered view of the data. For example, talking to users [ https://substack.com/redirect/cd92b9aa-8a3e-430a-b366-6ba2931792f2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] provides clearer insight than reading secondhand notes from your PM since information gets lost at each step along the way:
Another reason engineers should do this is that your teammates might not understand the technical options and constraints as well as you do. Sometimes only the person with the full context of a problem can ask the right questions.
Try this: Book 2 user interviews [ https://substack.com/redirect/987458ad-e10e-465e-a6bc-72e1b80dea2a?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] per week. Run a feedback survey for your product and review survey data [ https://substack.com/redirect/aa2a5194-f65d-4f16-a4a5-286f034d22e5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] every sprint. Set up an LLM eval [ https://substack.com/redirect/8660ed82-2146-4c2b-9182-a49b6a049c42?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] that detects when users struggle. Create a weekly email digest for competitor blogs.
2. Track success with feedback loops
All that context is useless if your team doesn’t know if they’re winning.
Product managers at PostHog track and ensure success by running growth reviews [ https://substack.com/redirect/28631ad5-be0d-4249-8386-9bacefd79ae1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]: monthly meetings where they go over revenue trends, user feedback, usage metrics, and quarterly goals [ https://substack.com/redirect/b1270fae-5569-4911-8b70-1d3b632be8ba?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] with the engineers building the product.
If the numbers aren’t moving in the right direction, the PM presents a well-researched explanation to the team so that they can come up with an informed hypothesis and solution:
When the team meets again in the following month, they’ll review what worked and what didn’t. Each iteration levels up the product – and the team’s product sense, too.
Here’s an example from our Error Tracking [ https://substack.com/redirect/2bb383b8-a925-4fa6-abd6-9988da9298cc?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] team:
The problem: Cory [ https://substack.com/redirect/30c57473-36f7-49e5-9e1b-7316f43a0422?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], the PM, noticed that churn rates [ https://substack.com/redirect/0045905c-76ea-4360-b103-d0d0228935c3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] were disproportionately high, even though new customer acquisition was strong.
The context: A series of customer interviews all pointed to the same theme: trust. Users were leaving because of rough edges, such as missing recordings or unhandled stack trace edge cases.
The hypothesis: This is a product-quality problem, not a “missing features” problem. Systematically improving papercuts, ergonomics, and reliability will reduce churn.
The solution: The team catalogued every trust-related issue from customer feedback and shipped dozens of fixes (see below). Churn improved from 21% to 10% in the following quarter.
Without Cory’s investigation, the team could have easily spent months on new features that they thought would solve the churn problem, without addressing the root cause.
Feedback loops like these create accountability and, in turn, give developers more autonomy. Engineers at PostHog can make product decisions more freely [ https://substack.com/redirect/a1aef65d-d40b-4ee2-8ee9-e1e999741c87?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] (without PMs micromanaging roadmaps) since the system ensures they’re always contributing to the company’s bottom line.
Takeaway for engineers
You can turn every sprint into a mini growth review by setting aside time to define and evaluate success [ https://substack.com/redirect/3c6ae1ea-ab90-4682-a26e-377373b6af38?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] in each session.
We do this at PostHog by classifying each milestone with one of the following:
Nailed it: We hit the goal spectacularly. High fives all round.
Scraped it: We almost hit the goal, but we need to do a bit more to tidy up.
Failed it: We were nowhere near hitting the goal, but we learned some valuable lessons. Back to the drawing board for this one.
This ensures we’re learning from each cycle and not just shipping mindlessly [ https://substack.com/redirect/99435d66-a083-4bb4-8473-ada5362d7653?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. It’s way more useful than just marking tasks as “Completed”.
Try this: In your next sprint, apply the concept of feedback loops by defining and evaluating success for each task. Then in the next sprint, review if you met those goals (and if not, what you learned or how you’ll follow up [ https://substack.com/redirect/67782503-3271-47b1-987c-75b54b8742af?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
You could run an A/B test [ https://substack.com/redirect/61fbec61-744b-4971-9f95-cf02411c6b76?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to compare behavior between groups, test early prototypes [ https://substack.com/redirect/169e7230-5c00-471e-8f64-a2ec44dc20f3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to get user feedback, dogfood your product [ https://substack.com/redirect/8821b8fb-9dee-41d8-9e02-f3feef5fd0a8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to get internal data, or message a customer [ https://substack.com/redirect/c4e4799f-00c8-4a05-b179-ce63e483f287?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to see if you addressed their issue.
3. Communicate towards action
To make all of the above actually work, you need to make communication actionable [ https://substack.com/redirect/7bdb8361-1879-4428-aff2-e4a15576f347?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. We know this sounds like classic PM fluff, but give us a minute to explain.
It’s easy for anyone to state a problem:
“We’re losing enterprise deals to competitors because we’re missing features.”
But this doesn’t help engineers understand what to build or why.
Communicating towards action looks like:
“We’ve lost five deals worth $200k in the last three months over SSO, audit logs, and role-based permissions. We should prioritize these over shipping v2 of the MCP for our core segment since we already have strong retention there. The enterprise requests are more aligned with company-wide goals for Q2.”
This is better, but why? It reduces friction by surfacing important information from the start:
Stating the impact. Not “we are losing deals”, but “we lost three enterprise contracts.”
Being specific [ https://substack.com/redirect/dbb977ce-196b-4646-96df-3f3add9066dd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. They don’t just state that features are missing; they investigate and list the top three.
Sharing relevant context. The revenue loss, strong core retention, and the Q2 company-wide goal are all factors that will help make the decision.
Making trade-offs visible. The former doesn’t mention competing priorities; the latter points out exactly what to choose between.
Having an opinion [ https://substack.com/redirect/cae22780-0520-4fd1-b82d-40352f4e3db8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. Instead of just vaguely asking “Thoughts?”, they express which option they think is better and why.
This is where all three skills come together. Product managers know what information to provide thanks to all the context they’ve gathered and feedback loops they’ve experienced. And how they deliver it – by communicating actionably – makes all the difference.
Takeaway for engineers
Since action is the goal, it’s best to default to shipping when you can. That’s why pull requests are the S-tier form of communication [ https://substack.com/redirect/7bdb8361-1879-4428-aff2-e4a15576f347?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] at PostHog. (Email is F-tier, obviously.)
But when the next step is unclear and you need to bring it up for discussion, work backwards. Think about what types of context and success criteria a PM would provide to make the information as actionable as possible.
Try this: Next time you’re about to post “should we do X?”, make it actionable by including:
The specific problem and its impact
What you’ve already investigated
At least one other option and the trade-offs
Which one you’d pick and why
Words by Jina Yoon [ https://substack.com/@jinajay ], reformed PM who once learned the dark arts and now shares the secrets with you.
Subscribe for more forbidden product knowledge
📚 From the library
Your Best Thinking Is Wasted on the Wrong Decisions [ https://substack.com/redirect/7aaae2a5-c8e1-417f-bc1b-b9f8a0309478?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Ian Duncan
Product Management is Communication [ https://substack.com/redirect/0221d688-ad81-420a-b75c-183ce030a85d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]– Ben Yoskovitz
How close is AI to replacing product managers? [ https://substack.com/redirect/d2e75efb-2bf4-402f-817c-bf58f848ab8e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Lenny Rachitsky & Mike Taylor
A GitHub Issue Title Compromised 4,000 Developer Machines [ https://substack.com/redirect/12d6a7aa-2e4d-4670-b1eb-9d1f8e840afe?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]– grith.ai
How we built automatic clustering for LLM traces [ https://substack.com/redirect/5adcabfb-f07e-4a6d-9b06-51b963322552?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Andy Maguire
🦔 Join the prickle
Product Engineer [ https://substack.com/redirect/d8f530ce-a5c3-4b72-bd96-30030053c48d?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Sales Lead [ https://substack.com/redirect/0992b025-e263-40a4-bd58-66ebc5d5dbd3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Application Security Engineer [ https://substack.com/redirect/e1ea2fee-f8f9-4494-b531-bfe7b2fa50ac?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Dev Advocate (YouTube Team) [ https://substack.com/redirect/cfdfa0ee-1a70-464e-ab07-1cede4db3b25?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Mobile Engineer [ https://substack.com/redirect/c4d29283-87dc-4b38-b71e-93a8fa8cb3f2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU1TURZME1EUXlNU3dpYVdGMElqb3hOemN6TWpZM01URXhMQ0psZUhBaU9qRTRNRFE0TURNeE1URXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5yWFZQblE4YVRiZFFabGdNN3AxeGMzZkNhOFg3UTRoMDdlX1lEZVI3ampzIiwicCI6MTkwNjQwNDIxLCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc3MzI2NzExMSwiZXhwIjoyMDg4ODQzMTExLCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.g5Y2iS9BKmORRVyOGH9pomBhbqLj2DOqCIL8RCTQT4k?
View Email
WTF does a product manager do? (and why engineers should care)
productforengineers@substack.com3/11/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/the-engineeringification-of-everything
Engineering has escaped the codebase. The tools, mindset, and identity increasingly shape every function.
Spend enough time in startup circles and you’ll hear this engineeringification of everything:
“Oh, I’m a design engineer”
“We’re following best practice of GTM engineering”
“I need to talk to their sales engineer about implementation”
This raises two questions:
Why is every role becoming an engineering one?
Should I be worried?
This post answers both of these.
The engineeringification loop
The spread of engineering tools, skills, and identity into non-engineering roles, AKA “engineeringification,” is driven by a feedback loop that looks like this:
Take the role of design engineer as a specific example:
Design tools get more powerful. They’re not just for wireframing. Tools like Figma, Tailwind, and design systems baked into frameworks mean decisions shape production code. A button goes from being “just a rectangle” to a set of responsive, accessible variants that fit with your existing system.
Using them is complicated. Fully leveraging a design tool like Figma or a framework like Tailwind requires understanding product features, configurations, syntax, hotkeys, best practices, limitations, and constraints. At some point, you might even need to read the code.
Non-technical people learn anyway. Because engineering time is scarce and iteration speed matters, designers learn enough to ship. LLMs make this easier: they can generate Tailwind components, UIs, or even prototypes rather than hand-coding them.
Skills accumulate and identity shifts. At some point, the designers stop handing off work and do it themselves. They ship product code, debug layouts, and make tradeoffs between design and performance. Calling this just “design” makes less sense.
A new identity emerges and startups latch onto it. The label appears: design engineer. Power users adopt it, companies like Vercel start hiring for it [ https://substack.com/redirect/767138d7-ec27-4648-a2ef-274fcaf27716?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and tools begin marketing to it. The loop restarts, now with a clearer identity to build around.
Tools change skills, skills reshape identity, and identity demands new tools.
Why is engineeringification happening now?
People have been building powerful tools for many roles for a long time now. What makes this time different?
1. LLMs make it possible
LLMs make complex, domain-specific tools more accessible. Seemingly every tool has an AI assistant [ https://substack.com/redirect/6f7b5af0-4f6c-4cf6-9b03-f364176c988b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], an MCP server [ https://substack.com/redirect/0c67c141-15a5-4b73-909c-57facaeabaab?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], or an AI-powered alternative.
Non-technical people can learn how to use the powerful tools once exclusive to engineers faster and easier. With them, they can:
Generate apps and prototypes with tools like Lovable [ https://substack.com/redirect/9ad41dab-eeeb-4204-b0f5-6fe48d27b51c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], v0 [ https://substack.com/redirect/485c4e13-eae7-4fb0-a3b8-3e8b58ea84bd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and Claude Code [ https://substack.com/redirect/79bc1470-e893-438e-85ff-fce679a9d3f5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Automate and optimize go-to-market with tools like Clay, Pocus, Vitally, and Lemlist.
Build and configure workflows with PostHog [ https://substack.com/redirect/0e023634-b66f-42d1-b751-f67cbe9c45ac?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Make [ https://substack.com/redirect/515f8829-1a76-43c6-8376-01ca1f3de599?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and n8n [ https://substack.com/redirect/b853ffb1-e862-401a-b0b5-7ab32f7ff5b8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
2. Capital makes it inevitable
Engineeringification is a good business (we know because we’re in it). It’s where B2B SaaS is heading as companies are willing to pay for it, VCs are willing to invest in it, and playbooks for success exist [ https://substack.com/redirect/e0eeaafb-706a-47ea-987a-523364748fbd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
You can see this reflected in the growth and valuation of AI-powered B2B SaaS startups serving non-engineers like Sierra [ https://substack.com/redirect/90a279a4-fea1-4fe0-89fd-329299563c34?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Lovable [ https://substack.com/redirect/cb9aa601-fc68-4e86-87c4-dbbadf550d9e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Fin.ai [ https://substack.com/redirect/a2e4c906-5091-4853-8400-151ea6940246?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Bolt.new [ https://substack.com/redirect/5316c2da-adec-4ee5-8cd6-6d09463645fa?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Decagon [ https://substack.com/redirect/01019207-9669-446f-bd72-9dcd543ffe2f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Clay [ https://substack.com/redirect/f92b58da-f2b1-4f50-890a-84c83f7bec44?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and Replit [ https://substack.com/redirect/828c5b2a-5675-4071-8071-c5d2d6f68ba3?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
The capital flooding into the space improves the tools, provides users more capabilities, encourages new startups entrants, and increases marketing toward the engineeringification of identities.
3. Identity makes it permanent
The final driver of engineeringification is identity. Once people start seeing themselves as engineers, the loop becomes self-sustaining.
You don’t have to look far to see this shift in action. YC job posts [ https://substack.com/redirect/ce2c1916-444d-49f3-ade7-56b33cbd31ca?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] show how non-technical roles are increasingly engineering focused:
Engineeringification gives individuals new autonomy while saving engineers time. Success encourages non-technical people to expand their skills and use the tools more. As they spend more time on engineering-like work, they begin to identify less with their old role as it undersells the value of their work and how technical they are.
Instead, people identify more with what they’re building and the people who build (AKA engineers). This new identity eventually crystallizes often via blog post, conference talk, meetup or even tweet. Think Andrej Karpathy on vibe coding [ https://substack.com/redirect/52a7d33d-5c5e-4ab9-8de6-b1c2c42b877e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], Anthropic hiring a prompt engineer [ https://substack.com/redirect/438d4aec-69fb-461c-a3be-09c6ec606793?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and Vercel promoting design engineering [ https://substack.com/redirect/035b03cf-36f5-4eef-a31b-296858d183ae?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
New identities compound the loop: people adopt it, tools are built for them, and marketing reinforces it. This feeds the cycle all over again.
The meaning of engineer is changing
What it means to call yourself an “engineer” is a sensitive topic. It’s literally illegal to call yourself one without accreditation where I’m from [ https://substack.com/redirect/51129543-92d4-4253-b078-c55531dc52c4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Engineering once meant a specific set of skills in a bounded domain reinforced with formal training and gatekeeping. This remains true in physical domains as failure has physical consequences, but software’s low cost of failure makes gatekeeping harder to sustain. Boundaries are eroding.
The defining line of engineering is moving away from “who is allowed to build” toward “who has the ideas and dedication to actually build it.” It’s less about knowing all the theory and more putting it into practice.
To some, this looks like a loss. Engineering feels deprofessionalized: more self-taught practitioners, less depth, titles lose meaning.
For many more, it’s a gain: more autonomy, faster iteration, increased leverage and a better ability to ship solutions to real, valuable problems.
Should you be worried?
The line between technical and non-technical work isn’t disappearing, it’s being redrawn. Whether you’re an engineer or not, the winners will be those who think like builders:
For non-technical people, don’t be afraid to take on more “engineering” tasks. Tools have become more powerful and specialized and people like you are succeeding in using them. The combination of LLMs and MCP have made it easier to both learn and interact with more tools.
For engineers, congrats! The world is investing a ton in making YOU more powerful. Use these same tools to turn yourself into a full stack shipping machine AKA a product engineer [ https://substack.com/redirect/59c1dcd9-b59f-483a-ae3c-81f1e2fbf030?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. For example, you can use Exa [ https://substack.com/redirect/c5078b67-5e84-480e-97cf-403c5b26da3a?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for competitive research, BuildBetter [ https://substack.com/redirect/6ecc83f6-25b8-468c-8c9f-b3b4af653a30?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for user interviews, Figma Make to design a UI, and PostHog AI [ https://substack.com/redirect/6f7b5af0-4f6c-4cf6-9b03-f364176c988b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to analyze your product usage.
For startups, build for these new types of engineers. At a minimum, let people do engineering: have an API, make your docs machine readable [ https://substack.com/redirect/80ad8c80-790f-4f3e-9e9f-730b238f65ac?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] (I love a “Copy as Markdown” button), publish an MCP server, and connect with other tools.
Those who embrace the engineeringification of everything will find themselves riding the wave it is creating. The billions trillions invested here has to benefit someone. Why not you?
Words by Ian Vanagas [ https://substack.com/redirect/aa563c02-090d-4e96-84b5-64c48d567416?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] who, after all this, is still a bit skeptical of the “content engineer” role.
If everyone is becoming an engineer, what better newsletter to subscribe to than this one?
🦔 Jobs at PostHog
We’re hiring for many kinds of engineers (and almost engineers) like:
Product Engineer [ https://substack.com/redirect/440c5b7b-3b0c-4d58-a33e-ffd9390314da?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Technical Account Manager [ https://substack.com/redirect/04097508-1ee2-403e-a0a1-871f5c217ad9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Software Engineer – AI-Enabled Product Autonomy [ https://substack.com/redirect/04097508-1ee2-403e-a0a1-871f5c217ad9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Product Manager (ex-founder or ex-product engineer) [ https://substack.com/redirect/1007f43a-0f1d-4466-b160-893a10e1e0e9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
SRE – Clickhouse Team [ https://substack.com/redirect/23178474-e873-48d0-8e10-06bb3bc0d0b6?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
📚 More good reads
WTF is a forward deployed engineer? (and why everyone is hiring them) [ https://substack.com/redirect/09076186-a458-41f5-aaf7-1897df075dde?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Jina Yoon
Spinning the Wheel [ https://substack.com/redirect/962d0e78-a0ed-4b5d-a5f3-0f78532fee1c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Dylan Martin
How I do user interviews [ https://substack.com/redirect/91bfb701-3435-44f9-a900-5186d8376be9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Paul D’Ambra
The startup interview questions that actually matter [ https://substack.com/redirect/127c50f3-547e-4c88-9280-b134ffdf8f69?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – James Hawkins
The Rise of the GTM engineer [ https://substack.com/redirect/56d898c7-fa5a-4f64-86b6-74b70f7c29b0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Matteo Tittarelli and Maxence Vanderswalmen
The Rise of the AI Engineer [ https://substack.com/redirect/faba1af2-0f14-4e41-9d78-094444217904?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – Latent.Space
📺 PostHog on YouTube
Are you asking the right questions in interviews? James Hawkins argues not [ https://substack.com/redirect/9091fb61-757b-41e2-98b6-9e701150efae?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU0T0RZeU16UTFNU3dpYVdGMElqb3hOemN4T0Rjek5EazRMQ0psZUhBaU9qRTRNRE0wTURrME9UZ3NJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5jZXc5Vm9TaVZjVkhWemd1WjFoMFdKbmFkRWZTbDZXMEkyS0RYdFVsY2xrIiwicCI6MTg4NjIzNDUxLCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc3MTg3MzQ5OCwiZXhwIjoyMDg3NDQ5NDk4LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.Ux9pnyND7t729Wnei_BVDGKMgsiiT7HFzv3FtEnrxBc?
View Email
The engineeringification of everything
productforengineers@substack.com2/23/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/the-hidden-danger-of-shipping-fast
Is it possible to ship too much – or too fast?
Yes. Probably. Unfortunately.
A handful of people with good judgment and a lot of tokens can now do what used to take a full product org. As a result, software powered by LLMs is cheaper to build [ https://substack.com/redirect/61c9ded1-46c1-4961-b3ef-3697b15c59b7?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] and scaling faster [ https://substack.com/redirect/ed8cbd92-a98b-4e22-840c-13ae1bf7a10a?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] than at any point in history.
Once you cross a certain threshold, however, product velocity stops compounding and starts competing with itself. You’re no longer constrained by your capacity to ship new things, but by your users’ capacity to adopt them.
As a company that’s obsessed with shipping fast, we’re acutely familiar with this problem, so I’m sharing how we’re solving it, so you can too.
The Theory of Constraints
Since PostHog is a work tool – not a lifestyle brand [ https://substack.com/redirect/c64a8bf6-ed58-4b10-85f8-def351dd312c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – even our most enthusiastic users won’t adopt an infinite number of new things per week.
In practice, B2B SaaS users tend to adopt:
One big new thing every few months
A couple of medium improvements
A handful of small quality-of-life upgrades
Everything else gets ignored until someone explains why it matters. This is a classic bottleneck.
Luckily, bottlenecks have solutions. Manufacturers discovered this and crystallized it in a concept called Theory of Constraints (TOC). There’s one principle of TOC that is particularly relevant here:
When upstream output increases without increasing downstream capacity, the system destabilizes.
In our case:
Upstream we have 40+ small teams working asynchronously [ https://substack.com/redirect/5159c645-5dcf-4ff8-bdc1-eb247c31497b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], shipping at a high velocity, and AI accelerating productivity [ https://substack.com/redirect/e55ff0f8-d58e-47fb-bbb1-c550b6a80128?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Downstream we have limited user attention, comprehension, and engagement capacity.
Recognizing this, TOC can again help us understand the consequences of this mismatched capacity:
1. Queue buildup
In manufacturing, this looks like excess inventory. In software, this creates an invisible backlog – work that’s finished on your side, but unfinished in terms of user awareness and understanding.
The result is diffuse impact: lots of progress shipped, but less progress felt.
2. Time-to-value increases
As that backlog grows, the gap between production and adoption stretches. Your team keeps shipping code, but each new capability takes longer to move from “available” to “useful.”
Users struggle to keep up with what’s changed. Support and sales spend more time explaining context. Marketing lags releases instead of amplifying them.
3. Quality degradation
When a bottleneck is overloaded, quality degrades through forced tradeoffs.
In software, that shows up as:
Partial adoption instead of full behavior change
Misunderstood capabilities
Features used narrowly when they were designed to be foundational
Your product keeps getting bigger and better, but not proportionally clearer.
Does that mean you should slow down?
Definitely not.
Slowing down is what companies do when they run out of ideas (and clearly that’s not the problem). Fortunately, Theory of Constraints is quite explicit about what not to do here:
Improving non-bottlenecks is a waste of resources. You improve the system by elevating the bottleneck.
Product adoption happens one human at a time, and each individual user has a finite amount of mental bandwidth. So the real question isn’t whether to slow down, it’s this:
How do you elevate adoption without killing velocity?
How to address the real bottleneck of user attention
If you’re building anything serious (and using AI to increase throughput), you’ll hit this wall eventually.
At PostHog, we’re still figuring out the best way around it, but a few points are now painfully obvious.
1. Treat attention like a scarce resource (because it is)
Small autonomous teams [ https://substack.com/redirect/351bc502-084d-40f1-a9a0-1287b852b34c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] naturally optimize for their slice of the product. They own a feature and make it better.
Users don’t experience a product that way. They’re hit with every product change through a finite amount of attention they’re willing to spend.
That mismatch is where things start to break.
What failure looks like:
You treat launches as outputs instead of outcomes [ https://substack.com/redirect/7af645ed-a0eb-48e1-b7bc-5cf54248cf09?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
You see this when companies (especially startups) excitedly announce every new feature, and when changelogs or emails become the main way users are expected to keep up.
There’s only a limited amount of attention these methods capture. Ship fast enough and even engaged users will start showing feature fatigue [ https://substack.com/redirect/1366a77a-fb0b-43cb-af75-7346816b8bc2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
If you’ve ever heard “I didn’t know you could do that” from a long-time customer – congratulations, you’ve shipped past the speed of adoption.
Do this instead:
Keep shipping, but be aggressively opinionated about what matters right now.
Not everything needs a launch, a blog post, or to be explained immediately.
Define a launch tier framework [ https://substack.com/redirect/e26beece-38f5-4f18-86d6-d8e64cdfdfb0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] such as:
Category definers: New product rollouts or major designs that change how customers think about your category. Require full company alignment. For example, PostHog AI [ https://substack.com/redirect/137508ef-cf6c-4181-95c6-6025d06b4509?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Strategic upgrades: Meaningful product improvements (not redefinitions) that don’t require the full machinery of a major campaign. For example, PostHog Logs launch [ https://substack.com/redirect/21cd2ccf-1c58-4ec9-9ee3-0f1676079398?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Steady improvements: Standard product development that doesn’t require coordination beyond the product team. For example, LLM Analytics adding time to first token [ https://substack.com/redirect/f63a36f4-3022-46c5-a921-55f7d622ced2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
This is where brand helps. Things like humor [ https://substack.com/redirect/d012d554-ccf3-4d23-a9e5-d27693c283b2?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], narrative, and deliberate absurdity [ https://substack.com/redirect/3932f4b6-c3f7-434a-bd97-8767fa9b9636?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] work because they lower the cost of paying attention. Partnering with influencers [ https://substack.com/redirect/e86db0dc-7dfc-4748-9eb0-6273985d4478?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] that own trust with your ICP is another way to extend mindshare beyond your brand channels.
What this looks like: Notion ships constantly, but markets selectively. Many features land with almost no fanfare, while a small number (AI, databases, templates) get sustained narrative investment over months.
2. Build discovery into the product
If realizing value requires explanation outside of the product, you haven’t removed the adoption bottleneck – you’ve just moved it downstream to marketing, sales, or support.
Users don’t wake up wanting product updates. They’re trying to get something done and move on with their life.
That’s why feature discovery strategically tied to intent works better than announcements that land out of context.
What failure looks like:
Relying on external channels for discovery is brittle. As Andrew Chen argues in Every marketing channel sucks right now [ https://substack.com/redirect/8a0018ac-e42f-4ac9-8acd-08f4e44b13a4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], most channels are noisy and saturated. And despite the internet clout you may think it awards, focusing your efforts on Product Hunt, G2, or Hacker News probably isn’t worth the investment [ https://substack.com/redirect/4cd6a1b4-1e4d-442f-906d-db3a27fb71ae?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Your owned channels can easily make things worse. You’ve no doubt been a victim of generic product emails without meaningful segmentation [ https://substack.com/redirect/97b03436-6445-4271-8065-ded93cfea9cb?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] (”why did I receive this?”) or a disruptive in-app experience full of tooltips, banners and popups.
Worst of all are launch videos or press releases that promise “revolutionary” outcomes but don’t clearly explain what changed in the product. Marketing features over benefits [ https://substack.com/redirect/8c03a5ed-0043-41b3-9ad5-117b15d0fec9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] is a good pattern breaker, but be warned: too much focus on “what” rather than “now what” makes product adoption someone else’s problem.
Do this instead:
Surface features when they’re relevant to what the user is already doing.
Start by defining clear activation criteria [ https://substack.com/redirect/2229a9bc-7112-4ab3-bc34-d61f1a1f9986?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] – the signals that indicate a user is engaged with certain parts of your product. Once you discover these signals, you can anchor new features to tasks users already care about.
For example:
When a HubSpot user captures 10+ leads, lead scoring tools gets surfaced
When an Asana user creates a second project, the team invitation flow triggers
When a Zapier user has run multiple successful automations, multi-step templates are emphasized
Another name for this is continuous discovery [ https://substack.com/redirect/832acaaf-fe81-4645-b633-fbda9cd3b799?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]: letting user behavior and feedback influence what gets amplified next.
Emails [ https://substack.com/redirect/897f7474-ab1e-4369-aa8c-d30eab93eb6f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] andtooltips [ https://substack.com/redirect/650407b6-94cc-405a-9b45-03405309c984?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] can help here, but only when they’re contextual: “you’re using X, so Y might be useful.” Better is adding features to existing habit loops, encouraging users to build new habit loops with the features, or making the features sharable.
What this looks like: Atlassian famously struggled with feature sprawl across Jira, Confluence, and their other products. Users couldn’t keepup with so much surface area. The solution wasn’t more marketing, it was investing heavily in in-product discovery, clearer use-case documentation, and opinionated defaults to guide users to success.
3. Measure learning, not just usage
Product adoption isn’t only about feature usage, it’s about helping users get better at their jobs because those features exist. That’s why a lot of our content marketing isn’t really about PostHog at all – it’s about how to become a product engineer [ https://substack.com/redirect/75f9f0e3-db00-4027-9d7c-6f0913dcfeef?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
Sharing knowledge and being helpful builds trust and brand recognition in a way feature announcements never will.
What failure looks like:
When teams get this wrong, they focus on vanity metrics, push product teams toward being a feature factory [ https://substack.com/redirect/51c7a56b-0621-4f77-a4b8-951139bc7d89?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], and publish content that only makes sense if someone already cares about the product.
One of the biggest mistakes you can make is believing other people care about the product as much as you do.
They don’t.
Do this instead:
What works better is publishing things that are useful even without your product:
Real learnings, like how we built our AI setup wizard [ https://substack.com/redirect/ca7809b2-662f-487c-a31e-d6940dc05f13?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Internal knowledge turned into public artifacts [ https://substack.com/redirect/2def80a8-761c-4014-ad9a-c61e6d703bea?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Honest writeups like postmortems [ https://substack.com/redirect/adb7d1c2-a5ff-4fab-a38e-7fe3f75c1a3f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] for incidents
Even better, teach the domain you operate in – not just how your product works. Figma, for example, teaches people how to be better designers [ https://substack.com/redirect/54a80457-0d7a-4db0-b27e-16cbd861dfbd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], not just how to use Figma.
Events are another great tactic to build a community adjacent to your product. For example, Lovable’s SheBuilds [ https://substack.com/redirect/3623ad7d-ad00-4ca1-be25-8f7aa8cc8e8f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] hackathon encourages more women to try vibe coding.
What this looks like: HubSpot pioneered inbound marketing by teaching people how to be better marketers before selling them software. For many young professionals, that learning happened years before any purchasing decision – and by then, brand equity was already baked in.
Fast, not frantic
It's tempting to treat “shipping too fast” as a humblebrag, but that’s lazy thinking. If users can’t adopt what you ship, it’s not velocity, it’s waste.
Practically, that means being explicit about what actually deserves attention – and just as explicit about what doesn’t.
So when should you market a specific feature?
It changes a core workflow, not just adds another option
It compounds with an existing behavior (and you can surface it in-context)
It has a clear “aha” moment you can design for
You’re able to support it with docs, onboarding, and follow-up content (not just a blog post)
Everything else should move through the system quietly, without competing for attention it doesn’t need.
Product velocity only compounds when adoption keeps up. If user attention is the bottleneck, your job isn’t to slow down – it’s to be selective. Make a few things loud on purpose, and let the rest be quietly excellent.
Words by Cleo Lant [ https://substack.com/redirect/3facb89f-7b70-4873-a169-d55116111f0c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] who prefers light mode for most SaaS products (sue me).
You know what else compounds? This newsletter when you subscribe…
🦔 Jobs at PostHog
Want to join a team that’s shipping this fast? We’re hiring:
Product Engineer [ https://substack.com/redirect/b3abe70e-acda-4460-839d-21ba612448bd?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Software Engineer — Warehouse Sources [ https://substack.com/redirect/c5379fa4-9f5c-4ee4-b658-fa4782b2ed76?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Founding Talent Sourcer [ https://substack.com/redirect/ba2a4b25-4ca1-43da-8c7b-ee504720a856?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Software Engineer — AI-Enabled Product Autonomy [ https://substack.com/redirect/4e603838-552f-4c49-a7b7-9048f29e238c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
ClickHouse Operations Engineer [ https://substack.com/redirect/f50a4e33-e530-41cc-a058-8a535956dc82?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
📚 More good reads
An overview of Theory of Constraints [ https://substack.com/redirect/127d21f1-0524-49f9-8fc7-74a9521dd66e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Your logs’ final destination is in GA. You always end up here anyway [ https://substack.com/redirect/21cd2ccf-1c58-4ec9-9ee3-0f1676079398?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Sara Miteva
The MKT1 Field Guide to B2B startup marketing [ https://substack.com/redirect/73c9899f-2f93-4e96-a9a9-7e5d52856479?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Emily Kramer
Behind the scenes of a PostHog hackathon [ https://substack.com/redirect/061c9ddd-5065-4598-9aa4-6c65cdd8c828?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Andy Vandervell
Hypergrowth isn’t always easy [ https://substack.com/redirect/95e9d0ba-4cef-4711-81e6-28326a79d14a?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Avery Pennarun
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU0TnpNNU5UQXhPQ3dpYVdGMElqb3hOemN3TmpZME9ETXhMQ0psZUhBaU9qRTRNREl5TURBNE16RXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5uemNYdE9hX2VFNnBISHZ0QUxIcWJneVVhUmxITlMzTHpsZUZNZnFfaWFjIiwicCI6MTg3Mzk1MDE4LCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc3MDY2NDgzMSwiZXhwIjoyMDg2MjQwODMxLCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.Qna99Wtoz8iac5wXZZdZ99UdFKWGwdTUXGm_TCcZ9bA?
View Email
The hidden danger of shipping fast
productforengineers@substack.com2/9/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/10x-job-posts-for-10x-engineers
Writing great job posts is the most underrated part of building a startup.
Your company is your people, and your job posts are how you find them. Yet most founders treat them like paperwork.
At PostHog [ https://substack.com/redirect/df33dd38-3deb-4462-a64a-a80e72d19489?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], we’ve taken a different approach, and it’s worked. Our job posts have attracted tens of thousands of candidates, consistent praise, and ultimately, the talented team we now have.
Here’s everything we’ve learned about writing job posts that attract 10x talent.
1. Include real projects
The most powerful thing you can do is to give candidates a taste of what they’d actually do at your company.
Instead of rambling on about the job responsibilities, include a list of sample projects for some of their roles.
For example, Cursor posted these sample projects in an infra Software Engineer [ https://substack.com/redirect/1bfd32f1-d23f-459b-a628-53f3987913da?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] role:
Creating a retrieval system that processes 10,000,000,000+ files
Staring at esoteric flame graphs to performance engineer our reranking library
Working with many databases, proxies, caches, task queues, and orchestration systems
Shipping infra for safely computing import graphs and shadow lints
Lovable’s current open Platform Engineer [ https://substack.com/redirect/26fb8761-fc07-42fd-8cf0-9fa1c62f2b74?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] position has a couple as well:
A runtime environment for running AI agent workloads in a secure, scalable way.
High throughput Sandbox scheduler across multiple cloud providers.
You can take it even further and add links to actual PRs if your company is open source [ https://substack.com/redirect/6fca7845-f17c-48ec-bb42-fe85f9103172?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. At PostHog, we often add public examples of work you might do, like in this DevEx Engineer [ https://substack.com/redirect/9554edf1-eb81-4bef-b90e-b585ee6f9b3b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] post:
Hogli, a unified CLI for PostHog developer workflows [ https://substack.com/redirect/cc454652-fcc4-41f0-a3b0-a6a9bf695412?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Django migration safety checks and guide [ https://substack.com/redirect/64bc40a2-def7-4f87-85e8-246deb184a36?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Upgrade Django to 5.2 [ https://substack.com/redirect/e30ef707-e2ec-42a7-8587-e7257ab0dd10?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
This has a hidden benefit for your team, too. It helps you focus your evaluation on real work rather than just credentials and experience.
The takeaway: Real projects help people see if they’re actually interested in the work, not just qualified to do it.
2. Say what’s in it for them
Perks are nice. Transparent compensation [ https://substack.com/redirect/764179cd-50e7-4ece-8a2c-83b20a197079?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] is even better.
But the ultimate thing that’s going to convince another cracked engineer [ https://substack.com/redirect/2792ec49-6377-4260-8519-513b04f2c3b0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to come work with you is work they’re excited by. Some examples:
Impact from day one: You’re building agents on top of real customer data — not toy demos, not “when we get users” (AI Product Engineer, PostHog [ https://substack.com/redirect/0545e002-f472-4f86-b621-e60b47b2c6d0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
You will engage with the open-source community and participate in discussions, aligning with our commitment to giving back to the developer community (Software Engineer, Vercel [ https://substack.com/redirect/d00d7c4b-dde7-40ac-9a5b-e617a66467d8?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
We also own a $5M H200 GPU cluster that regularly lights up tens of thousands of machines (Software Engineer, Exa [ https://substack.com/redirect/d9178c3e-035f-4808-92e9-fff9b21d6fd6?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
Massive reach: Our docs platform serves 100 million+ developers every year and powers documentation for 18,000+ companies, including Anthropic, Cursor, PayPal, Coinbase, X, and over 20% of the last YC batch (Product Engineer, Mintlify [ https://substack.com/redirect/48887a42-f21b-495b-927c-21ef5e47d038?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
Autonomy: We have very few meetings. Just a Monday and a Friday to go over the Company Board. We think your time is sacred, whether it’s at work, or outside of work (Senior Full-Stack Engineer, Railway [ https://substack.com/redirect/79b477cc-0aa2-4602-90fe-cef4c89a3df5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
Talk to your current team and ask what made them join. Those answers are what belongs in your job post, not your mission statement.
The takeaway: Ambitious people are looking for places to learn, grow, and find fulfillment, not just collect a paycheck. Your value prop is the work, culture, and equity – sell them!
3. Avoid generic job titles
Generic job titles attract generic candidates.
For months, we had trouble hiring a product marketer. We got hundreds of applications from people who had been product marketers at other companies, but their experience was a bit too corporate for us.
It wasn’t until we changed the title to Developer Marketer that we started getting the right kind of candidates. Developers who could write, marketers who could code, the weird generalists we were looking for.
We do this now for a lot of roles like “Developers who love teaching” for the docs team, or “Developer who organizes events” for an event marketer.
One of our current openings is for an ad copywriter. The last thing we want is someone who writes “unlock growth” or “leverage your data stack”, so we’ve named it Propagandist [ https://substack.com/redirect/6010e95a-8e24-4313-8e80-4bb2ff0f925f?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to capture the unhinged energy we want to find.
This helps filter out people who want more traditional roles (nothing wrong with that, it’s just not what we do [ https://substack.com/redirect/5527a9d9-c18a-4c6e-90c4-e7215c5699b7?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]). More importantly though, it gets the M- and T-shaped people we want more excited and likely to apply.
The takeaway: Every job title comes with baggage. You’ll attract the unconventional candidates you want by clarifying what makes the role unique.
4. Detail your interview process
Everyone’s heard a story of a dreaded 10 step interview process with multiple on-site interviews and (unpaid) take home assignments that ends in a company ghosting them without an offer.
This nightmare scenario is what every candidate thinks your interview process is like if you don’t tell them.
Talented people are busy. Being transparent [ https://substack.com/redirect/ca305cc6-0fce-4a4d-b341-ee9f95ced882?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] about your interview process respects their time. Some examples include:
Supabase [ https://substack.com/redirect/e41fa23c-d47a-45d5-bb89-26c47dea8769?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] details their “simple, async-friendly” four step process, the bulk of which is up to four calls with the founders and future teammates.
We, at PostHog [ https://substack.com/redirect/ff80563e-3fa1-4b4e-ade2-51795b7d98e1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], have a four step process with culture, technical, and founder interviews, then our paid ($1000) SuperDay of work.
Railway [ https://substack.com/redirect/f925f16b-28e5-48f4-ab16-f5fbea2643eb?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] also has a six step process with async project work and review, interviews, and a chat with the CEO.
This has the added benefit of forcing you to clarify and be accountable for your interview process, and provides a good first impression of your company values.
The takeaway: Clarifying, then including your interview process has a huge impact on candidate experience and makes your role more accessible to talented (but busy) potential hires.
5. Treat job posts like marketing
Job posts are often someone’s first impression of your company.
This is especially true in early stages. There’s a good chance your LinkedIn job ad is literally your most-viewed piece of content. Every view is a chance to build your brand to a potential customer, investor, or teammate, so you need to stand out.
The same rules for marketing copy apply here - lead with your value prop, skip the jargon, and write with personality.
The creators of Bolt.new [ https://substack.com/redirect/294a50d8-3f84-4bf6-8fec-bc31edd410a0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] do this well in their intro for this Full Stack Engineer [ https://substack.com/redirect/e0dcc324-a64a-4f18-a311-d71a83242269?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] role:
We’re StackBlitz!
We’re the team behind WebContainers, the groundbreaking technology that made it possible to run Node.js right in your browser. No installs, no setup, just instant dev environments. That innovation kickstarted our journey in 2019 and powers the blazing-fast online IDE used by over a million developers every month.
But we didn’t stop there.
We took everything we learned from building WebContainers and used it to create Bolt.new.
At PostHog, we keep that energy going throughout the entire post:
You love getting things done. Engineers at PostHog have an incredible amount of autonomy to decide what to work on, so you’ll need to be proactive and just git it done (Platform Engineer, PostHog [ https://substack.com/redirect/c4abd34d-3ba1-439e-ae9b-c33b72ae9c71?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
Have created short-form videos (TikTok, Reels, Shorts) for companies. We don’t think most dance trends are relevant to B2B SaaS, but it would be helpful if you could confirm that for us (Social Poster (in chief), PostHog [ https://substack.com/redirect/36b35b02-d04d-4575-9b84-e49a03458b80?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
Implementing AI features. LLMs, eh? They’re getting prettaaay, prettaay good. All our products integrate with PostHog AI, so you’ll likely be working with the PostHog AI team to implement AI features in your products (AI Product Engineer, PostHog [ https://substack.com/redirect/0545e002-f472-4f86-b621-e60b47b2c6d0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]).
Write these like how you would talk to a friend. Add what makes you unique. Lean into being super technical (or super weird). Brag a little, but not too much. Mention your traction, the money you’ve raised, and a bit of background, not your CEO’s high school pedigree. Make a joke; we say our founder interview is the “final boss”.
The takeaway: More people will read your job post than your landing page. Make it count.
Words by Jina Yoon [ https://substack.com/redirect/43f964f4-9fd2-4c16-a7d1-5fe9b22c9120?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], who applied to one of these job posts recently.
Subscribe to get more example job posts like the ones below (and newsletters too…)
🦔 Jobs at PostHog
We’re biased but we’re proud of our job posts. Check them out (and apply):
Product Engineer [ https://substack.com/redirect/ff80563e-3fa1-4b4e-ade2-51795b7d98e1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Founding Talent Sourcer [ https://substack.com/redirect/66d36bb6-2290-4004-ab6e-bd78f517343b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Software Engineer — Warehouse Pipelines [ https://substack.com/redirect/b5d93594-797f-4446-b66c-ec009e839c36?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
AI Product Engineer [ https://substack.com/redirect/0545e002-f472-4f86-b621-e60b47b2c6d0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Forward Deployed Engineer [ https://substack.com/redirect/91473944-bea4-4658-8724-6026c02436f4?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
📚 More good reads
Why We Built Our Own Background Agent [ https://substack.com/redirect/319ab3a2-7817-44f3-ac9d-df2a85ab8e03?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Ramp
No management needed: anti-patterns in early-stage engineering teams [ https://substack.com/redirect/9da116eb-be10-4844-b127-ee96f05072e5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Antoine Boulange
Stop AI slop: Run evals with LLM-as-a-Judge [ https://substack.com/redirect/977862c0-94f8-4b2f-9aaa-db81aacc1221?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Cleo Lant
Hiring (and managing) cracked engineers [ https://substack.com/redirect/2792ec49-6377-4260-8519-513b04f2c3b0?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Charles Cook
How to get a job at a startup [ https://substack.com/redirect/dbdc1cf9-9628-4a46-9576-ca5af8b87578?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - James Temperton
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU0TlRNMU9UUTNNQ3dpYVdGMElqb3hOelk1TkRVNU5qSTNMQ0psZUhBaU9qRTRNREE1T1RVMk1qY3NJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5GazhpQUZSZW9ReHV2em43am0tVUNvSnZPVG56TWlTUzBIa201d050dEprIiwicCI6MTg1MzU5NDcwLCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc2OTQ1OTYyNywiZXhwIjoyMDg1MDM1NjI3LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.3enuCytOhOz4VZ2ENaICqgl5ZMpDDllw1GHMTyiX3Ms?
View Email
10x job posts for 10x engineers
productforengineers@substack.com1/26/2026
SubstackView this post on the web at https://newsletter.posthog.com/p/how-i-actually-get-good-advice
Every 6 months, I spend 2 weeks intensively gathering advice from people who are much more experienced and successful than me at what we do at PostHog [ https://substack.com/redirect/da33bcfd-7d99-4d28-8ba3-ff9d5a63c73e?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ].
I’ve talked with people who have scaled some of the most successful software companies in the world and built tools that millions use every day. What I learned from them has fundamentally changed how we do things at PostHog.
I also increasingly have people asking me for advice about what they should do with their company. The main thing I’ve learned from both sides of the conversation is that getting good advice doesn’t just happen. It’s a skill.
These are the things I do to get good advice.
Be intentional and cast a wide net
My process is:
Pick a topic where I have ideas but not strong conviction about what to do
Find 4 people who have done that thing successfully
Either get intros or cold message them on LinkedIn
You need to talk to multiple people because they will all say different things, even if they worked at the same company. Pick companies that serve a similar ideal customer profile [ https://substack.com/redirect/7f6a9857-333e-43cb-a75f-8a8d7320bc39?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]. If you are building a devtool [ https://substack.com/redirect/97b01778-2f93-4540-9db9-7c4951c6a167?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], get advice about sales from someone at GitHub, not LinkedIn. If you are product-led, talk to someone from Figma, not Salesforce.
Cold messaging works because people are nice, but you need to a) have mutuals, and b) ask a specific question. Don’t say “I’d love to pick your brain” – a specific question from you lessens the mental load for them so they can be helpful.
Here’s basically the message I send:
Hi ____, if you have a minute to share some wisdom with someone building the sales machine at a heavily product-led company, I’d love to get your thoughts!
I lead the commercial teams at PostHog (joined as first non-eng hire), and we’re scaling up across sales, CS, demand gen, etc. fast.
One thing I’m trying to figure out is what our first BDR hire should look like – someone who has built a function before and knows what they’re doing, or a less experience/more cracked IC type who will just try things? Or something else entirely?
If you don’t see this no worries – huge fanboy of how you guys scaled [insert personal, genuine reason why you admire their work]
“But Charles, that won’t work for me – I’m not a fancy generic exec person like you are!”
Maybe I’m weird, but I hop on calls with people I don’t know about once a week to give them advice. Usually the ones I’ve said yes to have done similar to the above – if your story resonates, people will want to help you out.
Here’s an example of a message I received a couple of weeks ago that led to a call:
Hi Charles,
My name is ______. I recently applied to (and was then rejected by) PostHog. Sucks, but all part of the game. I’m reaching out because in my research of PostHog (I research every startup I apply to, I am still lucky to have the luxury of choosing where I apply to), I came across your website and writings and I became hooked, I especially loved your dictator or tech bro game [ https://substack.com/redirect/f050a5f5-fee3-4151-90dc-445e30e71760?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], that was amazing, I think you need to introduce some quotes from Gurbanguly Berdymukhammedov (Turkmenistan’s dictator) because that guy is wild – here is a link [ https://substack.com/redirect/d8a82d9e-f0c9-4d2c-9685-5a6fa24a0ec1?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] to a last week tonight episode about him but careful because Turkmenistan is a youtube video rabbit hole.
Anyways. I really resonated with how you entered the world of startups and I am trying to do the same (I am a very new corporate lawyer, who is trying to leave the field all together) and was hoping I could get a few minutes of your time so that you could get give me some advice on breaking into the world of startups and so that I may ask you a few more questions about your “What startup recruiters actually see when you apply for a job” article.
Thank you so much for your time and for the great content you create!
Ask the “right” people
How do I know that people have done something successfully? Sure, LinkedIn, but that doesn’t give the full picture…
Honestly – I can’t really know! But I still learn something useful in every call:
Sometimes, the person just validates that you are doing the right thing
They may have made a bunch of mistakes, which is still great – now you can avoid making them
Generally, I’ve found that the most helpful people have done a decent stint – i.e. 5+ years at a good company. 5 years is long enough to genuinely help build something, and people who aren’t good generally get found out before then.
If they’ve collected 18 month stints at a bunch of cool companies, they may still be good, but they’ve left too quickly to ever really get found out. Generally, I’m looking for people who have been leaders at companies I admire and have 15+ years of overall experience.
Do some legwork
Once a call is set up, I write a one pager that summarizes where we are at and outline 3-4 questions I’d like to ask. I share this with them before the call. Here’s an example of what it looks like. [ https://substack.com/redirect/21a1cdb2-754b-4527-b368-b4e55bddd17c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
This is the single most important thing I’ve done to get better advice. Do not just turn up and start talking.
A one pager:
Saves you precious time on a call telling someone all about your business they just heard about
Helps you clarify and focus your thinking on what really matters
Shows you are a person to take seriously
Here’s a template I use:
Summary
- Where our company/function was
- Where our company/function is today
- Where we’re heading in the near future
Team
- What the team looks like
What we need help with
- Specific questions
Call notes
-
When it comes to the questions, the best approach is to pick a specific area but ask for their general take or mental model. Don’t ask them how to solve a specific problem – you’ll never give them enough context and they’ll feel obliged to say something anyway. People are nice and don’t want to say “you have to figure that out for yourself.”
The person I am talking to may have already spoken about these topics in an article they wrote or an interview they did, but I don’t worry about that. If I’m trying to get in touch with someone because they were on Lenny’s Podcast [ https://substack.com/redirect/8562f3ed-7112-4984-8974-8f268ffdb12c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], they are probably too busy/famous to talk to me anyway!
Start closer to home
If it’s an option, your own team can be a great source of advice! For example, I went through a period of interviewing every new sales hire about a month after they joined PostHog to get as much specific, detailed information out of them.
Here’s a template you can use:
Your background
- Tell me about the most successful _____ team(s) you have ever been a part of
- What were the specific things that made them successful?
- What were the processes? Team personality traits? Training?
- What were the mistakes you made?
At PostHog
- What are the things you think we are doing well as a ____ team?
- Why do you think we would fail to achieve our goals?
- What are 3 things we could start doing tomorrow that would make a difference?
You don’t really need to have a specific agenda – I find these conversations less good for solving specific problems, and better for casting the net wide and seeing what you find.
For example, we didn’t watch sales call recordings early on – we’re too busy selling to watch calls! But Scott convinced me that this is actually extremely important at any stage – “there isn’t a basketball team that doesn’t watch recordings of how they play.” (This is probably why I suck at basketball right?)
Diagnoses > solutions
Statistically speaking, the person giving you advice is not going to nail the solution every time. In fact, they’ll probably be right 50% of the time. If you get two people giving you conflicting advice, the number of correct opinions is either 0 or 1.
They will however be pretty likely to nail the problem you’re facing, because there are exponentially more potential solutions than there are problems, and problems tend not to vary as much over time. Everyone is dealing with how to hire [ https://substack.com/redirect/1a7af83a-655e-4fdb-b0bd-a1405a94df23?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], fire, manage [ https://substack.com/redirect/b8d00544-ff40-4e6a-b673-6adae23e8634?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ], pay, acquire customers, retain customers, etc.
For example, I spoke to three companies who all agreed that relying on solely inbound sales won’t scale beyond a certain point, and you need to figure out outbound before you actually need it. However, one suggested hiring a senior BDR, another a go-to-market engineer, and the other an account executive who could do BDR experiments. We’re solving this with the first option, because that makes the most sense in the context of our business, customer base, and existing systems.
It’s a meme, but 80% of figuring out the right solution is getting to the root of the actual problem first.
Don’t underestimate the role of luck
One thing you should always ask yourself is “how much can I attribute this person’s success to their brilliance vs. external factors such as luck?”
We love a good Napoleon or Caesar biography where their success is attributed to a series of extremely smart decisions made after a period of intense contemplation, but the reality is that a lot of anybody’s success is down to a specific time/place/economy/environment/weather.
Many of our best decisions weren’t the result of deep, careful thinking – they were vibes that turned out to be right because that’s the way the wind was blowing. And we’ve got plenty of things wrong anyway that came after a bunch of analysis.
Getting advice from someone who has only worked at Google, Meta, and Netflix mayyy be helpful because they’ve probably worked with a lot of excellent people, but remember that you’ll be trying to apply lessons from some of the biggest outliers in history to your situation.
I think the best way to figure out whether the person is brilliant or lucky is gut feel:
Do you find the person you’re talking to extremely impressive, or do you come away thinking “wow, this company nailed it?”
Would you pay $1m to hire that person tomorrow to help you, or did you come away thinking “that was mildly interesting?”
If it’s the latter in both cases, the advice won’t necessarily be bad, but they might have been more lucky than good.
Words by Charles Cook, who is currently working on a billboard campaign around the slogan “what doesn’t kill you makes you PostHog”
Subscribe for more advice.
🦔 Jobs at PostHog
Really, the best advice I can give you is to join us, we’re hiring these roles and more [ https://substack.com/redirect/92673cb0-a119-48e0-9b80-50e9229b5caa?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]:
Product Engineer [ https://substack.com/redirect/ee1346ba-1e10-4dcd-949d-0507c2713c31?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Forward Deployed Engineer [ https://substack.com/redirect/2f1c716e-6ae2-42ed-92a9-83ccfe45794b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Product Manager (ex-founder or ex-product engineer) [ https://substack.com/redirect/334ab43c-a0c6-4c15-8a18-1dcac3f6ff71?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
AI Product Engineer [ https://substack.com/redirect/1650f563-1025-4479-9119-88402e81c2b5?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
Software Engineer — Data Stack Tooling [ https://substack.com/redirect/ba07d720-b15e-4805-92b8-6dd3abd6d74c?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ]
📚 More good reads
Why small teams crush tiger teams [ https://substack.com/redirect/b35c94f9-7e90-453e-bfec-0ec81e6d6755?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Natalia Amorim
Why doesn’t advice work? [ https://substack.com/redirect/fb7960eb-4265-441f-8cdd-d1ddfa2e1500?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - dynomight
where good ideas come from (for coding agents) [ https://substack.com/redirect/a727b545-cb3b-4792-aa33-4445c35031c9?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Sunil Pai
One Year at PostHog [ https://substack.com/redirect/bd871376-b323-428e-943a-bfdb1878119b?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - haacked
What the AI Wizard taught us about LLM code generation at scale [ https://substack.com/redirect/f48bbfd3-ecb0-4246-8dbf-7aae97a50c02?j=eyJ1IjoiNzF4cDQwIn0.VLQsNiiAawz-DS2VtWTrcrG2IFeLIxnWNFcK9akSjpY ] - Danilo Campos
Unsubscribe https://substack.com/redirect/2/eyJlIjoiaHR0cHM6Ly9uZXdzbGV0dGVyLnBvc3Rob2cuY29tL2FjdGlvbi9kaXNhYmxlX2VtYWlsP3Rva2VuPWV5SjFjMlZ5WDJsa0lqbzBNalkxTVRVd05EQXNJbkJ2YzNSZmFXUWlPakU0TXpreE1ETXdOU3dpYVdGMElqb3hOelk0TWpReE9UUTJMQ0psZUhBaU9qRTNPVGszTnpjNU5EWXNJbWx6Y3lJNkluQjFZaTB4TXpFNE1qSTFJaXdpYzNWaUlqb2laR2x6WVdKc1pWOWxiV0ZwYkNKOS5EZUd6b1g4U20wSmhBdmh5Z1FRWUVfNzJvSVRjelJYbHNiZERaSGF3b2RBIiwicCI6MTgzOTEwMzA1LCJzIjoxMzE4MjI1LCJmIjp0cnVlLCJ1Ijo0MjY1MTUwNDAsImlhdCI6MTc2ODI0MTk0NiwiZXhwIjoyMDgzODE3OTQ2LCJpc3MiOiJwdWItMCIsInN1YiI6ImxpbmstcmVkaXJlY3QifQ.igHTAK3tISlFvNSCCzuMlbeNZo5VbfNrz1rnwD72yVw?
View Email
How I actually get good advice
productforengineers@substack.com1/12/2026
Substack[https://eotrx.substackcdn.com/open?token=eyJtIjoiPDIwMjYwMTA1MTc0NjA3LjMuYzc3NWUwZmYwNjkyZjM4MS50dDV4eDJkN0BtZy1kMC5zdWJzdGFjay5jb20-IiwidSI6NDI2NTE1MDQwLCJyIjoiYkBlbWFpbC5nb21vZHVsci5jb20iLCJkIjoibWctZDAuc3Vic3RhY2suY29tIiwicCI6bnVsbCwidCI6bnVsbCwiYSI6bnVsbCwicyI6MTMxODIyNSwiYyI6ImZyZWUtd2VsY29tZSIsImYiOnRydWUsInBvc2l0aW9uIjoidG9wIiwiaWF0IjoxNzY3NjM1MTY3LCJleHAiOjE3NzAyMjcxNjcsImlzcyI6InB1Yi0wIiwic3ViIjoiZW8ifQ.NWfh8l-7o5gYxqD4hDPuNS6AwRUBCKr-BXaoRxnCcvY]
Thank you for subscribing to Product for Engineers
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏ ͏
͏ ͏ ͏ ͏
Product for Engineers
[https://substackcdn.com/image/fetch/$s_!JM_B!,w_80,h_80,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_auto/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe72ab71-149a-44a9-8b5a-b91485b0c98f_371x371.png]
Hi 👋,
You’re receiving this email because you subscribed to Product for Engineers
[https://email.mg-d0.substack.com/c/eJxUkM1u4yAUhZ_G7GJdsIFkwWI2kUaaUR_B4ufaRjXGgkubvH3ldNOuz9F3Ph1vCZdcnmYuiJdP3HxOyIJRg51lYGi4VloNkivNMNm4TQvuWCxhmCz9SIVWbDU3P6AM4AQX4BSMHpybueWOW_Ry1CwaAUIBB8n1qED3Q--1lgjzDOom5uHKeyL5eIiguxHScgnQ1-YqWf_e-5xYrNPperoYKg3ZZlaio3bDn07cO3Ffcn_kSmtezn4n7uVt_cv__WdHc5PPKbU90nPC3boNwzfjaG6L3lLM-xSD4QO_CiFZMa4b4bXVLznl0LbykqjNhZxs3M1Rcmie5lxwX-KOWCqj32-2iuWkjkJJLmEE9mHEVwAAAP__uWV7Pw]
via the PostHog website.
We import subscribers manually, hence the slight delay – we know it’s weird, but
Substack doesn’t offer an API! 👎
Expect a 🔥 newsletter in your inbox every week or two. We cover practical tips
for engineers and founders as well as what we’ve learned about building a
successful startup.
Some of our greatest hits include:
* 50 things we’ve learned about building successful products
[https://email.mg-d0.substack.com/c/eJxUkLty6yAYhJ9GdNYA4iIXFKdxd9Kl1nD5kZkIoYGfxH77jJwmqXfn22_WW4S11KeJFeDyBZsvGUgwarJRBgKGaaXVJJnSBLJN27LCDtUihMXir5RrRe5GcKW8jFpbe716a0WYuVbOzS7qOURBkuGUK8qoZFooqsdp9FpLoDFSdeVxmtmIKB8PHvQgaF4vgY6tu4bWf4y-ZJLacrqeLgZrB7KZO-LRhunfwG8Dv61lPErDe1nP_sBv7_-3SMUbObpbfMm57wmfC-zWbRB-GEd3W_IWU9mXFAyb2My5JNW4QdDX1riWXELf6kuidRdKtmk3Ry2he4ylwr6mHaA2gn_f7A3qSRVcSSapoOTT8O8AAAD__-qae2Q]
* Product management is broken. Engineers can fix it
[https://email.mg-d0.substack.com/c/eJxUkDluwzAURE8jdha4Uy5YpPE1BC6fMmGRVLgk9u0DOU1Sz-DNwzjTYSv1pUMFuHzD7koC5LVkJgiPQBMllWSCSIUgmbivG2SopoNfTf-TUiXRXYerWpiynslFOo658UEtNATAlovrglHUFFOJCRZEcYnVzGanlAAcApZXGthC5t7F80m9mjhO28XjuQ3bunGP2ZWEYltP19NF9zoA7fre-9Em9jHR20RvW5mP0vq9bGd_orfl81GMT-gYdnUlpZFjf62Qjd3B_zKOYffoTI8lr9FrwshCqUBV24nj99a8lVT82Otbog3rSzIx66MWP1wPpULeYgaoDfX_b44G9aRyKgURmGP0pelPAAAA__-kE3tl]
* The magic of small engineering teams
[https://email.mg-d0.substack.com/c/eJxUkDGO5CAURE9jsrbgY6A3INgN-hoWhm8brQELPjPdtx-5J5mJq_Tqqbwj3Ep92bUi3j7x8CUhC1ZLt6rA0AqjjZZKaMMwuXjMG2asjjDMjn6kYDTb7aRRG-F9CMp5QJDoxN2g1BynoJVj0QIHzQVXwkyam1GO3hiFfF25_gOrvIuRSD2fEMww8bTdAh9bXxo5_3_0JbHY5sv1crFUO7LD7kRnG-TfAR4DPLYynqXRXrarP8Ajtv1f8pGdfZl9SannSK8Zs1sODN-Msy9H9I5iyXMMVkhxB1Cs2mWY-Htr3EoqoR_1LdH6EkpyMduzltA9raVi3mJGrI3R7zd7w3pRJ9BKKD5x9mHhKwAA__8rNnvj]
* Non-obvious behaviors that will kill your startup
[https://email.mg-d0.substack.com/c/eJxUkDluwzAURE8jdha4Uy5YpIgPkUbg8kUTEUmBS2LfPpDTJPUM3jyMMx1CqU-9VYDLN-yuJEBeS2Y24RFooqSSTBCpECQT9zVAhmo6-NX0PylVEt21MoJjTtmiLPGMXxkmXODrtkhHOZMORU0xlZhgQRSXWM1sdkoJwNuG5ZVubCFz7-LxoF5NHKdw8Xhuw7Zu3OfsSkKxrafr6aJ7HYB2fe_9aBN7m-htordQ5qO0fi_h7E_0NlhI7x8WHcOurqQ0cuzPFbKxO_hfxjHsHp3pseQ1ek0YWSgVqGo7cfzamkNJxY-9viTasL4kE7M-avHD9a1UyCFmgNpQ___maFBPKqdSEIE5Rl-a_gQAAP__XHR6Iw]
* Beyond the 10x engineer
[https://email.mg-d0.substack.com/c/eJxUkL2O4yAUhZ_GdLHgYsApKLbxPsFqSwvDxWFjwOJnJ3n7UTLNTH10zvfpWNNwz-WpfUG8fOBhc0TitOTGC0dQMyWV5IJJRTCacKw7JiymoVtN-5aCkuSmpTWeGkqBMX69unlWBgxTE2WWA5s8CRooSMqoYGqSVI18tEoJpN5TeQXPZza2Jh4PcGqYaNwvjo61b7UZex9tjiTU9eX6ctGtdCSHvrV21oH_GmAZYHF9G4-Q7gMs9fe_5e_jDzn7ttocY0-hPVdMZjvQfbXPvh3BmhZyWoPTjLMZQJCit2Gib8q455hdP8obX_vmcjQh6bNk123zuWDaQ0IslbSfP_aK5bU6gRRM0ImS_xo-AwAA___1eXhQ]
* Collaboration sucks
[https://email.mg-d0.substack.com/c/eJxUkLFy6yAURL9GdNbARYBeQfEap06XToPgSiYRQgOXxP77jJwmqXfn7Jn1jnDN5WGXgnj5ws3nhCxYLd2iAkMrjDZaKqENw-TiNq24Y3GEYXL0KwWj2c0qFKNelJBawIjceaHBo_CgtZdgZhYtcNBccCXMoLnpZe-NUciXhet_sMhR9ETqfodguoGn9RJ4X9tcyfmP3ufEYp1O19PFUmnINnsjOmon_3dw7eC65v7IlW55PfsdXN9eHu8mv7KjzZPPKbU90mPC3c0bhh_G0eYtekcx71MMVkgxAihW7NwN_LnVrznl0LbylKhtDjm5uNuj5NA8LbngvsYdsVRGf99sFctJHUArofjA2aeF7wAAAP__I4N61g]
> ⛔️ Note for Gmail users: Our emails may land in your Promotions tab. Move this
> email to your Primary inbox to avoid missing new issues.
WHAT IS POSTHOG?
This newsletter is written by the team at PostHog
[https://email.mg-d0.substack.com/c/eJxUkMuO3CAQRb8Gdm3xMNBesIg06t-weJTdKAYsKDLTfx-5k0iZbd2rukcnOIS9tpfdGsDtE45QM9BotXSbihQsN9poqbg2FLJLx7pDgeYQ4urwv1QYTZ-WSRk2DUy56MErLaVc3OJ99AvT7g40WcGEZpwpbmbNzCSnYIwCtm1ML2KTdz4hqq8vEQ2ZWd5vkU19-I4u_JxCzTT19WK9WCy2AfSwT8SzE_mDiAcRj7N2fNb9Kl8H-RiY115HC0Dkx9_0VuCzH4AIjQh9NTLENDKRH_8knMOvoeY8SsLXCsX5A-KfyXP4IwWHqZY1RcslvwuhaLOezOyNNu011ziO9mbuw8eaXSr2bDWOgFttUPZUAFqn-F3-6NCur7PQiis2M_rLit8BAAD__xg7jZc],
so you may be wondering: what is PostHog?
We’re a developer platform that helps people build successful products. We
provide a suite of dev tools to help you do this including:
* Product analytics
[https://email.mg-d0.substack.com/c/eJxU0c2O3CAMB_CngdtEfDM9cKi0mteICDgZVD4iMN2dt6-y3Urdo-W_rJ_t4BGO1l9u7wC3d8ihFaDRGel3HSk4bo01UnNjKRSf8npAhe4R4urxv66whj5d9OruvZBSGVBSMSbibrzaAvAQudE0OcGEYZxpbpVhdpFLsFYD23dmfohd3vmCqD8-RLREsXLcIlvG3Ab68GsJrdA01st6WRz2CTS7J-I5iPxJxIOIx9kGPttxha-qtzgD3nz1-YUpDCIfE8s62uwBiHz7it8qvI8MiNCJMFeiQEyzEPn27yrn3NbQSpk14WuF6rcM8a_hnFtOwWNqdU3RccnvQmja3UYU-7QuRystztw_lxhzi634VN2Xb28d6pEqQB8Uv39jDujXVCWM5popRn878ScAAP__wbGUHA]
– funnel analysis, retention, user paths, SQL queries, etc.
* Web analytics
[https://email.mg-d0.substack.com/c/eJxUkU2O3CAQhU8Du7YwGHAvWEQa9TUsfgo3igELivT07SNPEimzrk9VX73nLcJe29vEBnB7weFrBhqMEjbKQMHMWmkl5Kw0hWzTse1QoFmEsFn8b8q1ok_j9apXDm6NTsb7fRVc-3hfpFiVYHa902Q444rNTM56UUxPYvJaS2AxMnXnUazzhCg_P3nQZGF5vwU29eE6Wv9z8jXT1LfL9XIx2AbQwzwRz07ED8IfhD_O2vFZ9wsm_PECd7PFHm9MvhPxGJi3XkfzQMTHX_RW4NUPQIRGuLqIDCGNTMTHv0TO4TZfcx4l4XuDYt0B4c_9c7gjeYupli0FM4t55VzSZhxZ2JfntNdcwzja1wN9uFCzTcWcrYbhMdYGZU8FoHWK35sYHdq1deFKzpItjP4y_HcAAAD__5KGkds]
– a simple overview of your visitors, pageviews, and sources
* Session replay
[https://email.mg-d0.substack.com/c/eJxUkcuO3CAQRb8Gdm3xMNCzYBFp1L9hYSjcKDwsKDLTfx95kkiZdR2Vzr3XO4Sj9ZeNHeD2Adm3AjRYLV1UgYLlRhstFdeGQnEpbwdU6A4hbA7_uwqj6dPe76vyXPOo9xBUiFo5GfnOhAcGb1HSZAUTmnGmuFk1M4tcvDEKWIxMv4ko73xBVJ-fIhiysnLcAlvG3Ac6_3PxrdA0tsv1crHYJ9Bsn4jnIPIHEQ8iHmcb-GzHBRPxGDBGavXW4czuReRjYtlGm90Dke9_2VuFj5EBEToR-iIKhDQLke__KjnnvvlWyqwJXxtUt2cIfwTOuefkHaZWtxQsl_wuhKLd7mRlX6LL0UoLM_evBGPuoRWXqj17C9NjbB3qkSpAHxS_TzEH9OvrKrTiiq2M_rLidwAAAP__SsCTLA]
– observe real users, real usage in your web or mobile apps
* Error tracking
[https://email.mg-d0.substack.com/c/eJxUkU2O3CAQhU8Du7b4MdCzYBFp1NewMJTdaAxYRZGZuX3kTiIl6_pU-t57MRDsDb_9hgC3TzhiK8CTtzpsJnHw0llntZHWcSghH8sOFTAQpCXQP1flLH_6dQZjlLMpxc0pGSLEZMOmIUk7x_sbz14JZYUURrrZCjfpKTpnQGybsG9q03c5EZmvL5Ucm0XZb0lMfaydQvyYYis89-VyvVw84QB--CfR2Zn-wdSDqcfZOj3bfsFMPQCx4Y0wxI9cd6Yfg8rS28AITL__YW8VPvsBRIBM2YsokPIoTL__reQc6xJbKaNm-l6ghvWA9FvgHOuRY6Dc6pKTl1relTIc_cpm8RKd9lZaGge-EvSxplZCrv7ElkakrSHUPVcA7Jz-n2J0wOvrrKyRRsyC__TqVwAAAP__xmWTfQ]
– capture, group, assign, and solve errors happening in your app
* Feature flags
[https://email.mg-d0.substack.com/c/eJxUkU2O3CAQhU8Du7b4p3vBItKor2FhKNwoBiwoMjO3jzxJpMy6PlV99V7wCHvrny51gNs7HKEVoNEZ6ZOOFBy3xhqpubEUis_HukOF7hHi6vG_qbCGvtxdSwnAmHoEFbnXPAQffFQPxlUKAWh2ggnDONPcKsPsIpdgrQaWEjMPkeSdL4j640NESxQr-y2yZcxtoA8_l9AKzWO9XC8Xh30CPdwL8RxE_iDiScTzbANfbb9gIp4JPM4Ot3T4fRD5nFjW0WYPQOTbX_RW4X0cgAidCHMRBWKehci3f4mcc1tDK2XWjJ8rVL8dEP_cP-d25OAxt7rm6LjkdyE07W4jin15LnsrLc6jfz0w5hZb8bm6s7c4A6bWoe65AvRB8XsTc0C_tiphNNdMMfrLid8BAAD__6rckrE]
– feature management, instant rollbacks, local evaluation
* Experiments
[https://email.mg-d0.substack.com/c/eJxUkcuO3CAQRb8Gdm3xZnrBItKof8PiUXajGLCgyMz8feROImXWdVT36N7oEfbWv9zWAW4fcMRWgCZnpN90ouC4NdZIzY2lUHw-1h0qdI-QVo__XYU19Omi4PcgOVd3o4xQEAxnm2SG-yQTT0CzE0wYxpnmVhlmF7lEazWwbWPmLjb5xhdE_fkpkiWKlf2W2DJmGOjjzyW2QvNYL9fLxWGfQA_3RDwHkT-IeBDxONvAZ9svmIiHDzeEgbnuRD4mlnW02SMQ-f6Xu1X4GAcgQifCXESBlGch8v1fHecMa2ylzJrxa4XqwwHpT_g5w5Gjx9zqmpPjkr8JoWl3gSj2klz2VlqaR3_ZjxlSKz5Xd_aWZsStdah7rgB9UPw-wxzQr69KGM01U4z-cuJ3AAAA__-ZnJCH]–
multivariate tests, automated statistical significance, JSON payloads
* Surveys
[https://email.mg-d0.substack.com/c/eJxUkUGO3CAQRU8Du7YKMNCzYBFp1NewMBRuFGMsKGambx95kkjJup7qP_0fPOFW28ulhnj7xD3Ugjw6o3zSkaMT1lijtDCWY_F5XzY8sHnCuHj65yqt4U8HGkWCGNQ93XXw6S2qgGsE7xEkzIFnJ0EaEKCFnQ3YSU3BWo2QEpg3mdRdTET660tGy2Yo2y3C1MfayYefU6iF575crpeLozaQ7-5JdHamfjD5YPJx1k7Pul0wk48-2ge-OlOPQWXpdbSATL3_gW4HfvYdibAxaS6iYMyjMPX-t4tzrEuopYwj02vBw687xt_J51j3HDzleiw5OqHEXUrNm1vZDN-G01ZLjWNv3-p9rLEWnw93thpHoFQbHls-EFvn9P8Go2O7vs7SaKFhBv7h5K8AAAD__-X2kQs]
– NPS, free text, and multiple choice surveys
* LLM analytics
[https://email.mg-d0.substack.com/c/eJxUkUuu3CAQRVcDs7b4GOgMGER66m1YfMpuFD4WFHmvdx-5k0jJuI6qTt0bHMLR-svuHeD2CTm0AjRaLd2uIgXLjTZaKq4NheJS3g6o0B1C3Bz-MxVG06c1zhizOicUk84577UGJnau9X0X3jOarGBCM84UN6tmZpFLMEYB23emv4ld3vmCqL6-RDRkZeW4RbaM6Qe68GMJrdA0tsv1crHYJ9Bsn4jnIPI7EQ8iHmcb-GzHBRPxyLncXHX5hSkMIh8Tyzba7AGI_PiD3ip8jgyI0InQF1EgplmI_PibyDn9FlopsyZ8bVCdzxB_3z-nzyk4TK1uKVou-V0IRbv1ZGVvz-VopcWZ-_uBMX1sxaVqz97iDLi3DvVIFaAPiv83MQf0a-sqtOKKrYz-tOJXAAAA__8_QJJk]
- see traces, costs, latency, and more usage of your LLM-powered features
* Customer data platform
[https://email.mg-d0.substack.com/c/eJxUkEGO3CAQRU8Du7agMNCzYBFp1NewMJTdKAYsKDIzt4_cSaTMup7qP73gCffavtzWEG8feISakUdnlN905OikNdYoLY3lmH06lh0LNk8YF0__XcEa_nRinqMUs7d3L6UXG4RVgTWb0YBvMiBPDgQYIYWWdjbCTmoK1moU2ybMG2zqLici_fkJ0bJZ5P0WxdTH2smHn1Oomae-XK6Xi6M2kB_uSXR2pn4weDB4nLXTs-4XzOAR4snUY1Beeh0tIFPvf4FbwY9-IBE2BuYiMsY0MlPv_zqcY11CzXmURF8LFr8eGP-snmM9UvCUallSdFLJO4Dmza1sFi-7aa-5xnG0l3Yfa6zZp-LOVuMItNWGZU8FsXVO3_uPju36OoPRUotZ8F8OfgcAAP__zs2OAQ]
– ingest, transform, and send data between 145+ tools
* Workflows
[https://email.mg-d0.substack.com/c/eJxUkcuO3CAQRb8Gdm3xsKF7wSLSqH_D4lG40RiwoIhn_j5yJ5GSdR3VPbrXW4Sttm8TG8DthN3XDDQYJW1cAgXDtdJKLlxpCtmmfd2gQLMIYbX4z1VoRV_mwaUC-1BaOzkrzRl7SBc9D3fl5nhnNBnBhGKcLVzPiulJTl7rBViMTD1ElHc-IS5fXyJoMrO83QKb-nAdrf-cfM009fVyvVwMtgF0Ny_EoxP5g4gnEc-jdnzV7YKJeJ61fca9np3I58C89jqaByI__mC3AmffAREaEeoiMoQ0MpEff9s4hlt9zXmUhN8rFOt2CL-zj-H25C2mWtYUDJf8LsRCm3FkZm_Haau5hrG3t3wfLtRsUzFHq2F4jLVB2VIBaJ3i_yuMDu36Ogu18IXNjP404lcAAAD__z_rkHU]
– trigger Slack messages, emails, or events based on live user behavior
* Data warehouse
[https://email.mg-d0.substack.com/c/eJxUkUGO3CAQRU8Du7agMOBesIg06mtYGMpuFGMsKNIzt4_cSaTMup5K7_8fPOFW6pdbK-LthXsoGXl0RvlVR45OWmON0tJYjtmnfd7wwOoJ4-zpvytYw5_Ow3Qfgxao8T5F8FJjFAo0hkkvEO88ORBghBRa2tEIO6ghWKtRrKswd1jVJAci_fkJ0bJR5O0WxdD60siHn0Momac2X66Xi6Pake_uSXQ2pn4weDB4nKXRs2wXzOARPfnby1d8lt6QqUenPLfSa0CmPv6ytwNfbUcirAzMRWSMqWemPv5VcvZlDiXnfiT6mvHwy47xj8DZlz0FT6kcc4pOKjkBaF7dwkbxFh22kkvse30naH2JJft0uLOW2AOtpeKxpQOxNk7fp-gN6_V1BKOlFqPgvxz8DgAA__-ziZKs]
– join data from PostHog with external sources like Stripe or Postgres
* PostHog AI
[https://email.mg-d0.substack.com/c/eJxU0M1u3SAQBeCngd21-MdZsKgU-TUsDGNfVAMWDE3y9pVvW6lZn6OZTyd4hKO2L7c3gMcHnKFmoNEZ6XcdKThujTVSc2MpZJ_O9YACzSPE1eN_qbCGPp2ZNZ_3-S3OGqJWAgLnWnkPUqroDdDkBBOGcaa5VYbZSU7BWg1s35l5E7uc-YSoPz9FtESxfDwim_rYOvrwcwo109TX23pbHLYB9HRPxKsT-YOIhYjlqh2f9bjLRCw-EbkMzGuvowUg8v1v_ijw0U9AhEaEuRsZYhqZyPd_M1xjW0PNeZSEXysUv50Q_zy9xnam4DHVsqbouOSzEJo2txHFXrjpqLnGcbaXuo8t1uxTcVercQTca4NypALQOsXv848O7b6qhNFcM8XoLyd-BwAA__-YfY3i]–
your AI product assistant. Answer questions, write SQL, and more
Best of all, all this is free to use
[https://email.mg-d0.substack.com/c/eJxUkU2O3CAQhU8Du7ag-OssWEQa9TUsDGU3igELiszM7aOeJFKyrk_1Pr0XA-HR-qffO-LtHc_YCvLkrQq7SRy9dNZZZaR1HEvI53pgxR4I0xronys4y5_-nnbYpXab1gGciABWCWmF1EaAuQuePQiwQgojnbbCLWqJzhkU-y7sN9jVXS5E5uMDkmNalOOWxDLmNijEH0tsheexvlxfLp76RH76J9E1mPrO4MHgMcdytUHPdrx4Bo-Rjzovph6Tyjra7BGZevvD3Cq-jxOJsDOwL6JgyrMw9fa3jWtua2ylzJrpc8UathPT7-xrbmeOgXKra05eKnkHMLz7jWnx5bgcrbQ0z_4lP-aWWgm5-qu3NCPtrWM9ckXsg9P_K8yB_fVVgzXSCC34Tw-_AgAA__8vLo-C].
We’re 100% self-serve, have generous free tiers for each product, and our
pricing is transparent
[https://email.mg-d0.substack.com/c/eJxUkU2O3CAQhU8Du7b4MeBesIg06mtYGAo3igELisz07SN3EimzLNWnqk_veYew1_aysQHcPuHwNQMNVksXVaBgudFGS8W1oZBdOtYdCjSHEFaH_22F0fRpuXLGxLuKLixaMKNnJe6b8dIxs8yLockKJjTjTHEza2YmOXljFLAYmb6LKBc-IaqvLxEMmVneb4FNfWwdnf85-Zpp6uvlerlYbAPoYZ-IZyfyBxEPIh5n7fis-wVfU0s-lZ3Ix8C89jqaByI__kK3Ap_9AERoROiLyBDSyER-_MviHNvqa86jJHytUNx2QPjz-RzbkbzDVMuaguWSL0Io2uxGZvY2nPaaaxhHe6v3sYWaXSr2bDUMj7E2KHsqAK1T_N7B6NCuq7PQiis2M_rLit8BAAD__79vj08].
Get started with PostHog for free
[https://email.mg-d0.substack.com/c/eJxUkU2O3CAQhU8Du7ag-OssWEQa9TUsDGU3igELiszM7aOeJFKyrk_1Pr0XA-HR-qffO-LtHc_YCvLkrQq7SRy9dNZZZaR1HEvI53pgxR4I0xronys4y5_-nnbYpXab1gGciABWCWmF1EaAuQuePQiwQgojnbbCLWqJzhkU-y7sN9jVXS5E5uMDkmNalOOWxDLmNijEH0tsheexvlxfLp76RH76J9E1mPrO4MHgMcdytUHPdrx4Bo-Rjzovph6Tyjra7BGZevvD3Cq-jxOJsDOwL6JgyrMw9fa3jWtua2ylzJrpc8UathPT7-xrbmeOgXKra05eKnkHMLz7jWnx5bgcrbQ0z_4lP-aWWgm5-qu3NCPtrWM9ckXsg9P_K8yB_fVVgzXSCC34Tw-_AgAA__8vLo-C]
Want to learn more? Check out our docs
[https://email.mg-d0.substack.com/c/eJxUkc1u3SAQhZ8Gdtfix4DvgkWlyK9hYRh8UQ1YMDTJ21dOW6lZz6c5n87xDuGo7dPGBvB4h9PXDDRYLV1UgYLlRhstFdeGQnbp3A4o0BxC2Bz-dxVG05d10Qu3cGkMfy5KOwZhdk_N465nrzzQZAUTmnGmuJk1M5OcvDEKWIxMP0WUC58Q1ceHCIbMLB-PwKY-9o7O_5x8zTT17Xa9XSy2AfS0L8SrE_mDiJWI9aodX_W4YSLWUH0nch2Yt15H80Dk21_iUeC9n4AIjQh9ExlCGpnIt39FXGPffM15lISfGxS3nxD-xF5jP5N3mGrZUrBc8kUIRZvdycy-9Kaj5hrG2b68-9hDzS4Ve7UahsdYG5QjFYDWKX4fYHRo99dZaMUVmxn9ZcXvAAAA__8LTI7q]
for more about our products or our handbook
[https://email.mg-d0.substack.com/c/eJxUkcuO3CAQRb8Gdm3xMNC9YBFp1L9h8SjcaAxYUGRm_j7yJJGSdR3VPbo3OIS99S-bOsDtA47QCtBotXRJRQqWG220VFwbCsXlY9uhQncIcXP4z1UYTV9WSqadjv4OiSvuY0rMPZJO_J4eCYyn2QomNONMcbNqZha5BGMUsJSYfogk73xBVJ-fIhqysrLfIlvG9ANdeF9CKzSP7XK9XCz2CfSwL8RzEPmDiCcRz7MNfLX9gol4vlyNvrV3Ip8Tyzba7AGIfPtD3Sp8jAMQoROhL6JAzLMQ-fa3jHP6LbRSZs34tUF1_oD4O_qc_sjBYW51y9Fyye9CKNqtJyv7Vlz2VlqcR_92H9PHVlyu9uwtzoCpdah7rgB9UPx_hDmgX19XoRVXbGX0pxW_AgAA__8vkpEf]
to learn about our history
[https://email.mg-d0.substack.com/c/eJxUkU2O3CAQhU8Du7b4MdC9YBFp5GtYGAo3GgMWFJnp20fuJFKyrk-l773nHcJe28vGBnD7gsPXDDRYLV1UgYLlRhstFdeGQnbpWHco0BxCWB3-cxVG06fV-sHuzM1CxTnO3OstuvgQxsNdR8E9TVYwoRlniptZMzPJyRujgMXI9ENEeecTovr-FsGQmeX9FtjUx9bR-c_J10xTXy_Xy8ViG0AP-0Q8O5E_iFiIWM7a8Vn3CyZieboStlo_iVg61vYichmY115H80Dkxx_6VuCrH4AIjQh9ERlCGpnIj7-lnGNbfc15lISvFYrbDgi_Fc6xHck7TLWsKVgu-V0IRZvdyMzeqtNecw3jaO8MfWyhZpeKPVsNw2OsDcqeCkDrFP8fY3Ro19dZaMUVmxn9acWvAAAA__-yz5M6],
strategy
[https://email.mg-d0.substack.com/c/eJxUkcGO3CAMQL8GbhMRCJAeOFRa5TciAiZBGyAC05n5-yrbrtSe35P1bDuLsJf6NqECPJ5wupKAeqOEDdJTMKNWWgk5Kk0h2XiuO2SoFsGvFv-hXCt6mM2JmVlnAwDnYZYapJ_cFOZtnu0kBI2GM67YyOSoJ8X0IAantQQWAlM_eBDzOCDK14t7TSaW9odnQ-tbQ-s-B1cSjW29W-8Wg7UDPc2BeDUifhK-EL5cpeFR9lsmfDls9lspn4Qvz-P98AXa46_xgFdsSMTSMa2t9OqAiI9vmOHZTkCESri6jQQ-9kTEx_eVrr6trqTUc8T3CtluJ_g_TVffzugsxpLX6M0oxplzSavZyMS-2oe9pOL7Wb-Wan3zJdmYzVWL7w5DqZD3mAFqo_j_d3qDek-duJKjZBOjvwz_HQAA___A-ZpB],
and how we work
[https://email.mg-d0.substack.com/c/eJxU0UGO3SAMBuDTwO5FxATIW7CoNMo1IgJOHpoAEZjOzO2rTFupXfu39dn2jvAo9cvuFfHxgacvCXmwWrpdBY52NNpoqUZtOCYXz_XAjNURhtXRP1Uwmr-sNAbEPO0ygJQ4g3Gz3E2YhVTT9HxuPFoQoMUo1GgmLcwgB2-MQrHvQj9hl_M4EKnPTwiGTSIdjyCG1rdGzr8PviQe23pbb4ul2pGf9kV0NSZ_MFgYLFdp9CrHHWawvFwOWynvDJZGteTjQegSk0untLbSq0cm3_70PDJ-tBOJsDLQdyJhiD0x-fb3NFffVl9S6jnS14rZbSeG35Crb2f0jmLJawx2lOMMoHi1G5vEN3g4Siqhn_V7k9a3UJKL2V61hO5pLxXzETNibZz-f0lvWO-pE2g1KjEJ_tPCrwAAAP__9kqUgw].
© 2026 PostHog
548 Market Street PMB 72296, San Francisco, CA 94104
Unsubscribe
[https://email.mg-d0.substack.com/c/eJxU0sFymzAQBuCngVsYSVjCPnBwk5LiFjxJaBz7wghpMbIBMZII4KfvOL205539599vVnAHZ22WuDYADxO0Qnfgy5iFvKbShxhHLGIhxSzyoeOqLc_Qg-EOZMndP1MSMb-JoZIYKrSusRDrTSSFoBvJQkY3FUVAqa9igghDGFEcrRiKgjAQUUQB1TViG1KHaxw4R-eZyMhboe78IFFgx8o6Lq6B0J2vbHnveu8SOzOC38aNc4P1wq1HEo8kPUy2BefABIO2rtHn-55HEi6c0r1HEqksr1oov0K8MHH6Cr0XPsGyw4K8Lx-kvaYXjbLLEWfF7yl_2tq0__YpwteaH17UvqO4ep5s2rWNfExZVgiS3463vPhO8mVSp49mSi96zm9XmhVizopj-OtxN4gwU3u1m-QhdVmRzfundMnfUpv2OT6qlKXd6yBIoqrn9_p0wA0_TKp-Cfp2Yqufy_b4eplP7WSo3jXb_bh9S8wFToUsOb1l-IdC88ofxqoUuuvGXrmlhP5-p_zrNIxVqwS_G5RKxjjEa0Kob-LKW6EviuCsOy3H1nxB27GSuuOqjwej5ShcrQ30Z9UDGOu7_z9mtGDuqSvCKKZohfzPmPwJAAD__9f8yx4]
Get the app
[https://substackcdn.com/image/fetch/$s_!IzGP!,w_262,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fgeneric-app-button%402x.png]https://email.mg-d0.substack.com/c/eJxUkcFu5SAMRb8GdokIBOgsWIxUvd-IDJgUNUBEzEz796OXbt5svLlXx8dyAMK99W-XOuL0F4_QCvLojIKkI0e3WGON0ouxHAvkY9uxYgfCuAG9pNIa_uHSmpLRCoSMANGADEGDRxRoQ_Ih8eykkEYsQi92NcLOag7WahQpCfNLJvW2zET660tGy1ZR9imK-Rr-Igifc2iF52t7uj5dHPWB_HAfROfF1G8mH0w-XttMPuA8f-Z0Ues4dYy5YyCmHoPKFqCckPfK1PuzU6B_IuW6M2nuuFXCSky93xun1Bphn_wgapWfw2-hlTJqpu8NK_gD44_VOfyRA1BudcvRLWp5k1Lz7jxbxc2a91ZaHEe_z7qGj61Aru7sLY5AqXWse66I_eL0_3_Ghf1JXaXRixar4H-c_BcAAP__7MybfgStart
writing
[https://substackcdn.com/image/fetch/$s_!LkrL!,w_270,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack.com%2Fimg%2Femail%2Fpublish-button%402x.png]https://email.mg-d0.substack.com/c/eJxskU2O3CAQhU8Du7b4MdC9YBHJ6QvkABaGwoNiwMJF0nP7yD2ZqCPNksfTV1-pvENYa3u3sQFcfsPmawYarJYuqkDBcqONloprQyG7tM0rFGgOIcwOX36F0fTNipsUIORNwU0EzqI3Ol6NBO9HNYZF0GQFE5pxprgZNTODHLwxCliMTN9ElFc-IKrHQwRDRpbXS2DD0ZcDnf85-JppOubT9XSx2DrQzb4h7geR34i4E3F_bZ_PtJa-E3nvmOej9uaByOmzRIQ-8wwh9Uzk9OT-DX0tCAWJnGKtCO0zdnl3aS1ETq5jjWnbIFz-VU65H8-Z358sOS1kZE_usNZcQ9_ah5puRE6GP_aR0b0vs68595LwfYbilg3Cx357X7bkHaZa5hQsl_wqhKLNfs2lR19CzS4Vu7causdYG5Q1FYB2UPz_0v2AdlJHoRVXbGT0lxV_AgAA__-7j7Kx
[https://eotrx.substackcdn.com/open?token=eyJtIjoiPDIwMjYwMTA1MTc0NjA3LjMuYzc3NWUwZmYwNjkyZjM4MS50dDV4eDJkN0BtZy1kMC5zdWJzdGFjay5jb20-IiwidSI6NDI2NTE1MDQwLCJyIjoiYkBlbWFpbC5nb21vZHVsci5jb20iLCJkIjoibWctZDAuc3Vic3RhY2suY29tIiwicCI6bnVsbCwidCI6bnVsbCwiYSI6bnVsbCwicyI6MTMxODIyNSwiYyI6ImZyZWUtd2VsY29tZSIsImYiOnRydWUsInBvc2l0aW9uIjoiYm90dG9tIiwiaWF0IjoxNzY3NjM1MTY3LCJleHAiOjE3NzAyMjcxNjcsImlzcyI6InB1Yi0wIiwic3ViIjoiZW8ifQ.yOAOT1yOvRDALfQBXkw5JQ33HZ1kNKRLT9-XSwew7KA][https://email.mg-d0.substack.com/o/eJxU0EtuwyAUheHVhFmsy9sesBaLx8VFNRDxaJPdV86gasdH-vTreDvwqO1lYkO8f-Ppa0YSjOI2ykDQUK204pIqTTDbdO4HFmx2YNjt-LMyrciHcYxS2LiOlCnronCeo97oKphfN8BAkmHAFFCQVAsFeuGL11oixAhqY5GvdBlDPp8s6JuAfNwDLH26Pqz_XHzNJPX9ar1azGgTyWO63decZ0njtWOx7sTwO53J25Fq2VMwlNOVMUmacTcBb2I5aq5hnu1t9-lCzTYV82g1TD9ibViOVBBbJ-P_SbNju1TBlKQSBJAvw34CAAD__38Qba4]
View Email
Welcome to Product for Engineers 💪 🦔
productforengineers@substack.com1/5/2026
Substack