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.



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

Start at a small consulting company

Dear new developer,

If you are sure where you want to go in your shiny new development career, pick that and follow it. Whether that is embedded programming or high frequency trading or generic web development, pursuing a career with focus is a great option.

If you are just looking for that first job, remember it’s a numbers game and just keep applying and networking. Then take the first job that seems like it’d be interesting and treat you well. (Avoid those that play games in interviews.)

If, however, you are looking for a tour across technologies, domains and businesses, and you want to work in an environment where everyone’s effort counts, I’d suggest starting at a small consulting company. This is where I started. I didn’t really know what I was looking for, but interviewed at some big companies like HP. I ended up getting an internship at a small web consultancy where I was employee number 61 (I believe).

By small, I mean between ten and seventy five people. Ten or more is big enough to hire new developers and give you some kind of structure. Less than ten means that you’ll have a lot more autonomy but that may be problematic when you want to learn from others–they may be too busy to help you.

Seventy five or less people means that every hire matters, and that you’ll be able to have a real relationship with everyone at your company. Larger than that means that people will start to be able to hide and not do real work. Small companies don’t have room for people not pulling their full weight, but bigger companies can.

I’ve written about this here as well. An excerpt of some other benefits:

  • Variety is the spice of consulting shops, so if a project isn’t working for you, you can often work on another project. If that isn’t available, the project might take months. This is hard, but a far cry from working on a product for years.
  • You will get as much client interaction as you want. As a developer, the ability to work with non technical people to build software to spec and on (or, to be honest, near) budget is a very valuable skill to have.

In general, working at a small consulting company is a great way to get a wide variety of experience. If you do a great job (especially at the beginning) and keep track of people you work with, it can set your career up for the rest of your life. I am still working and keeping in touch with people from the first consulting job I had, which was two decades ago.