AI Engineer Europe 2026
Taste & Craft: A Conversation with Tuomas Artman, CTO of Linear, and Gergely Orosz of The Pragmatic Engineer
Read the talk
Taste and Craft When Shipping Becomes Easy
Linear’s Tuomas Artman and Gergely Orosz explore how faster implementation changes product judgment, bug repair, and the engineering habits that make software feel good.
From a talk by Tuomas Artman and Gergely Orosz
When every request can become a feature
A customer requests a feature. An agent can implement it immediately. Should you ship it? For Tuomas Artman, that decision is where AI-assisted development can go wrong: the ability to fulfill every request makes it easier to accumulate functionality until the product becomes confusing. He hopes teams will recognize that danger over the following six to twelve months. Recalling Steve Jobs’s advice, he describes good product development as refusing 999 possibilities to pursue one. Cheaper implementation makes restraint more consequential. Engineering difficulty used to impose a pause in which teams decided whether an idea deserved to exist.
Gergely Orosz challenges the premise: feature factories existed before AI. Their shared experience at Uber supplies the comparison. Competing with Lyft in what Artman describes as a winner-takes-all market meant shipping aggressively, keeping infrastructure alive, scaling, and trying almost everything. He does not want to repeat that hypergrowth experience. AI creates a similar pressure through a different mechanism: a small team, or even one capable person, can reproduce a competitor’s feature set. When functionality becomes easier to match, Artman sees tasteful, high-quality software as a way to retain an advantage.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Finding the problem behind the request
Orosz makes the challenge concrete with Claude Code and Opus 4.5: if engineers can ship faster, what should Linear ask them to do? Artman’s answer preserves deliberate feature selection. Linear still considers each feature’s place in the user experience and rejects many requests. The work before implementation has not disappeared; much of it was always about understanding what customers actually need.
Linear usually does not ship a request exactly as submitted. Its process moves from a proposed feature to the underlying problem:
- Talk with customers about what they are trying to accomplish.
- Group requests that arise from a common cause.
- Design a solution that addresses that group of needs.
- Work out the user experience around the chosen functionality.
AI can summarize the incoming requests and suggest groupings. That helps organize the evidence, but deciding which problem to solve and how the result should work still takes time.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Accelerating work with a clear target
Bug repair is one place where Linear is already moving faster. Artman describes bug inflow as effectively constant, while the work needed to repair defects has become easier. Artman reports that 10% of bugs submitted by Linear engineers or customers receive a single-shot AI fix, a pull request, and automatic landing without engineer intervention. The conversation does not specify the measurement window or validation criteria.
He predicts that automated repair could approach 100% over the next few years. That is a forecast, not the current result. The useful division of labor is already visible: delegate tasks with a well-understood desired behavior and little need for fresh product or design judgment, while preserving attention for decisions about what the product should do.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The visible cost of shipping pressure
Claude Code becomes a counterexample when the conversation turns from implementation speed to product quality. Artman attributes to Anthropic the claim that Claude wrote all of Claude Code’s functionality. His own criticism concerns the experience of using its CLI and desktop application: he says bugs become noticeable quickly, some interactions feel slow, and behavior can be difficult to understand. These are his observations of the tools at the time of the conversation.
Artman connects those rough edges to competition with OpenAI and the possibility of another winner-takes-all market. The pressure to release more functionality can crowd out the work that makes existing functionality dependable and comprehensible. An agent’s ability to produce code does not itself determine the quality bar applied before that code reaches users.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
What Uber’s metrics could not settle
How do you measure the quality that shipping pressure threatens? Artman recalls five major metrics at Uber. Between them, he and Orosz name revenue, trips taken, ride quality, and time from signup to a first trip; they do not reconstruct the entire set. Revenue dominated the incentives. Measuring the quality of a ride also did not settle whether the application itself was pleasant to use.
Pooled rides illustrate the gap. Artman is unsure whether Uber or Lyft introduced pooling first, but his argument does not depend on that order. A less expensive ride can attract demand and increase revenue even if the surrounding experience is rough. When no other platform offers an equally inexpensive option, customers have a reason to tolerate those rough edges. Engineers may care deeply about polish, yet the business metric rewards the new capability without isolating the value of its execution.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
From a misplaced ETA marker to gradual user loss
Artman remembers that care being explicit when he joined Uber around 2012. In an early pull request, he changed the map margins around a central pole showing the car’s estimated arrival time. An early iOS engineer reviewed the change and measured the pole’s position. Artman recalls being told it was two pixels off, then moving it up one pixel. The lasting lesson was the attention: another engineer was willing to inspect and defend a detail that most users would never consciously notice.
As the team grew and revenue incentives took precedence, shipping more features became the stronger organizing force. Artman’s theory is that quality becomes commercially visible once competitors offer similar functionality at similar prices. A customer trying the alternative may find it more comfortable or feel that a car arrives faster, even when the underlying service is equivalent.
Those comparisons may happen only occasionally. Users can drift away over time, making the effect difficult to capture in a single A/B test of a quality improvement. Artman explicitly revises the image of a competitor leapfrogging a product: the danger is being slowly overtaken. That delayed feedback is part of his rationale for investing in Linear’s quality before a revenue metric demands it.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Making small imperfections visible
Linear’s Quality Wednesdays make that investment a recurring engineering practice. Orosz describes joining a remote show-and-tell planned for 30 minutes: roughly 25 engineers presented fixes in about 37 minutes, with each presentation under two minutes. The changes ranged from a one-pixel adjustment to improvements in backend efficiency.
Artman traces the practice to an offsite roughly three or four years earlier and a small interaction rule engineers kept overlooking. Artman specifies an instantaneous hover highlight followed by a 150-millisecond fade-out when the pointer leaves. The entry makes the interface feel responsive; the exit makes it feel smooth. This asymmetry can be expressed directly in CSS:
css
.action {
background-color: transparent;
transition: background-color 150ms;
}
.action:hover {
background-color: rgb(128 128 128 / 18%);
transition-duration: 0ms;
}
On pointer entry, the hover state removes the transition delay between the two colors. On exit, the base rule restores the fade. The colors are incidental; the directional timing is the behavior Artman wants engineers to notice.
Repeated reminders were not teaching that attention reliably. At the offsite, Artman brought the team together to inspect a small view-options menu for an hour, expecting them to find missing highlights. Artman says the inspection uncovered about 35 problems in that single menu. The exercise exposed details he had not seen himself and suggested that the rest of the application contained many more opportunities. At the time of the talk, Artman estimates that Linear had fixed 2,500–3,000 small quality details.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The improvement must be yours to find
The essential rule is that each engineer must discover a problem rather than receive an assigned one. Initially, finding improvements was easy. As obvious imperfections disappeared, discovery became harder, but the weekly obligation kept people looking. While building an unrelated feature, an engineer would notice something worth bringing to the next Wednesday meeting.
That changes the practice from a cleanup ritual into training. Artman says engineers who continually look for small quality problems also introduce fewer of them in new work. The discovery requirement builds the attention that prevents regressions. Orosz recommends trying the practice at a small startup; Artman responds that larger startups have even more reason to adopt it.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Zero bugs means immediate ownership
Linear’s zero-bugs policy addresses reported defects through a separate process. It does not mean that software never has bugs or that every report is repaired instantly:
- An agent immediately assigns the report to the likely creator of the defect or someone familiar with the affected area.
- The assigned bug becomes that engineer’s highest priority. It is the first work to pick up from My Issues.
- The engineer fixes it or explicitly decides against a fix when the cost is disproportionate to the impact.
Artman’s example of the last case is a difficult defect affecting only one in 100,000 users. The commitment is to prompt ownership and a decision, rather than indefinite storage in a backlog.
His reasoning starts with a steady inflow of defects from ongoing development. A team postpones repair until the product feels bad enough—perhaps, in his illustrative scenario, when 500 bugs have accumulated. It then has to repair bugs at the incoming rate just to stop the backlog growing. Delaying the work by months has not removed that continuing workload. If a team intends to keep up eventually, clearing the existing backlog creates the opportunity to do the same repair work promptly.
Artman reports that Linear paused new functionality for approximately three weeks to clear its bug backlog. He reports subsequent bug fixes within seven days, usually in two or three hours, subject to the policy’s explicit option to decline a fix. The customer experience changes with that turnaround: someone reports a problem, receives an email a couple of hours later, and can refresh the browser to get the correction.
An assigned bug does not count as a Quality Wednesday contribution. It is a defect to resolve; Wednesday still requires an independently discovered improvement. The distinction preserves both habits: respond to known failures and actively look for ways the product could feel better. With AI helping locate and repair defects, Artman argues that more companies should adopt the zero-bug approach.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Correct behavior can still feel wrong
Orosz pushes back on the division between AI and quality. Agents can write unit tests and operate feedback loops; should those abilities not produce better code, features, and interfaces? Artman distinguishes those capabilities from taste: judging whether an interface serves its particular purpose and understanding how a person feels while using it. He considers that a remaining limitation of current agents, while leaving open whether future systems will overcome it.
His concrete example is time. An agent inspecting screenshots or the DOM sees what he describes as a timeless representation of an interaction. It can retrieve advice about hosting a Next application on Vercel or using caching, and it can recognize that one second is numerically shorter than two. But, in Artman’s account, that is different from experiencing the frustration of waiting two seconds after a click and judging whether the delay is acceptable in context.
Animation exposes the same distinction. Artman describes an experiment that Linear design engineer Emil had shared on X the previous day: agents implemented pop-ups, button highlights, and moving elements, then Emil manually refined the results. The functionality was present in both versions. What changed was the feeling of the motion—an easing choice, a duration that was too long or too short, or an entrance that did not feel natural. To Artman, those refinements demonstrate why implementing the requested effect and choosing the right effect remain different skills.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Testing product ownership through work
Linear tries to hire people who already want to build beautiful, high-quality software. Its synchronization engine and infrastructure create substantial technical challenges, but most engineers focus on product functionality and customer needs. The hiring process is designed to observe that orientation in practice.
Artman describes a paid, full-week work trial for every employee, usually centered on a greenfield project, product, or feature. Some trial work ships at the end of the week. The evaluation is broader than implementation: can the candidate determine what is needed and drive the work from beginning to end?
Orosz raises the cost to candidates who cannot or will not take a week away from their existing work. Artman accepts that exclusion and interprets unwillingness to participate as a lack of desire to join. Asked how the results compare with Uber’s conventional five- or six-interview process, he reports very few hiring misses at Linear. Looking back at those misses, he says the team sometimes had reservations but hired anyway. The trial reveals more working behavior, while imposing a substantial participation requirement.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Giving engineers access to customer reality
Once engineers join, customer context is readily available:
- Open customer channels: Slack channels with Linear’s large customers are accessible to employees, who can read requests and problems directly.
- Recorded conversations: Customer meetings across customer experience, support, and product management are recorded.
- Searchable detail: Interesting moments are tagged so an engineer can search for a feature and hear what customers said about it.
These practices expose engineers to the evidence behind a request, rather than only the resulting task.
That access matters more as Linear’s customers diverge from its own team. The product began as something its engineers built for themselves. It now serves large corporations and enterprises with needs a smaller company does not share. Internal usage alone cannot reveal those requirements; engineers have to learn from the people who actually have them.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
The conditional shift toward product engineering
Asked how the engineering role might change over the next year, Artman stretches the horizon: he looks back over four years of AI progress and imagines another four ahead. His prediction depends on capabilities continuing to improve rapidly without hitting a wall, which he acknowledges is uncertain. Under that condition, he expects less demand for engineers whose contribution is merely moving data from one place to another, and continued demand for people who understand customer needs, recognize a good feature, and judge a good user experience.
He describes engineers becoming more like small-scale product managers: talking with customers, deciding what functionality matters, and implementing it. Orosz points out the expanding job description. Programmers went from one language to several, then absorbed QA and DevOps responsibilities; now product and customer support seem to be joining the list. Artman jokes that the other work has dropped away, leaving the product work. The exchange captures the tension in the forecast: automation can reduce implementation effort while increasing the importance of owning the outcome.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Learning from the first outside user
You do not need a product-engineer title to begin developing that judgment. Artman’s closing advice is to move closer to customers in your current company, or build something yourself. Start with a need you understand personally, implement a solution, and release it. The first outside users create the next learning opportunity: their experience tells you whether you solved the right problem, not just whether you successfully built the feature.
For a foundation in interface design, he recommends Apple’s Human Interface Guidelines. Reading established guidance complements the practical loop of making something, putting it in front of people, and learning what they need. Faster implementation makes that loop more accessible; the judgment develops through paying attention to what happens after someone uses the result.
Suggest correction
This note stays in this page until you copy or download it. Nothing is submitted; reloading clears the draft.
Resources
From the talk
Apple's interface-design guidance, recommended by Artman for developing UX judgment.
Further reading
- Quality WednesdaysArticle
Artman's account of building a weekly habit of finding and fixing small product imperfections.
Linear's approach to clearing its bug backlog, setting repair deadlines, and explicitly declining marginal fixes.
Interactive animation comparisons that exercise judgment about easing, movement, and entrance effects.
Read the complete timestamped transcript
- 0:00
[upbeat music] Awesome.
- 0:16
So we didn't see it, but hands up if you do use Linear. And hands up if you've heard of Linear. And hands up if you wanna use Linear.
- 0:25
Awesome. Great to see. So we're-- we could be talking about Linear, but we're gonna be talking about something a bit bigger, which is a bit of a new trend that, with Tuomas, we were talking about.
- 0:36
Things are trending the wrong way right now. What is trending the wrong way?
- 0:42
The-- So what happens when, when agents, um, are capable of doing everything, um, immediately, uh, for you? Uh, the, the fact that might be that, like, the pendulum has swung too far into the, into the wrong direction, where if you get a feature request, you might now be in the position to just immediately ship it, and that
- 1:04
might be the wrong thing to do. Um, and I, I reckon that, you know, hopefully half a year from now or a year from now, we'll understand that, like, shipping things, uh, without really too much thinking is, um, is a bad thing.
- 1:16
Um, what will happen is, is that, um, you-- because you have this, this enormous power of effectively just, like, shipping every single request that comes in or every single thing, thing that pops into your head, uh, you will effectively ship, you know, a, a software that, that is not great.
- 1:31
Um, Steve Jobs back in the day said that, you know, great products come out of saying no, um, to, you know, nine hundred and ninety-nine things and yes to one thing.
- 1:38
And with AI, um, we might be in a place where, um, it's just too easy to say yes and, and try things out and ship it and get to a very convoluted place where, you know, software actually doesn't work for the end customer, um, nicely anymore, or that the user experience get con- gets, gets confusing.
- 1:53
We used to previously have, um, this, you know, uh, this thing that gated us from, from doing this, which was, like, the actual engineering used to be hard. So we used to think about these, these features and these, these, you know, um, the, the applications, uh, that we wanted to build before we actually started engineering, because engineering
- 2:10
was such a time-- you know, waste of time, and it, it took a long time to ship something. So, um, yeah. That-
- 2:16
But, but I wanna challenge you a little bit on, on that. Did we not see this happen before, before AI, that some companies w-were already just, like, shipping, putting on a bunch of features and stacking?
- 2:26
And what are you seeing different right now? Are you actually-- Are we actually seeing more companies, you know, do more of this like, I don't know, like, feature factory-ing thing?
- 2:36
We had a, you know, common experience at Uber where, where we worked together, where we, you know, we, we went through hypergrowth. Um, and the thing about Uber was that it was a winner-takes-it-all market, and Uber was going against Lyft back in the day in the, in the US.
- 2:48
And, um, you just had to ship immensely, um, and, and, and, you know, just outpace, you know, the competition, um, at out-- at all costs. Um, and what I saw at Uber, like, was, was that hypergrowth that I never want to go through again, which was, like, um, at all costs, you know, just fighting fires, keeping the
- 3:04
infrastructure running, scaling as quickly as possible, trying out everything and, and, you know, trying to come out, you know, as a winner, um, in, in, in that front. And I, I see the analogy to, to AI nowadays, because when everybody has the capability of shipping, you know, tons of functionalities, like you, you always are in a competition
- 3:22
with somebody else. Like, your competition might be, you know, a small team or even one person that, you know, is very capable of using AI to, to, to ship and, um, you know, build a product that is, you know, has the same feature set as, as, as you do.
- 3:35
Um, and in that world, like I, I think it becomes important to sort of, you know, stand out, um, in a way where, like, you build tasteful software and where you build high-quality software, um, and thus sort of, you know, maintain some sort of, you know, competitive ad-advantage, um, uh, towards your, your, your, uh, competition.
- 3:52
So at, at Linear, even before AI came out, you were building tasteful software and, and, and focusing on those things. But then these tools came out, and they became more powerful, specifically since Claude Code came out.
- 4:04
Now we have Opus 4.5. You should be able to ship faster. You're engineering team. You're a CTO. Your engineering team should be able to ship a lot faster. What are you telling them?
- 4:15
Or like what should they be doing inside of Linear with this capability? Should they be slowing down? No. Right? What's going on inside of Linear? Tell us.
- 4:25
Well, yes and no. Like we still-
- 4:26
Yes and no.
- 4:26
You know, we, we still think about, um, every single feature that we put out. Like we, we don't, we don't go down the route of, of just trying out prototypes.
- 4:34
We want to sort of maintain that design angle that we have and, and, you know, think about the user experience, still say no to a lot of, um, customer requests.
- 4:42
Like a lot of time, you know, hasn't gone into really just engineering. Um, it's, it's about figuring out like what the customer wants. Uh, we do get a ton of, you know, feature requests.
- 4:52
We usually never ship them as such. Like what we really wanna do, um, is, uh, get a lot of feedback from our customers, talk to our customers, figure out what their actual problem is, and then sort of group that together and figure out like, you know, what, what is actually the root cause of, of, you know, these
- 5:06
feature requests, and then come up with a solution that is, um, that, that is perfect for that, you know, particular group of feature requests. Um, and that takes time.
- 5:15
Like AI can help you, you know, so much. Obviously, it can sort of, you know, go through all of those requests and give you a summary and maybe sort of point you to sort of, you know, different groupings.
- 5:25
Um, but it, it still takes time to figure out what the right thing is. Um, and then you go into design and, and, and figure out like, you know, how, how do you implement a great UX around, uh, the functioning that you want to, want to build.
- 5:38
Yes, we want to move faster, and we are moving faster. Um, there are certain aspects of, uh, of, you know, building a product that has, you know, accelerated a lot.
- 5:45
Um, one is, for example, fixing bugs. Um, every feature, uh, every, every product has bugs and, you know, the inflows of bugs is effectively constant. And, um, those are much easier to fix now.
- 5:56
Like I, I-- you know, ten percent of our bugs are automatically fixed by, you know, a single shot AI instance. Like when a bug comes in, into Linear, um, be it from sort of, you know, our engineers, uh, reporting those or a customer reporting a problem- 10% are automatically, you know, up with the PR and automatically landed
- 6:14
without an engineer doing anything. Um, over time, that will go up. Like, and I do foresee a future where, like, it gets closer to 100%, um, in the next few years.
- 6:23
Um, so that's something where you can accelerate your, your building. Like, hand off, you know, these tasks that don't really require much thinking or, you know, design expertise or thinking about functionality, hand that off to agents.
- 6:36
You care about quality, and you, you can tell at Linear and, and you have al- always had. Let's talk about Claude Code.
- 6:44
What do you think about Claude Code? And you can, you can... It, it, it, it's a safe space [laughs]
- 6:51
. [laughs]
- 6:51
Yeah, hopefully it's a safe space. Um, Anthropic said, you know, that all of the functionality has been, has been, in Claude Code, has been coded by Claude. Um, and I think it, it shows.
- 7:02
Like, if you- [laughs] ... if, if you truly use, you know, Claude Code, either the CLI or, or then the desktop application, um, you can spot problems and, you know, small sort of, you know,
- 7:14
small bugs, I, I would say. There's, there's not really, you know, just quality fixes, but there were actually bugs, um, in, in effectively a, a, a few seconds. Um, it is, uh, a bit, you know, slow.
- 7:25
It might be, you know, functioning in a way that you, you, you don't, you don't really, really see. And to, to me, that's sort of a, um, a, a side effect of moving so fast.
- 7:33
Like, obviously they, they... Again, they're in a competition with, you know, OpenAI and, um, they need to ship features, and they need to sort of move, move really quickly, uh, 'cause it might be a winner takes it all market again.
- 7:43
Um, and, uh, it, it, the, the side effect of that is that the quality just, you know, isn't there.
- 7:49
Yeah, well, this was not a great acquisition pitch, so I, I don't think [laughs] you're, you're, you're going to get there. But, uh, I absolutely... Like, you, you can see some of these things, but how do you measure quality?
- 8:03
And we've talked about this before, uh, just be- just before we started, on Uber, how we tried to measure quality and, and how that's influenced you to learn what you can measure about it and what you cannot.
- 8:16
Uber is a good example of, like, where i- it is immensely hard to measure quality, and therefore you sort of don't. Um, Uber as an example, like, we had, you know, these five big metrics, um, that everybody was looking, looking after and looking, looking to im- im- improve.
- 8:31
Um, the big one was revenue. Like, um, it is effectively a transactional, you know, application. Um, the more revenue you generate, the, the, the better. So-
- 8:39
And the other ones were, like, trips taken-
- 8:41
Trips taken
- 8:42
... trip, trip taken. Uh-
- 8:44
I think the quality of the ride was, was one as well.
- 8:47
And also time to first trip from, from sign up to the first time that-
- 8:50
Right. So-
- 8:50
... people did. So, so we had a few golden metrics.
- 8:52
Right, but the, the revenue one was what everybody, everybody looked after. So when you shipped a new feature, um, or shipped, you know, something totally new, like, you know, Uber Pool, for example.
- 9:01
Um, I don't know which one came first, Lyft Pool or Uber Pool. I think Uber started it, and then Lyft came around. But, um, obviously if you ship a new feature that sort of, you know, makes the price, you know, of a, of taking a trip lower, it will increase your revenue.
- 9:14
So how do you measure quality in that? Like, you, you, you simply don't. Um, if, if there's no other way of, you know... If, if, if there's no other platform that provides you with, uh, with, with a pooled ride that is inexpensive, then, uh, you, you don't really need to have quality.
- 9:29
Um, and that was, you know, my, my feeling throughout, like, at, at Uber. Like, we, we had engineers that, that cared, at least in the beginning, we had engineers that cared about quality.
- 9:36
Like, it was up to us to figure out, like, whether something we shipped was, was great or not. I, I still remember when I joined in 2012, I think, um, I put up a first PR.
- 9:47
And back, back then, the Uber application used to have this, this pole in the middle of, of the screen that used to have an ETA of, like, when, when your trip is, you know, is, is, is, is going to arrive.
- 9:57
And I made some changes to the margins of the, of, of the map. Um, and the PR came back from a, from an OG engineer who was, you know, was on the team for, from, from the get-go.
- 10:05
I think he was the first iOS engineer. Um, and he, he was like, "Oh, this, this pole is off by two pixels." And I was like, "You, you measured it?"
- 10:12
"Oh, yeah. Sure. I, I measured it." And I was like, "I measured it again," and, you know, yes, two pixels off, so I had to move it up by one pixel.
- 10:19
And that was the... Like, nobody would, would really care. Nobody would see it. But, like, people were keen on upholding the quality, and that's why, at least in the beginning, the Uber application was, was pretty performant, was, was of highest quality.
- 10:32
Um, but then, like, once you have a big enough team and you've got these, um, incentives of just increasing revenue, um, you ship new features as, as quickly as possible.
- 10:42
And, and quality is a thing that, like, it, it doesn't affect your revenue until it does. [laughs] So what happens, Uber ships Uber Pool, Lyft comes ahead and ships Uber- uh, you know, Lyft Pool as well.
- 10:53
So you've got two competing products that effectively have the same price point to test the same thing. Um, you can choose either one of the applications. And over time, like, my theory, and, and that's why we, we, you know, want to build Linear into this high-quality tool, uh, is that over time people will, will pick the one
- 11:11
that is of higher quality. Um, it might take a while, like, people might be, you know, sticking to Uber and then trying out Lyft, you know, once a year or something.
- 11:19
Like, opening it up and being like, "Oh, this user experience actually feels better. I, I, I feel like I'm getting the car faster." Um, even though the price and the product that they sell is, is the same.
- 11:29
So over time you will start losing your users. Um, and it will be a gradual, you know, slip. There, there will be no A/B test that you can do in order to figure out, like, whether you should invest in quality.
- 11:41
Um, it'll just happen over time, and that's, that's the danger of it. Um, if you, if you build a bad quality product, you open up yourselves, uh, to, uh, sort of be leapfrogged by, by a competition.
- 11:52
Um, well, not leapfrogged, like, slowly overtaken by the competition.
- 11:56
You do something really unique at Linear related to this that I've never seen before. It's called Quality Wednesdays, and I sat into one of your Quality Wednesdays. The whole engineering team gets together.
- 12:07
It's a formal team, so everyone just dials in, and it was 30 minutes, and every engineer, I think we had about 25 engineers on that call, would show one fix that they did was quality.
- 12:18
And it went from, like, one pixel ... change. It was literally a one pixel to, uh, oh, I just made our, our, uh, our back end, like, way more efficient and, and using less things, and it was just boom, boom, boom, boom, boom.
- 12:31
Uh, and I think it took, like, 37 minutes for the 25 people, but it was less than two minutes. How did this start, and was this you?
- 12:40
It was me. Yeah, for sure. Um, the,
- 12:44
the big one was like... I mean, to go back, like, I think it was three, four years ago. Um, we have this thing in the application, like if, if you use it, um, you can, you can, you can spot it.
- 12:53
Like, every single highlight needs to highlight instantaneously when you hover over it, because that, you know, makes the application feel fast, but when you hover out, there needs to be this very quick fade out, um, of, of a button, 'cause that makes the application feel smooth.
- 13:05
Like, it has to be this like, you know, instantaneous highlight and then over 150 milliseconds, you know, fade out because that adds a bit of quality, um, to, to the user interaction.
- 13:14
And, um, that was in place since, you know, the beginning, like the, the, the early days. Um, and then I got sort of frustrated because I had to sort of point this out to, to engineers, 'cause if you're not looking for that very small minute detail, you're just not gonna find it.
- 13:27
Like, you implement new functionality and, um, you just forget to, uh, you know, implement it, or you don't even see it if you're not-- if you don't know what you're looking out for.
- 13:36
So what I did as at one of our offsites, because I got frustrated of reporting this, I was like, "Let me show everybody like, you know, what, what, what they should be doing, um, and, and how they should be im-implementing these, these, you know, small quality, quality fixes."
- 13:48
Um, and what I took is a very small portion of the application, and it was like, you know, where, where I noticed that, you know, the highlights were missing and, and, you know, I brought the team together and, uh, I told them, "Let's, you know, spend a-an hour trying to figure out what's wrong with this particular view."
- 14:04
And in my mind it was just the highlights. And everybody dug in, um, and what we found in-- It was one of the view option menus. Uh, we found, like, 35 problems with, with that tiny UI.
- 14:17
Um, and I was, "Holy, holy, holy crap." Um, like I, I didn't see those. Um, I, I had no idea that we had all these small problems that, like, you wouldn't notice when you're, when you're not really looking.
- 14:28
Um, so from that, you know, what, what I, what I thought we, we would, you know, want to do is, like, have everybody always chime in and, and, and try to find problems in the product.
- 14:37
'Cause apparently we were full of, you know, small quality, quality problems. If a, you know, small menu has 35 things to fix, then the rest of the application has, you know, thousands.
- 14:47
And to date, we've probably f-fixed, um, 2,500 or 3,000, um, of these small minute details, uh, in the application. Um, and, and that's how it, you know, uh, has become better, um, and, um, and, and has the highest, highest quality bar.
- 15:02
Um, that was, you know, that was the, the start of it. But then we realized, um, there's, there's a nice side effect to this. And what we, what we told people is that you have to, every Wednesday you have to find a problem yourself.
- 15:14
Like, we won't hand them to you. Like, you have to go in, into the product and find it. So people started doing that every single week, finding a problem, and it used to be, um...
- 15:23
In the beginning it was, it was easy, then it became harder because, you know, the quality fixes went down. But, um, you know, people kept on finding, finding problems in, in, in the product.
- 15:32
Um, and the, the side effect of that was that everybody was al- whenever they were building something, a totally unrelated feature, they was-- they were always on the lookout for these small quality fixes 'cause they knew they had to come to the next Wednesday meeting with a fix.
- 15:44
That's a good way to fix then, yeah.
- 15:46
Yeah. So they're always looking, looking for those, and that meant that they were introducing less and less regressions or at least, you know, small quality, quality regressions into the product anyway.
- 15:55
So if you, if you think about quality all the time and if you are aware, um, of, of quality, you know, things then, uh, you're, you're bound to make less mistakes.
- 16:05
I mean, this practice is-- I haven't seen it elsewhere, and it seems both awesome, also pretty aspirational. So I mean, if you're a small startup, like you should probably try it out if you can, 'cause especially now-nowadays with, with agents, like, like it shouldn't be that difficult to do and, and you might get-
- 16:19
If you're a big startup, you should even, even more try it out.
- 16:22
There, there we go. But one thing that is, is not as aspirational and a lot easier to do, especially now that you have been doing even before agents, zero bug policy.
- 16:31
Tell me about this. What does zero bug policy mean for you, and what has it been in practice? Like you have bugs surely, right? I'm just playing devil's advocate here.
- 16:39
Sure. Um, we-- Zero bug policy literally means that if a bug gets reported, um, it gets assigned to somebody automatically, immediately using agents, obviously. Like they will find who has created this bug or who has, you know, been working in this area.
- 16:54
And, um, that becomes your highest priority. You drop everything else. Um, the morning you wake up, you go to My Issues list and you see a bug assigned to you.
- 17:01
That's the first thing you pick up and you fix it. Or you can also decide not to fix it. Like that's important. Like not every bug gets fixed. If it's, you know, super hard or gnarly and it, you know, applies to one out of, you know, 100,000 users, um, you know, you probably shouldn't waste your time on
- 17:15
it. Um, but every single bug gets fixed immediately. And the, the, the, the start of this, um, came from, from the idea that like bugs are, are, are created at a constant rate at every company.
- 17:28
When you create features, when you, when you create functionality, when you engineer, um, you will be creating bugs. And most of the companies, and we prior to our zero bug policy, like we, um, put them in a backlog.
- 17:39
We're like, "Uh, you know, when it gets-- When we get some time, like we'll, we'll fix them." And, uh, what happens over time is like your product gets worse and worse, and at some point you're like, like, "Oh man, we've got, you know, 500 bugs in the backlog.
- 17:50
Like we need to do something about it." And that's when you start fixing from the top.
- 17:55
And what happens is that, um, the rate at which you have to fix bugs is a-again, constant. It doesn't matter whether you fix them, you know, two months from now or immediately.
- 18:05
Like once you hit that threshold of we've got so many bugs, you're now effectively fixing all the bugs that come in, um, except two months later. So with that small notion in mind, like there's, there-there's a very small trade-off that you have to do in order to get to zero bugs.
- 18:20
If the rate that you have to fix bugs is constant, all you need to do is stop, you know, development of new features for as long as it takes you to, you know, bring your bugs to zero and then enforce that you're gonna keep on, you know, fixing your bugs.
- 18:33
'Cause it's not- ... more effort to fix bugs immediately than to fix them three months from now if you care about the, you know, overall, uh, sum of, of, of your, of your problems.
- 18:43
So to us, that meant, um, we spent effectively three weeks of, of not working on any, any new functionality, of just fixing bugs, getting that down to zero. Um, and from there on out, every bug gets fixed, um, within seven days, usually, you know, in two hours or three hours.
- 18:59
Um, and what that means to users, like users get super excited when they report a bug and two hours later they get an email saying, "Oh, we fixed it.
- 19:06
If you refresh your browser, um, we've, we've got it covered for you." Um, that makes you, like that makes your user super happy 'cause, you know, you don't really have that experience too often with, with companies.
- 19:16
Okay. Curve ball question. If I'm working at Linear and there's a Quality Wednesday coming up and I get assigned a bug, does that count?
- 19:22
No. That does not count. [laughs] That's, that's a defect. Um, you have to find a quality fix.
- 19:27
Oh, man.
- 19:27
Bug, bugs are separate. They, they are immediately, immediately created. And now with, you know, AI being capable of at least pointing you where that problem is and helping you immensely, uh, fix bugs, I think like literally every company, um, should have a zero bug policy.
- 19:41
It, it doesn't make sense to not have one.
- 19:43
S- One thing that, you know, when, when we talk about A and think about AI agents, we think about speed, code generation. We rarely use quality and AI agents in the same sentence.
- 19:53
Why is that? With the tools getting better, should AI agents not be better to have feedback loops? You know, they can write unit tests. Like should they not be able to produce better code, better features, better UIs even?
- 20:07
Um, no. They, they don't feel. They, they have no taste. Um, they, they simply don't. Um, they are not human beings. I think the last bastion that, you know, we'll have to tackle at some point, and maybe we'll get there, maybe we won't, is, um, you know, have, you know, tasteful AI.
- 20:24
Mm-hmm.
- 20:24
Being able to create UI that is, you know, purpose-built for, you know, that specific feature you're building for, the product that you're building is, you know, has great design, um, and has the ability to figure out like what, what, what a user feels when they use your application.
- 20:39
To give you an example, um, AI doesn't have a concept of time, and currently how it sort of interacts with your browser is, um, effectively timeless. Um, they take screenshots or they look at the DOM, and if you ask it to create a very, you know, high-performance application, like yeah, it can go back, you know, at, and
- 20:56
look at all the, all the things that have been written about like, you know, go to Vercel to host your Next app or, you know, use caching or, or whatever.
- 21:03
But it won't be able to use your application and get frustrated because, you know, a, a click took two seconds. Um, it knows that one second is better than two seconds, but it n- it doesn't know whether two seconds is, is, is slow enough.
- 21:15
Um, the other aspect that goes into it is, um, it, it doesn't really see, um, and it doesn't know what, uh, for example, a good use, um, an animation is.
- 21:23
Um, Emil, one of our, um, uh, design engineers, um, just yesterday posted, um, on, on, on X, um, where he, you know, did this trial of, you know, having agents build certain animations for, you know, um, certain functionality like, you know, bringing up a pop-up or highlighting a button or moving things around.
- 21:41
And, um, he- agents were totally capable of doing all of this. And then he took a manual step and was like, "Well, if I now take it and just improve it and make it feel good, um, here's the outcome."
- 21:52
And he has it up on his side where he can sort of, you know, try out what the agent did and what he then, he then fixed and at least to me, and I hope everybody else, um, like his animations just feel natural.
- 22:04
They, they feel, they feel like they're like well, well designed whereby the, the agent did all the right things but, you know, had an ease in as an anim- animation or, or, you know, did it a bit too slowly or too quickly.
- 22:16
Um, and it just felt, you know, unnatural.
- 22:21
I wanted to talk a little bit about the culture at Linear. One, it's like working there, like how you created this team that really cares about quality, good customer experience.
- 22:31
What are, what, what are things that you do specifically there? Can, can we talk about it on, on what eng- what engineers are exposed to who, who, who join the company from day one?
- 22:41
Yeah. We, we hire for, for that, uh, specifically and we have a, you know, specific hiring process where we make sure that we get people that think like-minded or think, think like us and want to build high quality software that is beautiful.
- 22:54
Um, most of our engineers are product engineers. They're, they're-- Like we obviously do have technical challenges. We have, um, you know, a synchronization engine. We have, you know, scale.
- 23:03
We need to scale our infrastructure. But what we wanted to do is have most of our engineers just be, you know, focusing on the product and build features, you know, and, and functionality for customers, and engage with the customers at a very high level.
- 23:16
Um, so first of all, we, we, we hire for that. Um, we have a work trial that we do with every single employee that, that, you know-
- 23:24
It's like several days, right?
- 23:25
It's a full week.
- 23:26
It's a full week.
- 23:27
So we, we obviously pay for that effort, but we work with a, with a person for a full week. They usually implement a greenfield, you know, pro- project or product or feature.
- 23:35
Um, sometimes they even ship it after that week, which is, which is pretty amazing. Um, but what we want to get out of that experience is just to see them drive, you know, a, a product from, from start to finish, figure out what is needed.
- 23:47
So a, a pushback here would be like, hang on, a whole week. Uh, you pay for it, sure, but someone had to take time off of it. A bunch of great people will say, "No, I, I either cannot or will not do that."
- 23:58
Well, that's totally fine. Like those people didn't want to be here in the first place, so...
- 24:04
It's, it's, it's a tough swim but after you go through this pretty rigorous hiring process, it's a lot longer than I think any other process. I mean, you know, you have a day-long process at, at most places or, or they're stacked-
- 24:16
Mm-hmm
- 24:16
... across. Did you see any different result than, for example, when you hired at Uber? When you were hiring at Uber you, you did the usual, you know, like five interviews, six interviews, and so on.
- 24:26
What, what's the outcome difference that you're seeing?
- 24:28
Uh, certainly. Um, like we, we've had very few misses. Um, most of the people that we've hired, and I'm sure there always are a few where we, um, where we just mi- miss something and, um, we...
- 24:40
And, and going back into sort of the loops, like we- There's inklings of, like, us being a bit uncertain, and then we went ahead and hired the person anyways.
- 24:48
But those are just, like, a, a, a few handful of, handful of people. Like, I think most of our engineers are, you know, really excellent. Um, and our engineering, you know, bar is, i- is super high and constantly increasing.
- 25:00
And then once those engineers enter, you told me something interesting about the Slack channels and customers. [lips smack]
- 25:05
Right. We do have, um, Slack channels with all of our big customers. It's open to anybody, anybody can jump in. Um, and most people do. Like, you browse through customer requests, you browse through what, you know, what problems people have.
- 25:16
And, um, we, we also record every single meeting that we have with customers, and we have a lot of meetings. Like, not only on the, on the CX side or, um, support, but our PMs have constantly, you know, talk with larger customers to figure out what we should be building next, and all of those are recorded.
- 25:30
Um, and any interesting points are tagged, so anybody can, can go in and then, you know, look at, and even search, uh, for, you know, certain functionality and figure out, like, what are customers saying?
- 25:40
What, what do they want? So everybody gets exposed, um, to customer needs. Uh, and that is super critical if you, if you want great product engineers.
- 25:48
It's almost like if you enter Linear, you get this, like, fire hose of, like, what are customers' feedback, and you, you cannot really escape seeing and feeling, you know, feeling the customer pain or joy or whatever that is.
- 25:59
Certainly, yeah. 'Cause we build it for customers. Like, Linear started off as a product where we build it for ourselves, right? We, as engineers, we're the primary customer. We've grown out of that.
- 26:09
Like, we, we build it for larger corporations and enterprises, and we're now big enterprise, so we have to build things that, you know, we wouldn't use ourselves. And the only way to do that is to, you know, talk with your customers and figure out what they need.
- 26:23
If you had to look, uh, a year ahead, you, you, you sometimes have strong opinions, so, like, let- let's bring those out. A year ahead, how do you think the role of the software engineer or product engineer will change?
- 26:34
'Cause we do have these powerful tools. They- they're getting better in certain areas, and maybe not so much better in others.
- 26:41
I think everybody will become a product engineer, um, in, in, in some sense.
- 26:45
If you, if you think about how AI has progressed, um, go back, like, four years, it wasn't able to write a single line of code, and now it's commandeering code bases.
- 26:53
Um, go four years ahead, and if you, if you still believe that it's, that the exponential growth is still there and we don't hit a wall, um, which I, I don't know if it will, but, um, if it, if it keeps on going, growing like this, like, you, you, you won't be needing engineers that sort of type
- 27:09
data from one place to another. You still will be needing engineers who know what a customer wants and what a good feature looks like or what a good user experience looks like.
- 27:19
Um, so I think, you know, engineers will have to move to become product-oriented and product-focused. They will have to be sort of mini PMs who sort of talk with customers, are engaging in that layer, um, a- and then can, you know, implement functionality, um, that your customers want.
- 27:34
Oh, man. So, like, you know, I remember, like, the, to 2000, the two, the 2000s w- we, as a, as a programmer, you could use one language, then it was, like, multiple languages.
- 27:43
Then the QA job, you got the QA job, then you got DevOps. [laughs] Now you're saying we're even the, the product job and the customer support job as well.
- 27:49
Oh, everything else has dropped now. Like- [laughs] ... you just need to do the, you know, the PM job. [laughs]
- 27:54
Okay. Uh, and as closing advice, you are hiring for, for product engineers. You said that you actually hire for that. Now, not every might have the opportunity to work in a role that is a product engineer right now.
- 28:05
But if you're a software engineer, what are things that you can do to grow this product sense to be, to, to change your work to be closer to what a product engineer does?
- 28:15
I mean, it's all about, uh, getting closer to your customers i- if you're working at a company or just building stuff. Like, the best way to learn is to actually, you know, get your hands dirty, try something out, build it for yourself.
- 28:26
That's the easiest part. Um, you can think about, like, what you need. You can, you can build it, and you learn from that experience. Then you ship it to the world.
- 28:33
Hopefully, somebody else uses it as well, and then, you know, you've got, you know, for your first customers that you can get experience from of, you know, whether you're building the right thing, the right thing or not.
- 28:42
Um, obviously, there's literaliz- uh, literal, uh, literature as well. You can, you know, read through, you know, Apple's Human Interface Guidelines. That's the best book, um, if you wanna do sort of good UX.
- 28:52
Um, just follow what they say, and you'll be good. Um, and, uh, yeah, those are, those are two big things.
- 28:57
Awesome. Well, Tuomas, thank you so much.
- 28:59
Thank you. [audience applauds] [upbeat electronic music]