From Engineer #1 at Warp to Founding Flint: Michelle Lim on Early-Stage Startup Engineering

Open on YouTube ↗
Overview

Michelle Lim joined Warp, the terminal company, as its first engineer. At the time the company had two people, a set of design mocks, and no code. She had offers from fast-growing Series A startups and a return offer from Robinhood. She is now the founder of Flint, a startup building what she calls "autonomous websites," and she is hiring founding engineers herself. In this conversation on The Pragmatic Engineer podcast, she explains why she took the riskier path, how she negotiated equity, why she asked her future CEO for references, and why she thinks the best way to excel as a founding engineer is to take the work nobody else wants.

28 min read

From almost-doctor to debugging enthusiast

Lim came to programming late. In college she joined an entrepreneurship club while working on a bio company. Each week she noticed that the club's teams making the most progress were the ones with programmers. She concluded that if she wanted to move faster as an entrepreneur, she should be able to build things herself. She took her first computer science class in the spring of her freshman year and then switched her major to computer science.

Her favorite part turned out to be debugging, which she ties to an earlier plan. Growing up in Singapore, she almost became a medical doctor, the expected path for someone good at the sciences. What drew her to medicine was differential diagnosis: tracing a swollen left leg to a problem in the right lung, or tracing a particular visual symptom to a specific part of the brain. In her computer science assignments she found the same satisfaction. Bugs followed patterns, and she could trace them back to specific lines of code or systems. She describes feeling "almost like I was a doctor for the computer."

Internships: São Paulo, Facebook University, and a receipt-splitting app

Her first internship came through a university program that placed students at tech companies. She worked at a healthcare company in São Paulo, Brazil, where a very senior developer taught her much of her early software engineering. She encourages students to contact their careers office, since such programs can help with a first placement.

She got to Facebook through Facebook University, a program for students who are underrepresented and new to computer science. It began with a two-week boot camp in which participants built an app every day. This was before AI coding tools, so she was writing Android apps in Java by hand. After the boot camp, interns were grouped into pods and had to ship a fully working app by the end of the internship. That was where she first learned Git, collaborated with other developers, and learned to read large codebases.

Her team built a receipt-splitting app. It used OCR to read receipts and Bluetooth to find nearby friends. Users dragged friends' avatars onto receipt line items: if there were three broccolis and one person ate two, that person's avatar was dragged onto the item twice, and the bill split accordingly. Receipt splitting was a personal pain point for her. Building the app forced the team deep into Google's open-source OCR libraries and a Bluetooth protocol they found online. The team won recognition as one of the best apps in the program and met Mark Zuckerberg in his office.

Slack: product ownership and a CEO who answered feature requests

Lim joined Slack as an intern through the Kleiner Perkins fellowship, which places students at the VC firm's portfolio companies for a summer. Slack had about 1,200 people then, and nobody she knew was using it. It felt like a startup to her, though she acknowledges it would not be called one in retrospect. The host added that Slack still behaves more like a startup than many companies.

What stood out was how much product ownership everyone had and how the team used the product they were building every day. When she wanted a faster way to react with emojis, she designed a "frequently used emoji" feature herself and posted it in a feature-request channel. Stewart Butterfield replied that they should do it. She also proposed scheduling messages so she wouldn't have to wait until the right moment to send one. Butterfield rejected that as unnatural and said Slack would never do it. She found the culture energizing because the CEO was so engaged with the product. The host noted that accessible founders make a big difference between companies. Lim said that as a founder she now makes a point of being generous with her time for her team.

Robinhood: finding her sweet spot on the news tab

She found Robinhood through a tech fair, and it was there that she says she found what she loves in software engineering. Robinhood's app had three tabs then: the main portfolio/trade tab, a settings and notifications tab, and a news tab in between. She was one of five or six people on the news tab and was responsible for deciding which news appeared in each user's feed. The host pointed out that this was a feature used by millions of people making decisions based on it. She was 19 or 20.

The technical side involved Robinhood's version of Kafka for data pipelines. The team had to parse video and news feeds from partners such as Bloomberg, tag the items, and combine those tags with what each user was invested in to decide what was relevant. They also had to handle sparse feeds and avoid biasing the feed in ways that would corrupt the machine-learning ranking. If ranking were too prescriptive, she explained, the model would only receive biased data about which items were most interesting.

What made the work satisfying was that she was using interesting computer science concepts and also deciding product requirements at the same time. She had to weigh what users wanted, what was feasible given the business partners and tech stack, and what latency constraints allowed. She says this activated "all parts of my brain," and it convinced her that software engineering was where she wanted to be.

Shrinking companies, growing ownership

Asked whether she loved software engineering or startups, Lim said both. She points to a pattern across her internships: Facebook at about 12,000 people, Slack at about 1,200, Robinhood at about 300. Each time the company shrank by roughly an order of magnitude, she felt much more ownership, and the line from her work to user impact became clearer. After those three steps, she says, the obvious next move was joining a two-person company and then starting her own.

Warp before it had a name or any code

When Lim joined Warp, there was no code. The first hire had been a designer, and the company had polished mocks. It was also called Denver at the time, a placeholder while founder Zach Lloyd thought about names. Lim recalls pointing out that "Denver terminal" was a poor choice for SEO; she says she already had strong growth intuition then.

She describes the key mock this way: the terminal input was anchored at the bottom of the window, the cursor was a blinking line instead of a rectangle, and inputs and outputs were grouped into "blocks" separated by lines. A second mock showed collaboration, with different avatars on terminal blocks so several people could look at the same terminal, which she compared to Google Docs or Figma. A third idea was sharing environment variables and presets across teams. Lim noted that people often end up sending environment variables through Slack, which is a bad practice. The host summarized the vision as taking a tool that had existed forever and innovating on it, all before the AI wave.

Why she chose the riskier offer

Everyone wanted engineers then, and Lim had options. She had not planned to join a company as small as Warp. Her search had focused on Series A teams of 15 to 20 people, and some of her offers were from companies that already had $10 million in ARR and were growing fast. The appeal of such a "rocket ship," she said, is that there is always more work than people, and therefore more opportunity.

But after talking with Zach, she kept thinking about the product every day and how to improve it. Two experiences had convinced her that improving the terminal mattered. The first was business impact. In summer 2018, Slack had multiple outages as it began onboarding enterprise clients like IBM and Disney. Code that worked for selling to startups, such as double-nested loops, broke at that scale. Many internal tools ran through CLIs, commands were shared over Slack, and there was an ops rotation. She saw that better terminal tooling could have a real effect.

The second was accessibility. As someone who had only recently learned computer science, she saw the terminal as a big barrier for students. Computer science is already intimidating, she said, and it is even worse to find that the mouse doesn't work when you try to move the cursor within a command. If you could click to move the cursor instead of memorizing Ctrl-A and Emacs shortcuts, coding could become more accessible. The combination of revenue potential and social impact was compelling to her. She could always find a job at a $10 million ARR company, but it was rare to catch the window when an interesting company was just starting and be its first engineer.

The third factor was learning. Zach had been a principal engineer at Google and a former CTO at Time magazine. Some of her friends were doing master's degrees to become better engineers; she saw the chance to go through "Zach University" instead. He reviewed all her tech docs and pull requests, and she says she became a strong engineer very quickly. Her gut agreed. The night before deciding between the fast-growing company and Warp, her stomach was upset, which she attributes to the dissonance between what she was about to do and what she really wanted.

Negotiating equity: trading cash for ownership

Lim says negotiating equity is extremely important. She pushed hard for as much equity as possible and was willing to give up cash. Warp presented its offer as a spreadsheet with three options, each with higher salary and lower equity. She liked the format so much that Flint now uses it, with credit to Zach for letting her reuse it. Flint's version calculates what the equity is worth in compensation terms, accounts for tax and dilution at each stage, and includes a calculator for the expected value of the stock across different outcomes and their likelihoods.

She chose the option with the most equity and asked to go very low on cash. Her method, which she admits could be seen as a bad negotiation strategy, was to tell Zach she really wanted to work with him, that she would sign, and that she would appreciate using a different number. Conventional advice says this gives away your leverage, since competing offers are the usual way to raise an offer. Lim's view is that at a company with one or two people, it means a lot to the founder that you are fully committed, and the founder wants you to be happy with the deal.

The host agreed that most online negotiation advice is written for negotiating with faceless corporations, where the hiring manager or HR person doesn't own the outcome. At a tiny startup, the founders care personally, and good founders often won't make offers to people who don't believe in what they're building.

Asking the founder for references

Companies usually ask candidates for references. Lim reversed this. She pulled up the email she sent Zach and read it: she was happy to send her own references, and she also wanted to learn what he was like as a manager. She asked for references from people he had managed, especially when they were junior engineers.

Her reasoning is that people leave managers, not companies, and at a startup you can't switch teams or managers the way a friend at Google might. You are "married to that manager," so you need to learn as much as you can beforehand. Engineers have leverage because good ones are in demand, she says, but it is hard to judge from the outside what working at an AI startup will be like.

As a more junior engineer, her main concern was whether the company would promote and mentor young people. She has seen friends who were among a company's first ten employees get replaced by executives once the company succeeded, never promoted beyond entry level despite the youth and energy they had invested. So she asked references about opportunities for junior people, career conversations, promotions, and what things were like during hard times. Zach, she says, exceeded every test. She spoke to two engineers who had worked for him as new grads or interns and quickly became directors of engineering on Google Sheets. She later saw the same pattern at Warp, where new grads became tech leads and ran critical project streams.

She added that even if you aren't using the references to evaluate the founder, you can use them for advice on how to work well with that person, such as insisting on weekly one-on-ones or asking for feedback in a particular way. Framed that way, she says, asking doesn't hurt.

What she looks for in reference checks as a founder

Lim calls reference checks the most important part of any interview process, sometimes more important than the onsite. At Flint she always does them. Her key question is whether the reference would want to work with the candidate again. She isn't looking for "yes"; she's looking for "hell yes," the kind of answer that asks why she is even asking and how she managed to attract that person. Lukewarm answers like "they could be great" or "they're very strong" fail her test. A one-day work trial is a good approximation, she says, but it is not the same as working with someone over time.

Warp's stack: from TypeScript to Rust

Warp's first codebase was TypeScript. Two to three months in, the team scrapped the repository and rebuilt everything in Rust. Lim gives two reasons: performance and speed of development. TypeScript code was fast to write, but the team then spent many cycles stress-testing it against performance constraints. In one test she drew a thousand rectangles in the JavaScript app and scrolling broke. Terminals must render large volumes of output quickly, so that was a serious problem.

There was also a market reason. Lim says developers strongly preferred high-performance terminals built at a low level. Even if two apps were identical, the one written in Rust would spread better and be loved more. The Rust community was small then but growing fast and very passionate, so building in Rust also mattered for marketing.

When the team switched, Zach sent everyone the O'Reilly Rust book: Lim, the other founding engineer, and himself. They read it daily, and each time they learned something new they rewrote earlier code, for example removing the many unwrap calls. They also worked with Nathan Sobo, creator of the Atom editor who later started Zed. He had extensive Rust experience and pair-programmed with Lim every day. She credits him with teaching her idiomatic Rust and many small ergonomic habits that made a big difference in using the IDE.

Product-first versus code-first engineers

Years before "product engineer" became a common term, Lim wrote about splitting engineers into product-first and code-first. Product-first engineers are motivated by user problems and treat technology as a means to user impact. Code-first engineers are excited by the code itself: performance, the best libraries, elegance. They tend to fit infrastructure work. She thinks this split describes engineers' mental models much better than front end versus back end.

Her internships illustrated the mismatch. In one front-end role she was given mocks to implement and couldn't solve user problems. Thinking back-end work might suit her better, she was placed on infrastructure in another internship and spent two weeks migrating from Amazon Athena to Presto, writing SQL and migrating database roles. It was closer to the metal, but she couldn't see how it solved any user problem, and it made her wonder whether she wanted to be a software engineer at all. Only after she pushed to join Robinhood's news team did she find that she loved solving user problems. Front end or back end didn't matter as long as she was answering the user's question: what news do I see, and how does it look?

How to spot a product-first engineer

The host noted that many startups now hire specifically for product engineers. Lim named several signals. One is whether the candidate worked at a product-first company, such as a user-facing SaaS tool like Figma, Notion, or Slack, since those companies select for product thinking. Another is how candidates describe past work. Some dwell on the technology: the task was hard for various reasons, they tried one library and it failed. Others lead with the business problem. Her example: the company was leaking $700,000 a year to Amazon, so it moved to its own self-hosted open-source Presto, and here is what happened to the business.

At Warp, the interview process included a product round. Candidates were asked what they would change about the terminal or about an app they already use. The best candidates had an opinion on how to improve the product, could explain it from the user's perspective, and could break the work into user-visible milestones. Given a hundred tasks, they would group and sequence them so users saw a difference at each milestone, instead of spending 60% of the time on performance or latency work users wouldn't notice until a front end was added.

The host suggested that engineers without this product bent may fit better in infrastructure, or at companies where product managers handle those decisions. Lim agreed that such roles are important, especially at scale, where performance, memory, and infrastructure choices matter a great deal. But early startups rarely face that kind of scale and need people who can plug every hole in the company.

Founding engineer and product engineer are different axes

Lim sees "founding" and "product" as separate dimensions. You can be a founding product engineer, a founding infrastructure engineer, a later-stage product engineer, and so on. Definitions vary, but hers is that a founding engineer is roughly one of the first five people to join within the first few months. A product engineer is excited about solving user problems and is full stack enough to do so, whether through front end, back end, end-to-end work, AI, or infrastructure, using whatever tools fit.

She adds a caveat for job seekers. Many startups now use "product engineer" as a synonym for front-end-only engineering, since nobody uses the term "front-end engineer" anymore. She advises reading job descriptions closely, because not every "product engineer" posting means what she means.

Pair programming and AI coding at Flint

Asked whether AI tools will reduce pair programming, Lim said that everyone is now pair programming with an AI, and having a bot to talk to gives everyone a daily rubber duck, which makes everyone better. She also sees the return to office creating more chances to sit next to colleagues and learn how they use their tools. Warp was remote-first, and during its first two years, in the 2020 era, she says she never met Zach in person.

At Flint, using AI to code is "almost a requirement" because it makes people more productive. The tool she always reaches for is Claude Code. The team runs Claude Code inside the IDE, Cursor in their case, and one engineer who works only in Vim uses Claude Code from Vim.

Avoiding getting burned when founders exit

The host raised a worry now common among engineers at AI startups: that a founder gets acqui-hired by a larger company and is the only one who benefits financially, leaving the team behind. Lim says she hears this from many friends. One told her that because of these founder hires, she would join OpenAI instead because it was safe.

Lim's answer is to understand the founder's character. Reference checks help show whether the founder is generous and cares about their team. Another signal is whether the founder was once a founding engineer. That experience, she argues, builds empathy you can't get otherwise: living through the day with no code, the first code, the days without users, and the first user. From that position, she says, she can't imagine not offering secondaries, tender offers, and opportunities to the people who trusted her with their careers.

The host suggested asking directly in interviews: if the founders take secondaries in a new round, will employees get the same chance? If there's an acquisition, will the team come along? The answers aren't binding, but asking gives you a data point. Lim agreed that candidates have the leverage to ask now. She added that the content of the answer matters less than whether the founder has clearly thought about it before. When she asked Zach about early employees, his answer was obviously the product of years of thinking. A less thoughtful founder might give a good-sounding answer that was clearly made up on the spot.

Hiring world-class engineers

On the founder side, Lim says attracting top engineers in Silicon Valley comes down to two things. First, showing that you care deeply about the team, that you value them, and that there is enough trust for them to believe you will do whatever it takes to make sure they have a good experience. Second, having a big vision for how the company will change the world, so that joining is a chance to do exactly that.

Flint: websites that run themselves

Flint is building websites that are agentic and build themselves. Lim's example: if a competitor launches overnight, your website will already have generated a comparison page, optimized it for conversions, and will keep tracking product differences daily and updating the page. She says work that would take five agencies three months happens overnight. Flint also plans to automate the surrounding marketing workflows. For example, it could connect to sales calls, including Gong recordings, to identify selling angles or solution pages the company is missing.

She describes this as bringing autonomy to the web: a website not only generated by AI and for AI, but becoming AI itself, more dynamic and proactive. Her co-founder ran teams at Nuro, an autonomous-vehicle company, and they compare autonomous websites to autonomous vehicles. A perception system takes in data, a decision-making system decides what to do based on competitors or sales calls, and a control system implements the pages. The loop then repeats based on how the page performs in its environment, the market. Five agencies were needed before, she argues, because the tools and specialties were separate and information had to be passed between them. Putting perception, decision, and control in one entity closes the feedback loop so the website continuously optimizes itself for the business.

She outlined a roadmap. Phase one is responding to the market using real-time data streams. The next phase is real-time morphing of pages depending on the visitor. If a healthcare executive arrives, the page could emphasize healthcare case studies and compliance requirements, and could even generate a tailored sales demo on the spot instead of making the visitor click "contact sales" and wait a week for a Zoom call. If the visitor is an AI agent, the site could respond in the formats agents prefer, such as MCP, tool calls, APIs, Markdown, or JSON, rather than HTML. Lim says Flint is building a new agent-to-agent protocol for how agents interact with the web. She also described an "agentic web" in which, instead of finding links through Google, agents talk to each other to establish which agents are more credible and quickly work to close a deal for a customer.

One problem she calls almost research-level is generating on-brand landing pages. It might seem like choosing a background color and typography is enough, but she says brand matters a lot now. A SaaS company wouldn't show a generic AI-generated page to a Fortune 500 prospect it is trying to close. Flint says it can produce pages that match a customer's brand down to the pixel, as if the customer had built them. She cited work with Cognition on its events pages and on comparison pages between Windsurf and Cursor, which she says are being cited by LLMs.

Advice for aspiring founding engineers

For engineers who want to join an AI startup as a founding engineer, Lim's first tip is to show you've built with AI before. The skill is in high demand and relatively few people have shipped an AI product, so spending some weekends building one, anything that uses model completion APIs to scratch your own itch, already sets you apart.

To excel once you're in, start by choosing the right founder, then volunteer for work nobody wants that matters most to the business. At Warp, she took what she says most engineers would consider the worst job: being the company's face on Hacker News. She wrote blog posts, published them there, and answered every question. She created the company's Twitter account and wrote its tweets, started a YouTube channel before most developer-tool companies thought of it, started a Discord, filed user feedback, and set up the GitHub presence. She stresses that engineering must remain the main job, and you should only take on extra work if you're already doing well at it.

The payoff was twofold. First, she learned what businesses need, which helped her come up with ideas beyond developer tools. Second, responsibility compounded. After a board meeting, Zach told her that since she had hired all the people in growth, he wanted her to be head of growth and manage the team. She was about 22 and suddenly reporting to the board every quarter on numbers and revenue. She says the key is to do each of these tasks exceptionally well, so the founder knows that anything handed to her will be done excellently.

Eventually she led enterprise sales at Warp. The company had started receiving security questionnaires from companies using the product, and the task had been passed around like a hot potato for several quarters until it landed with her. She reframed it: this wasn't a security problem but an enterprise sales opportunity. A questionnaire could be the start of a conversation in which, for an enterprise contract, Warp would fill out questionnaires and provide SOC 2 reports, compliance controls, and an admin panel. The host observed that juggling so many responsibilities is also preparation for being a founder. Lim agreed that the job of a founder or manager is to take the things nobody wants to do so everyone else can stay in their "zone of genius."

Rapid fire: Rust and a horror movie

Her favorite programming language is Rust. She enjoys the satisfaction of getting code past the borrow checker precisely because it's hard. Flint, however, is a TypeScript shop, since it helps to build websites in the language websites are built with. When the host predicted Rust would find its way in eventually, she replied, "We'll see."

Her movie recommendation was Weapons. It looks like a horror film but has many comedic moments. She liked its nonlinear structure: the story concerns children who ran out of their homes at 2 a.m. and disappeared for a month. Each chapter shows a different character's perspective, which changes how you see the story and nearly changes the genre each time. As a horror fan, she also noticed that each chapter's character fits a different horror-movie trope. The host, not a horror fan, said the film was memorable and still gives them shivers.

In the closing remarks, the host highlighted Lim's willingness to take on unattractive work, which the host connected to her work on marketing websites at Warp and the expertise behind Flint. The host also noted her view that generative engine optimization, meaning LLMs recommending websites, may soon matter more than traditional search engine optimization, and suggested that being a strong founder likely requires understanding parts of the business well beyond software engineering.