Reflections on Twenty Years in Tech

After twenty years working in the tech industry, I’m looking forward to more time spent building products and services that are good enough to pay for — and also giving away some of my work to the open source community. I volunteer my time helping out my junior colleagues and recent college grads who are looking for guidance as they set foot into the tech world for the first time. These are some of the questions I get asked often, and my typical responses. (These opinions are strictly my own and don’t represent those of my employers, past or present.)

What do I wish I had known 20 years ago?

Start saving money early. At my first job, I learned about 401(k) plans for retirement saving, but at age 22, I had no desire to invest the maximum of $12,000 (then, nearly a quarter of my salary) into a 401(k). It made no sense that $12,000 would ever amount to something that could cover any of my retirement expenses. I figured that there were better things to spend my money on, like electronics and vacations. In retrospect, I could have still lived well without that $12,000 in the bank (and I’d have saved money on my taxes in the process), and, had I invested $12,000 in an S&P 500 index fund with dividends reinvested, that year’s contribution would be worth over $77,000 today. A person just starting out can make their money grow tremendously by investing it and leaving it alone. Your Money or Your Life is a good read about the value of saving; it also inspired me to write my book on personal finance for techies.

Soft skills are incredibly important. Anyone can memorize the handful of “secret” coding questions that most tech companies use to interview software developers. Interviewers know this, so a good interviewer will probe for soft skills by asking about specific (not hypothetical) situations and how the candidate handled them. The “brilliant jerk” phenomenon, as articulated in The No Asshole Rule, has let many companies’ cultures suffer by retaining talented employees whose lack of social skills can drive other employees away. On rare occasions, I’ve found myself avoiding certain coworkers who, despite being talented and knowledgeable, have personalities that turn me away. Regretfully, I’ve been a coworker avoided for the same reason. Now, I welcome when people point out situations when I need to do less talking and more listening. “Seek first to understand, then to be understood,” as Stephen Covey wrote, is a great maxim.

How do I handle bad news?

As I publish this, the tech industry’s going through a rough patch. More than 150,000 techies lost their jobs in 2022, and more layoffs are already underway in 2023. The industry has survived prior layoff waves during the financial crisis about 15 years ago, during the dot-com bust about 22 years ago, and during the early ’90s recession about 33 years ago. That’s no guarantee that any one company will survive, or that any one worker will keep their job, but I remain confident that people with the skills and the interest to remain in tech will be able to do so, although they may have to accept a change in compensation or location.

Don’t take bad news personally. I’ve worked at companies where people have suddenly been let go, either individually or as part of a larger restructuring. A common reaction, especially when I was just starting out in my career, was to assume that I was next in line to lose my job. This is near-impossible to prove, either positively or negatively; in the U.S., a full-time worker can leave or be dismissed for almost any reason, at any time, with or without much notice. I’ve also listened to coworkers who react to stock market movements or macroeconomic news by projecting their own anxieties onto them. A well-run company doesn’t hire or fire based solely on its own stock price, but a stock price is often the only externally-visible metric about a company, and it is cited as a cause for or effect of many things that have nothing to do with it.

Handling failure is more valuable than handling success is. When times are good, everyone is a genius. Every idea is a winner. Every investment tip is a moneymaker. Every product fits the market. Great leaders show up when times are tough. I’ve found, over my career, that when I encounter negativity, my first reaction is sometimes to latch onto it and make a bad situation worse. It’s more emotionally expensive to acknowledge negativity and also push past it, continuing to get work done. Ignoring bad news leads to toxic positivity, so it’s important to both acknowledge it and proceed to have a positive impact anyway.

How should I stay informed of new skills, tools, technologies, etc.?

For the most part, I don’t actively seek out this information. I don’t read Hacker News, any Reddit site, or any programming news site regularly. Generally, when I’m not at work, I am not programming; rather, I’m pursuing other hobbies and interests that I don’t get to do during the work week. Sometimes, I’ve picked up a new language for a side project I find interesting, such as Ruby for a programmable sign at a friend’s club in 2007, or Perl for an early content management system for this web site in 2001. I don’t learn a language or technology solely because I think it’ll be necessary. A good company should expect a good developer to learn and adapt, and a good developer should know what they want to do and what they would prefer to avoid.

Most of what I’ve done in my career has involved migrating an existing system, which doesn’t give me a lot of choices for the tools I can use. It’s mainly when I work on a brand-new, “v1” project that my team gets to pick a technology. In many cases, the discussion centers around whether one should use an existing, proven, older tech, or an exciting, cutting-edge, newer tech. In some cases, the new project needs to integrate with existing tech, so especially at a larger company, the choices are artificially limited.

I prefer to learn about new technologies and tools not from press announcements, but from successful implementations. At every company where I’ve worked, people have shared news about technologies they’ve used, either internally (e-mail, chat, intranet blog, talk series, etc.) or externally (engineering blog, social media, etc.). I prefer to learn from others’ and my experiences. Nothing succeeds like success.

When should I change jobs?

When you find something better. During my career, I’ve changed jobs, either internally or to a different company, roughly every three to four years. I know people who change jobs more or less frequently than that. I worked for a vice president about 10 years ago who taught me to “run towards” a better opportunity, and not just to “run away from” a bad situation. (True to his word, he found a better opportunity less than a year after he told me this.) Personally, I care about what a company does and I see its chief executive as its standard bearer. I’m at a point in my career when I can say no to entire industries where I don’t want to work.

Not everyone has the same opinions or liberties as I do. Some of my colleagues are in the U.S. on visas that are tied to their employer, and they, should they find themselves out of work for any reason, would have 60 days to find a new visa sponsor. I’ve talked to people who would rather take a job they dislike than turn it down and risk being made to leave the country. For anyone, though, their next job has to be one that they have the skills and the desire to do. Without motivation, it’s going to be a lot harder to be happy and successful at work.

What can I do to be ready for the unexpected?

Save your money. This is becoming a sort of personal catchphrase. Your savings can provide a crucial cushion in case someone’s best-laid plans go awry. Major future expenses include dealing with health problems, going back to school, starting a family, or taking a “career break” to regroup and heal. A person who started their career during the tech upswing of the last roughly 12 years might be led to believe that wages, and stock prices, always go up. Even when wages do go up, so too may expenses; lifestyle creep is the real, and often unnoticed, phenomenon when one’s personal spending rises as one’s income does. If a person’s wages decrease, it’s much more difficult to downsize their lifestyle, and not everyone is ready to do so. Stay aware of your income, expenses, and investments, and you’ll be ready when you find yourself in trouble.

Pursue things you like. I’ve talked to people who make “working in tech” their entire identity, to the point that they spend their spare time competitively solving interview questions and shopping for future employers. When I was preparing for my last interviews, in 2021, my prep work wasn’t fun; to the contrary, it took away time for activities I liked. Everyone has non-work-related interests that they’re passionate about. Take vacations (there’s no glory in letting your vacation days pile up) and surround yourself with the people and experiences you enjoy. Your employer will let you work yourself to exhaustion, and they won’t reward you for your martyrdom. Be a whole person. You are not your job.