I was the CTO at WhisperSystems, which was just acquired by Twitter. In the past, I’ve done both contract and full-time software engineering work, and I’ve worked on boats and as a delivery captain. I’ve also spent a considerable amount of time being broke and living without money.
I don’t think I have any particularly sage advice for software engineers looking to go independent, so I’ll answer a different question: on a somewhat regular basis now, I receive inquiries from young people coming out of high-school or college, asking me what they should do to get started in their software or security career. My most common response is “don’t do it.” Or at least, not right now.
I think the biggest thing young people fail to realize is the interminable nature of a career. As a young person in the global north, your whole life is generally marked by periods with definite beginnings and endings: elementary school is 5 years, middle school is 3 years, high-school is 4 years. It’s significant because when you’re in high-school and hating the indignity of it all, there is at least a definite endpoint that you can look forward to. But if you’re coming out of that, you might not fully comprehend that when you start a career, you’re expected to do that… for the rest of your *life*! Don’t be too anxious to jump into that, because it’s not as different as what’s come before as you might think.
A friend of mine recently quipped “most people working in software discovered technology before they discovered themselves.” There are so many people in the industry working on projects without a real personal narrative as to *why* they’re doing them, other than the intrinsic feeling that solving technical problems is fulfilling. There is a whole entrepreneurial scene in the Bay Area right now; I can understand the draw of building things, but the level of self-seriousness that people bring to something like a “customer loyalty” startup baffles me. Honestly, it’s simply not true that this stuff is “changing the world,” so don’t be too concerned about missing out if you don’t jump in as quickly as you can.
Please, don’t spend your late teens or early twenties in front of your computer at a startup. If you’re a young person, I think the very best thing you could do is get together with a group of friends and commit to a one year experiment in which the substantial part of your life will be focused on discovery and not be dedicated to wage work – however that looks for you. Get an instrument, learn three chords, and go on tour; find a derelict boat and cross an ocean; hitchhike to Alaska; build a fleet of dirigibles; construct a UAV that will engage with the emerging local police UAVs; whatever – but make it count.