Trade Money For Time

Dear new developer,

Don’t be penny wise, pound foolish. Your time is worth a lot, and it’s worthwhile to spend some money to accelerate toward your goals. I heard a client say once that their time was essentially free. I understood the sentiment, but the reality is that if you can be working on tasks that are higher value, it makes sense to spend the money.

Examples of ways to spend money that may not strike you as “worth it”.

  • Buying a book or video course instead of just reading the free docs. I remember one time for a consulting gig I needed to integrate with Stripe. I found a $30 technical ebook that I could read a few pages of and do the exact integration I needed (take money from a ruby on rails web application). The alternative would have been an hour or two reading the docs and figuring out how to do the same thing.
  • Buying and using tools. I use vim, but I know others who swear by IDEs like Jetbrains. Buying and learning these tools have saved them hours and hours of development and debugging time.
  • Opening a support ticket with a service provider. When I run into a strange situation, if I’m paying someone money, I open a support ticket. I had a colleague that had an issue with images getting corrupted across a number of places in an application. He spent a lot of time looking at our code, but eventually the issue turned out to be caused by the service provider.
  • Paying for commercial software. The alternative is to stringing together open source solutions. Now, open source is great and can often be a good value. But there are times when it just makes sense to pay for a solution. I often use the criteria “is this core to the business” or “what would happen if this paid service went away” to ward myself away from the idea that my time is free.
  • Paying for consulting or training. Sometimes a day with a consultant (even if it is expensive) can save you weeks or months. You gain the benefit of their mistakes and experience.

Now not all of these will apply to you, new developer. You may have no budget to spend at your place of work. But you can still apply this heuristic to your own choices. Get that subscription to Udemy or Safari. Buy that book. Explore that tool and see if you can recommend it.

Realize that your time is precious and you can leverage it through spending some money on tools.

Sincerely,

Dan

Know your runway

Dear new developer,

When you are considering a career move, whether to a startup, a sabbatical or further schooling (basically any time when your income will exceed your expenses) it pays to calculate your runway. There are various kinds of runway (social, emotional, financial) but the easiest one to calculate is financial. You do this by tracking your monthly net outflow (expenses minus any income) and knowing your savings. Dividing the savings by the outflow gives you the months of runway you have. At the end of your runway you will have no money, which makes living hard. That is something you want to avoid.

How can you avoid the “I have no money” outcome? First, calculate your runway regularly. Once a month is optimal. Second, be aware how long it would take to get a new job (this will probably be an estimate, but ask folks with similar experience who have found jobs how long it took them). Third, before you start, decide on a number of months of runway that will cause you to start seeking other sources of income. Fourth, get a job before you need to.

If you look like you are going to run out of money before you are done with whatever you are trying to do, then you have some hard choices. You can quit or pause your task, increase your income (drive for Lyft, etc), decrease your expenses (move to a cheaper home, etc). Decreasing expenses is the option you typically have the most control over, but it can be unpleasant. It’s the course I recommend, however, because it typically is the least distracting (though if you are cutting expenses to the point that you are hungry all the time, then that may not be the case).

The reason to get a job before you need to is that desperation makes interviews tougher (more pressure). Even if you find a job and get the offer, you will accept a job that isn’t the best fit just to bring in some income. If benefits aren’t important, you may want to consider contracting as a stopgap to allow a more relaxed interview process while stopping the bleeding.

Whew. Sounds stressful. Why would you ever put yourself in situation where you needed to think about runway?

Pulling from savings and not maximizing your current income is a form of investment. When I joined a startup as a co-founder I leveled up my skills around devops, customer empathy, community building, and product management. When I took a sabbatical I learned how much I truly loved building software (I remember reading an article about RDF in an internet cafe in another country).

It can absolutely make sense to invest savings and time into something that will drawdown your savings rather than increase it. Just keep in mind how long you can invest so you aren’t unpleasantly surprised.

Sincerely,

Dan

PS This post was inspired by a comment from a Meetup participant, but all thoughts and mistakes are mine.

Learn about personal finance

Dear new developer,

If you have a job, you’re probably making pretty good money. I know when I started I was making a lot more money than I ever had before (it was $42,000 per year, but this was in 1999). Man, it felt good to just buy what I wanted to buy and not worry about it.

But one thing that I did was set up my 401k and contribute to it. It’s better to save to a 401k from age 25 to 35 than from age 35 to 65, thanks to the magic of compound interest. There’s a whole lot of assumptions, but if you contribute $5000/year for each of those years and the rate of return remains the same (BIG assumption) the person who started saving at 25 will have $60,000 more at age 65. So, take advantage of time and put money away.

I am not a finance professional, but you will be well served by getting smart about personal finance. Books I like:

There’s of course a lot of options to read about personal finance online as well. As a good overview, this post talks about ten personal finance lessons for software developers. My favorite point:

[C]onsciously make choices about where time is spent and one of the best things that’ll help you do that is to have a goal.

Personally, I saved as much as I could when I was a new developer, but you may make a different choice. I have a friend who invested in solar companies because it was in line with his values. I have other colleagues who didn’t start investing until they were in their thirties. There are many paths. All I’m recommending is that you make an informed choice.

Sincerely,

Dan

Businesses will spend money to make money

Dear new developer,

Businesses will spend money to make money (or save money, which is essentially the same thing). This is what they are doing when they are hiring you, when they buy that shiny new office building, when they spend money on computers and other tools to help you do your job, and even when they pay severance. While you may not be in the position to spend money yourself, understanding that businesses will do so can clarify your understanding of what you are working on.

Making money is not the only reason businesses spend money. Sometimes they spend just because the CEO or other leadership want to, or for image reasons, or because of inertia. But in the long run, spending money for other reasons is bad for business.

Spending money to make money is rarely a sure thing. If the return was certain, then other businesses would notice and step in and spend money down (this is assuming a relatively free market–regulations are a whole different ball of wax). So taking bets with money is a key part of running a business.

What does this mean to you, new developer?

When you evaluate a project, think about the economics of it. How is it going to make money? What assumptions are there? Don’t assume you know all the answers to these questions.

Asking the people behind the project why they think this project is going to make the company money will help you understand why the project exists (it’s no fun to work on a pointless project), help you improve the project (perhaps there is a more economical way to achieve the goal) and increase your value to the company (someone who can execute the details while understanding the big picture is more valuable than someone who can only do one of those).

Sincerely,

Dan