







Think of a tech company as a giant, dimly-lit factory. Work goes on throughout the factory as components shuffle back and forth, and finished products get…
You have to know how to drive the car
There are lots of different ways to be a software engineer. You can grind out code for twelve hours a day to make the world a better place. You can focus on glue work: process-based work that makes everyone around you more successful. You can join the conversation with your product manager and designer colleagues to influence what gets built, not just how it gets built. You can climb the ladder to staff engineer and above, or you can take it easy and focus on your hobbies. But whichever of these you choose, you have to know how tech companies work.

The Future of Software Engineering Isn’t What You Think
Over the past two decades, I’ve watched software eat the world, then hardware catch up, then Generative AI reshape both at the same time…
Programming (with AI agents) as theory building
Back in 1985, computer scientist Peter Naur wrote “Programming as Theory Building”. According to Naur - and I agree with him - the core output of software engineers is not the program itself, but the theory of how the program works. In other words, the knowledge inside the engineer’s mind is the primary artifact of engineering work, and the actual software is merely a by-product of that.

You have to beat the models at something
In 2025, I wrote that software engineers ought to be assessed by “value over replacement”: not how much money they made for their company, but how much they…
Large tech companies don't need heroes
Large tech companies operate via systems. What that means is that the main outcomes - up to and including the overall success or failure of the company - are driven by a complex network of processes and incentives. These systems are outside the control of any particular person. Like the parts of a large codebase, they have accumulated and co-evolved over time, instead of being designed from scratch.

Laws of Software Engineering
A collection of principles and patterns that shape software systems, teams, and decisions.

What It's Actually Like to Build a Tech Company in Canada | Tyler Bryden
The honest version of building in Canada — the funding gap, talent reality, what's genuinely good, and what I'd tell someone starting here today.
How Generative and Agentic AI Shift Concern from Technical Debt to Cognitive Debt
The term technical debt is often used to refer to the accumulation of design or implementation choices that later make the software harder and more costly to understand, modify, or extend over time...

Coding After Coders: The End of Computer Programming as We Know It
In the era of A.I. agents, many Silicon Valley programmers are now barely programming. Instead, what they’re doing is deeply, deeply weird.

Conway's Law | Laws of Software Engineering
Organizations design systems that mirror their own communication structure.

Software Acceleration and Desynchronization
A look at the ever-present drive to make software delivery faster and how it might break down various activity loops in organizations.

Why AI hasn’t replaced software engineers, and won’t
Arvind Narayanan and Sayash Kappor take on the question of AI job losses through the lens of a profession that is uniquely suited to AI disruption - software engineering. In …
AI Is Quietly Changing Who Gets to Build Software
What If Universities No Longer Need Edtech Companies?

Building tech in the world’s secret R&D hub
Zurich has created a technology ecosystem nearing the density of Silicon Valley.

The New Software Lifecycle
I co-wrote a Google whitepaper about how AI is changing the software lifecycle. I'm not going to summarize the whole thing. Instead, here are the handful of ...
