I lived in the library during college.
“The more textbook theory I studied, the better an engineer I would become,” I thought.
Yet when I started working, I noticed that the best engineers in the industry didn’t necessarily know more theory than new grads. They just brought a different mindset, the investor’s mindset, to work.
It was this mindset that helped them ask smarter questions, prioritize better, and set themselves apart. Like an investor they:
- focused on work that paid off sooner than later
- calculated if the work was worth their time or not before diving into it
- weighed the opportunity costs of their work
In this article, I discuss 3 common problems every engineer will face in their career, and how the investor’s mindset will help you make the right technical decision every time.
1. When will your work payoff?
In investing, there’s a concept called the “time value of money.” This refers to the fact that money now is worth more than money later. You’d rather have an investment pay off one year from now rather than five years from now.
Engineering work has “time value” as well. Engineering projects that payoff now are worth more than engineering projects that payoff later.
We saw this recently with Facebook stock. It dipped by 50% from its all-time highs when executives revealed their Metaverse investments might not pay off for as long as “15 years later.”
Meta invested over $10B into it already too.
Just as how the long payoff period of the metaverse spooked investors, engineers should avoid work that pays off too far into the future. This mistake happens particularly when it comes to engineering migrations.
Why Migrations Are Costlier Than You Think
From an investment standpoint, engineering migrations are a guaranteed upfront cost, for uncertain rewards in the future. And these rewards don’t pay off for longer than most people realize.
Consider the timeline of a two-year migration below.
The cost is guaranteed, but the rewards are not.
First, the two years we spend migrating now are worth more than the two years we benefit from the migration later. So the break-even point for a migration is longer than four years later.
Second, the rewards of any migration must exceed the cost of the work. It doesn’t make sense to spend two years to save two years. You might as well not do the migration at all then.
You should discount the rewards in years 3 and 4 because it is in the future.
I have a rule that any engineering work must have a minimum of 2x of the rewards to justify the cost. If I spend a month migrating, it has to save me two months of time to payoff.
With this rule, if you spend two years on an engineering migration, you must enjoy the benefits for double the migration time to break even.
Thus, the break-even point for a 2-year migration is actually four years later — or six years from the beginning of the migration.
Are you willing to wait 6 years to see the payoff of a 2-year migration?
The longer a migration takes, the greater the risk that it may never pay off. Other risks include:
Changing business priorities— The company might deprecate the team’s service, rendering the migration obsolete.
Exit risks — If a startup gets acquired, these migrations won’t affect the valuation of the startup, and thus delivers zero-business value.
Execution Risks — A single execution mistake (eg a data leak) could nullify all rewards of the migration.
The lesson is that engineering should bias toward projects that payoff sooner than later, or risk never seeing the rewards at all.
2. Is this project worth your time?
Warren Buffett once said that a company’s returns are “far more a function of what business boat you get into than it is of how effectively you row.”
The same principle applies to engineering. Working on the right project (getting in the right boat) is more important than the details of the code you write (how hard you row).
This is particularly important when it comes to buy vs. build decisions in engineering.
Although I admit I get excited by greenfield projects, it’s important to not dive right in and default to “build.” Like an investor doing due diligence, engineering must calculate the costs and benefits before deciding to go either way.
Some questions I ask to decide this include:
- If we purchased a solution, how easy is it to integrate and maintain?
- Is this feature a core competency of the company?
- How expensive is it to build this at all?
With this last question — it’s important to estimate the costs of any “build” proposal to make sure the expected rewards are proportional to the engineering effort. One way to establish a baseline for this is to:
Estimate how many hours a project will take.
Multiply this by your hourly engineering rate.
Use this as a guideline for the cost of a project.
The deeper into the blue or red zone a project is, the more compelling the decision to build or buy respectively.
While cost is not the only consideration, sometimes doing this exercise alone can help engineering decide which path to take.
Example: Buy vs. Build with RecordJoy.com
I came across this decision myself when my business partner and I had the choice to buy a screen-recording website called RecordJoy.com for $12,000 or build it from scratch.
Screenshot of RecordJoy.com when we bought it
We estimated that it would take us two months to build the website ourselves, or 320 engineering hours. Assuming our time was worth $100/hour, it would cost $32k to build ourselves.
The choice to buy RecordJoy then boiled down to whether we’d rather spend $12k to buy RecordJoy now, or $32k building it ourselves. It was cheaper to buy the website than to build it, so we bought the website.
Building RecordJoy from scratch is much more expensive than buying it.
Looking back, this decision was the most important engineering decision that we made while working on RecordJoy. It allowed us to focus our energy on building paid features rather than the product itself.
It also reduced the engineering risk. By buying RecordJoy, we had a guaranteed product we could use immediately vs. a product that we have no guarantees of finishing two months from now.
As for RecordJoy, we grew this company from no revenue to $700 a month in recurring revenue with a few months of work. We sold the company on Microacquire.com in April 2022.
Microacquire sent me a gift congratulating me after I sold my company on their website.
3. Will this project move the company needle the most?
In investing, there’s another concept called “opportunity cost.” Opportunity cost is what you give up when you make a choice.
For example, if I wanted dessert and had the choice between cake and ice cream, the cost of choosing cake isn’t just what you paid. The cost of cake is the foregone opportunity of enjoying the ice cream as well. So with every choice, one door opens and another closes.
Every technical debt cleanup has an opportunity cost too. Cleaning up one system means we can’t cleanup another. So it’s critical to make sure that the cleanup we work on drives the most impact.
I compare managing technical debt to that of cleaning a house. Just as how your house will never be fully clean, it’s impossible to fully eliminate technical debt. However, some rooms in your house are more important to clean than others.
Why clean the garden if the inside of the house isn’t clean?
Why clean the guest bedroom if the main bedroom isn’t clean?
Similarly, some technical debt helps the team move faster than others.
The alerting system for a billing service is more impactful than the alerting for an internal tool. The testing infrastructure for the homepage is more important than for any other page.
The lesson for engineers is to always consider the opportunity costs of your work.
Don’t clean your guest bedroom until your main bedroom is clean first!
Example: Doma’s Migration from Heroku to Azure
Doma, a real-estate software company, had a technical debt cleanup recently where their focus on cleaning the main bedroom paid off.
To prepare for their IPO in 2021, they had to migrate their cloud infrastructure from Heroku to Microsoft Azure. They gave themselves half a year to plan and execute on this migration.
However, towards the end, Doma had an issue with their contract with Heroku. Heroku wouldn’t allow them to renew their contract at a lower volume, and only presented Doma with the option of another longer-term contract. So if Doma didn’t complete the migration to Azure in time, they could have their cloud infrastructure cut off.
They gave themselves 41 days to execute the migration, but this issue cut their timeline down by a month, down to 11 days.
A slide from Doma’s presentation on their migration to Azure.
Considering their contract with Heroku had an imminent deadline, not completing this migration could cost the company millions of dollars. Any other engineering work paled in comparison to the impact of not completing this migration in time.
In response, Doma issued an all-hands on deck for their engineering teams. Every team had to prioritize migrating off of Heroku because the opportunity cost of this migration was too high. Doing any other work would be the equivalent of cleaning the guest bedroom, when the main bedroom, the Heroku migration, was on fire.
Doma’s focus paid off. They migrated all of their remaining apps to Azure in 8 days—with 3 days to spare for testing. Their investor mindset allowed them to weigh the opportunity cost of the migration vs. other work and avert a crisis. They IPO’d soon after.
Final Thoughts
In engineering, developing the investor mindset will get you further than knowing the latest tech fad.
If you spend more time considering 1) the financial costs 2) the payoff periods and 3) the opportunity costs of your work, you will make better technical decisions and save time.
💡 If You Liked This Article...
I publish a new article every Tuesday with actionable ideas on entrepreneurship, engineering, and life.
Top comments (43)
Counter-argument: the best engineers are a really diverse bunch of people with lots of different mindsets.
Some may wake up in the morning repeating the credo of Warren Buffet like you describe.
Richard Stallman prefers to lead the Church of Emacs.
Larry Wall is all about religion and linguistics.
Linus Torvalds does things just for fun.
Other are teachers, pedagogues, poets, painters, dancers, mothers, writers, you name it.
Totally fair
Literally nothing in this article has anything to do with engineering.
Everything in this article has to do with a short-term results view of investing, which is basically a virus killing this planet.
Not to say this article isn't true. Every word of it is true.
But it's only good if you define good as "profit."
This comment contains more substance, wisdom, and humanity than the whole shitpost.
I like u bro
All depends on your criteria for a 'good' engineer. Your take seems to be almost exclusively from a business perspective, and to my mind falls more into the realm of 'software project management' - something I don't really consider to be part of engineering at all.
The best developers are the ones who do it for the love of it, and the desire to create, or even the desire to solve their own needs by creating a solution.
The worst developers are those doing it for the money or just as a career, and they come home from work and don't even have any side projects they're working on.
Grading someone based on their hobbies and how they spend free time is really strange, and honestly seems unhealthy. Not everyone wants to make work their focus every waking hour.
Do you judge your mechanic if they don't wrench all day on weekends? Does your electrician suck because they're not wiring projects in their free time?
The best developers are just good developers. What they do in their free time is irrelevant to being a good developer. The worst developers are the worst because they actively suck and have bad practices during work.
"The best developers are the ones who do it for the love of it" is something I claim as a general rule, and it should be obvious that if someone truly loves an activity they do it even when they're not forced to.
Furthermore I challenge anyone to name one single famous intellectual in any STEM field who hasn't loved their work to the point that they did it in their spare time whenever possible.
In response to this:
I think you're interpreting the direction of the causation to be the exact opposite of what I was saying.
I think the kind of developer Clay describes doesn't even make a distinction between 'work' and other projects - to them it is just development, so they aren't making work their focus at all by doing development (which usually isn't related to their job) outside of the office. They thoroughly enjoy development, and their 'work' is just another project that they happen to get paid for. This isn't to say they're total nerds who shut themselves in their rooms and just code all the time - they're quite often fully functioning, normal (whatever that means) members of society - whose brains just happen to crave the challenge of coding.
Developers like these are generally far more creative and talented than those who see it purely as a job, and if you can find one I would strongly suggest hiring them.
I'm not trying to belittle other developers - there are definitely many great ones around, but over 25 years in the industry I'm pretty sure I know the kind of developer Clay is referring too - and they really are the best (although I 100% understand that the quality of a developer is subjective)
Eh, we'll agree to disagree but I sincerely hope we don't start calling people hot or not based on what they do outside of work. His judgement on that statement (that bad devs are bad because they don't dev outside of work) is a grossly unhealthy outlook.
Yeah I think you got what I was saying. Marissa chose to interpret my observation as being judgmental, on an emotional level, rather than just factual about coding.
Great content
Ty Ben!
this is great!
appreciated!
Very good thought and well articulated
Thank you Pavan!
On the basis of this well written article I have subscribed to your newsletter. Engineering as investing..great analogy for sound project management.
Much appreciated.
Ty msiame!
Despite the praise, your comment actually highlights the whole issue with the article:
Engineering ≠ project management
Nice text, and how do you think you could improve this mindset?
Just make sure before you do something that it will actually lead to big improvements, not small ones.
Thanks bro. Excellent post, it is very wisdom.
I gotchu man