Human Who Codes Newsletter - Tech Hiring


Thoughts on Node.js, Deno, and Bun

If you started working in the tech industry after 2005, what’s going on now may seem like a shock. Large tech companies continue to lay people off despite record profits. Smaller tech companies are also laying people off, and in some cases, having “quiet layoffs,” where they find other ways to reduce headcount, including offering employees three months of salary to voluntarily leave the job. As a result, there are more software engineers looking for jobs in 2024 than in the past, and there are fewer jobs available. If you’re on Twitter, you may have even seen a bunch of people complaining about not being able to find a job despite multiple rounds of interviews at different companies. Is this the end of software engineering as desirable employment?

The great reset. The short answer is no, but that doesn’t mean things aren’t changing. Since recovering from the dot-com crash around 2005, the tech industry has seen massive growth. Venture capitalists shook off their losses and started pouring money back into tech companies. Startups were founded with no plan to make money, only to gain users, and that was enough to pull in millions of dollars in funding. Everyone was hiring and that meant that the hiring criteria was less than competitive. When I worked at Yahoo 2006-2011, I was regularly asked to interview front-end candidates outside of my team, and many of the people I evaluated as “no hire” were hired anyway because the teams just needed people.

Take that attitude and multiply it times 10 during the pandemic, when tech companies overhired as the world shifted to online-first. The belief was that the pandemic served as a turbo charger for the already large growth trajectory of the tech industry, but in reality, it was a momentary blip on the radar. Once the world opened back up, growth slowed back down to be inline with its previous trajectory. This is the first “reset” that the tech industry had since the dot-com bubble crashed in 2000, and that necessarily brought changes in staffing.

Good engineers are still welcome. I’ve spoken with many folks who are understandably concerned about the state of the tech job market. Many are choosing to stay put at a job that may not be to their liking rather than risk a new opportunity elsewhere. While that’s understandable, good engineers are still finding great opportunities. Yes, companies have raised the bar for who they are hiring, but they are raising it from an absurdly low level. For a long time, the ability to write a “hello world” application was enough for you to be hired somewhere. It may not have been at one of the big tech companies, but there was certainly a smaller company desperate for talent that would hire you. (Or Yahoo circa 2006-2011.)

What we are seeing now is a return to more standard hiring practices that you’d see in other industries. Companies are looking to efficiently allocate their salaries to engineers who will make a difference. In the past, every candidate was in a good position to negotiate on salary and job title, whereas now the power is more with the companies. If you’re not at what they consider senior level, then you won’t get a senior title or salary. If you were senior level at a previous job, the likelihood of getting hired at a higher level somewhere else is low. Companies now have more candidates in the hiring pool, so that’s likely to lower offers overall, though a horizontal move to another company isn’t likely to cost you money.

Most industries are cyclical. When you keep in mind that most industries go through boom-and-bust cycles, the 20-year hot streak for the tech industry was never meant to last. The internet pushed us forward in the late 1990s and early 2000s, and things would have died down were it not for the invention of mobile phones, and soon thereafter, smartphones. The tech industry has been drafting off the smartphone boom for a while as other innovations such as virtual reality, augmented reality, and the metaverse, never caught on. It’s possible AI will be the next booster engine for the industry, but it’s still too early to tell.

In the meantime, the best thing you can do for your career is continue to find ways to improve and separate yourself from other candidates. If your company offers personal development funding, look for ways to use that to better yourself, whether that be through attending classes, going to conferences, or even hiring a coach. Make use of free and low-cost online resources to learn more about the languages and systems you’re using, pick up books on architecture, leadership, and communication to make yourself more marketable. We all have unlimited growth potential and now is a great time to tap into it.

Going forward, companies are focused on attracting quality candidates rather than hiring to fill a certain number of positions. Companies will even create jobs for the highest quality candidates when there aren’t predefined positions available. The tech industry is going through a bit of a reset, but there are still plenty of jobs for good engineers. Make sure you’re one of them.

Key Takeaways

  • The tech industry is slowing down from a record run, but that doesn't mean the industry isn't growing.
  • Companies are becoming more selective about who they hire. There are still plenty of opportunities for good engineers.
  • Demand for software engineers is still high and will remain so for the foreseeable future. It's just not as high as it was the past three years.

Understanding JavaScript Promises Print Book

My self-published e-book, Understanding JavaScript Promises, is now available as a printed book! Everything I know about promises is included in this book, including a whole new chapter on using and creating abortable functions.


Stuff I've Enjoyed this Month

🎬 CrowdStrike IT outage explained by a Windows developers by Dave's Garage
A nice overview of the CrowdStrike issue, including a helpful description of not just why Falcon was written as a kernel driver, but the implications of it being a boot-start driver.

📝CrowdStrike Post Incident Review by CrowdStrike
This official release from CrowdStrike explains what the problem was and what they'll do to prevent it in the future. It's shocking that they weren't already doing most of this.

📚 Scaling People by Claire Hughes-Johnson
This book is aimed at directors and COO types who help to build companies and manage large organizations. It's a fascinating look at what it takes to manage growing companies.

🎬 Freeze screen and inspect disappearing elements by Chrome for Developers
This short video shows how to use Chrome DevTools to debug issues with parts of a web page that disappear.

📚 Million-Dollar Weekend by Noah Kagan
If you've ever dreamed of starting your own company but thought it was too overwhelming, this book is for you. The author walks you through simple steps anyone can take to research and test business ideas before taking a big risk.

📝What we got wrong about HTTP imports by Ryan Dahl
One of the distinguishing early features of Deno was the ability to use HTTP imports instead of npm packages. In turned out, though, that this was better in theory than in practice. In this post, Dahl explains what they got wrong and how they've pivoted to JSR.


What I'm Working On

🏠 Real Estate: I got some bad news: one of my properties has a lead paint issue and the department of health got involved. Apparently, there was some old lead paint under the newer paint, and when the newer paint pealed, it revealed some lead paint. So at the moment I'm looking at $2,500 in remediation costs. Follow my Instagram for real estate photos.

🎧 Podcasts: I was recently on the devtools.fm podcast where we went deep into some of ESLint's design decisions. Why not rewrite in TypeScript? Why not rewrite in Rust? Why has ESLint remained popular for so long? Listen now

💻 Open Source: I released a humanfs Box implementation, which is the first humanfs implementation for a cloud drive.

💻 ESLint: I finished up the language plugins work and created the official JSON plugin. I'm currently working on a Markdown plugin, too.

Human Who Codes Newsletter

A once-per-month newsletter discussing topics important to senior-level software engineers, with a particular focus on frontend technology and leadership.

Read more from Human Who Codes Newsletter

Thoughts on Weaponizing Open Source When you think of open source software, you might think of it as a gift from someone to the world. They’ve written something of value, and instead of trying to make money off of it, they’ve posted it online for anyone to use (and potentially make money off of) for free. While many projects start that way (Linux, ESLint, etc.), there’s another way open source comes into being: as a weapon against a company’s competition. Android. Perhaps the best example of...

Thoughts on Rates of Change One of the first things I realized about working in codebases is that different parts of the codebase change at different rates. There are some files that are touched very frequently while others can go months, or even years, without being touched. This fascinated me, partly because it reminded me of my closet (why do I even still have those jean shorts?), and partly because people seemed to put such little thought into optimizing their projects to reflect this...

Thoughts on Node.js, Deno, and Bun For well over a decade, if you wanted to run JavaScript on the server, your only choice was Node.js. It has been battle-hardened by some of the most demanding companies in the world, many of whom paid employees to help maintain or contribute to the project. Then in 2018, Node.js creator Ryan Dahl announced Deno, a new server-side JavaScript runtime that was intended to fix a lot of the problems of Node.js. Fast forward to 2023, and Bun was released as...