Julian Ozen Julian Ozen

Credit cards vs mortgages

Credit card debt and mortgages are two very different types of debt. What makes credit card debt so insidious is that it is often accrued accidentally and grows incredibly quickly. Mortgages, however, are carefully planned, relatively cheap, and allow one to build equity sooner rather than later. A mortgage lets you live in a house today that might take 30 years to afford, if ever, while also benefiting from the asset’s gains. Good debt pulls forward value today that would otherwise take time to acquire.

Some tech debt is like credit card debt. These are systems so brittle and severe that they begin to degrade the quality and availability of the user experience. Code that makes it impossible for organizations to move quickly. We’ve all seen this kind of debt: it slows down every project and creates endless hours of work just to keep things stable. This type of tech debt is extremely expensive, both in terms of financial cost and human capital.

But other tech debt should be thought of as mortgages. This is code that hasn’t been touched in ages but still hums along reliably. A feature written five years ago that still does exactly what it’s supposed to do, even if it doesn’t follow the company’s latest design and engineering paradigms. The final modules needed to complete a migration. The last few bad dependencies. I believe this code should be left alone for as long as possible.

Choosing to leave this kind of code untouched does increase tech debt, but you are incurring it in a controlled and rational manner. Doing so allows your organization to focus on more important things. In this way, you are using tech debt to pull forward value today, like a mortgage. Good engineers can see through the noise and distinguish between the two.

Read More
Julian Ozen Julian Ozen

On bad code…

I spent many years working at Airbnb and Amazon and have friends all over the valley in places like Facebook and Google. One thing that shocked me—both from my own experience and from conversations with friends—is that all of these companies have a lot of bad code, even within critical systems. These codebases suffer from broken design patterns, missing tests, years-long migrations in progress, and scattered TODOs and FIXMEs. The entire industry is held together by duct tape and glue. If Google and Airbnb both have bad code, then where does good code exist?

1) Companies that succeed focus on solving business problems rather than fixing code that doesn’t fundamentally impact customers.

2) Real businesses are complex and don’t fit neatly into good design patterns. Every major refactor and rearchitecture I saw at Airbnb started with solid design principles but became messy once they encountered real-world challenges.

Great engineers deliver good results despite bad code. They take the time to deeply understand their tech stack, identify brittle areas, and develop strategies to improve it over the long term. But they are also able to tie those issues back to specific company goals. The making this fix will speed up development, reduce mistakes, and ultimately save the business time and money. An engineer must make the case to their business partners that their proposals are valuable.

Read More
Julian Ozen Julian Ozen

Lightbulbs to TVs

What would it mean for AI to grow at a rate similar to that of the light bulb? In short, we don’t know.

Some of electricity’s early use cases were quite obvious. We can create light everywhere and replace candles. We no longer need to worry about bulbs, wicks, and oil to create additional lights. Then one can imagine a medium-order effect. What if an entire building had simple electric-based lighting? What if a whole city powered electricity to lights in every home? One can even envision Times Square as an incredible growth from the simple lightbulb becoming an entire ecosystem of smaller light bulbs.

But there are other things that are simply not possible to predict. One could never imagine so many lightbulbs packed together so tightly and operating so precisely to produce dynamic images like we see commonplace on 4K LED TVs today. One could never imagine gates opening and closing shrinking so small to be a fraction of the size of a single hair, producing what we today call a microprocessor.

In the same way, it is easy today to see certain tasks humans do being replaced by machines. If someone has a job that involves taking PDFs they receive and inputting that information into a database via a CRM, it is not hard to imagine this can be done fairly trivially with AI now or soon. But what would happen if we saw a curve in AI that grows as rapidly and as exponentially as we see with a lightbulb to a TV?

Read More