So we're officially in a recession, and now the question is, "what does a recession mean to me as a brand-new developer, or as a developer learning to code?". It's scary stuff. As you can see in this chart, tech stocks are getting hit hard.
What's different about this recession?
This recession has been much different from the Coronavirus crash or the Great Recession of '08. This recession is unique because tech has been hit much harder than other industries. During the Coronavirus crash, tech actually boomed. I believe that 2 primary factors make this crash different.
Difference 1: Expensive money (high-interest rates)
This is the most important factor in my opinion. Very shortly after Coronavirus tanked the market, the FED stepped in and "printed" money like crazy.
Interest rates were in the gutter. As a result, because money was cheap, both retail and institutional investors threw all that money at tech companies. Tech was doing great, and investors love high-flying tech stocks.
Difference 2: Market forces (people aren't stuck at home)
Tech did so well during the Coronavirus because people were stuck at home. There wasn't much else to do aside from having Zoom meetings, watching Tiger King on Netflix, and listening to Spotify. This time, we have the opposite taking place. People are going back to work which creates a headwind for a lot of tech companies.
Ad revenue from Facebook and Google is tapering off, and people are canceling their Netflix subscriptions as the commodification of online videos proliferates.
Are layoffs happening?
Yes, they are. Layoffs.fyi has some great data on this. Anytime there's a market dip, companies take advantage of the opportunity to cull the chaff in their orgs.
So tech is in a rough spot, what should I do?
Nothing that follows is financial or professional advice, blah blah blah.
#1 Don't Panic
Honestly, if you take nothing else away from this article, take away this: you probably don't need to do anything about a market dip. Every industry has ups and downs. There will be layoffs and pay cuts, but at the end of the day, tech isn't going anywhere. I predict that in 5 years we'll have far more companies employing developers than we do today.
If you're in the process of learning for your first job, quitting is almost certainly a mistake. The average length of a recession according to Forbes is only 10 months (or 17 months if you all the way back to 1854).
It takes most new developers at least 6 months to prepare for their first job, and it can often take a few years. Keep learning, continue improving your skills, and there will be companies that want to hire you. Learning during a recession is a fantastic option, because chances are the market will be much better after you've had the chance to work on your skills.
#2 Be a better developer
I know, I know, "easier said than done, thanks for the advice".
Software development isn't easy, no matter what edtech and e-learning advertisements say. Sure, once you have a couple of years of experience, the whole tech job thing is cushy; but here's a reason for that: it's hard work to learn to code.
When the market is doing well and companies are making money hand over fist, they're willing to over-hire and snatch up devs that don't add as much value to the company as others do. When things are tight, less skilled developers are typically the first to go.
This isn't new advice, but if you continue upskilling yourself, you'll simply be more valuable on the market. Again, giving up and getting discouraged about the state of the market is the last thing you want to do. If anything, take some time to work on open source, take courses, build projects, and learn more about software.
#3 Analyze your situation
Again, I can't give you personal advice, but here's what I would do in a few different scenarios.
- Learning to code? Keep learning. If anything I would study harder than before because the pressure is a bit higher. I'd keep my day job if I had one and self-teach to save money. I'd use sites like Boot.dev (yes, I'm biased), FreeCodeCamp, and Scrimba.
- Have a coding job at a company that's doing well? What are you worried about? Keep doing what you're doing, it's probably working.
- Have a coding job at a company that's NOT doing well? Are you likely to be laid off? If so, get ahead of it by preparing your resume, and applying around. I'm not saying you need to immediately jump ship, but it might be a good time to start casually looking.
What happens when things are not going well at a tech company?
I was working at a company a few years back, we had an engineering team of about 30 and the total company size was around 100 people. The company was a SAAS in dire straights. Churn was catching up with the sales cycle and revenue was decreasing month over month. Here's how management handled it.
Step 1: Sales and marketing layoffs
Because we weren't closing new deals, the first thing to go was the sales and marketing budget. Only the "closers" were kept.
Be aware the video above has some very strong language in case that offends you.
Step 2: Gutting our vendor spend
We had lots of fancy tools for our teams. Zoom, Slack, GitHub, AWS, you name it. At this stage in the downturn, we took the time to analyze which tools we really needed, and we cut the rest or reduced our spend. For example, by spending a few weeks of engineering time we were able to reduce our AWS cloud bill from roughly $100k/mo to $50k/mo.
Step 3: Engineering layoffs
Why was the engineering team the last to go? Well, it's because without a product, not only can you not sell new customers, but you can't even retain the ones you have.
SAAS companies are a new beast, and accounting terms get a little funny. In a physical goods business, you have "COGS", which stands for "cost of goods sold".
Cost of goods sold (COGS) refers to the direct costs of producing the goods sold by a company. This amount includes the cost of the materials and labor directly used to create the good. It excludes indirect expenses, such as distribution costs and sales force costs.
-- Investopedia
In SAAS, however, COGS is a little weird. Your hosting and external SAAS integrations are your only true "cost of goods sold". If you're paying for your servers and the tools that make your product run, then you're able to service your customers. That said, your engineers are the next closest thing. When something happens to the servers, if you don't have engineers that can fix it, then you'll start losing customers right and left.
I suspect that many companies go through a similar cycle when they need to tighten their belts. Engineering is a great department to be in when things get tough because "cost of goods sold" is non-negotiable.
How do I know if I'm going to be laid off?
It's hard to say, companies do unpredictable things. However, here are a couple of things you can think about.
- Does your company have money in the bank? If they recently raised a round of funding, or if they're profitable that's a good sign. If it's been a while since the last round and they're burning cash, it's not so good.
- What's your ROI for your company? When layoffs happen, managers and executives attempt to weigh the productivity of each employee against their cost, and they cut the "worst deals" first.
- Are you a part of a "core" team, or some kind of "moonshot"? Teams working on experimental products often get cut first. The more fundamental your work is to the core business of your company, the safer you are.
- How long have you been at the company? While not always the case, it's often the newest hires that get cut first. Partly due to personal loyalties, but new hires also just aren't as "up to speed" as more tenured devs.
- Do people like you? This is an often overlooked, but super important point. Companies are made up of people, and people who are universally un-liked often get cut, even if they're productive.