We’re living through the tail end, maybe?, of the Great Resignation, so we dig into how that might impact software engineering careers while Allen is very somber, Joe’s years are … different, and Michael pronounces each hump.
The full show notes for this episode are available at https://www.codingblocks.net/episode180.
- Mergify – Save time by automating your pull requests and securing the code merge using a merge queue.
Thanks for the review Chuck Rugged (or is it Rugged?).
What is “the great resignation”?
- The Great Resignation is an ongoing economic trend where a lot of people started quitting their jobs in 2021 and peaked at 3% unemployment (up roughly 50% from the pre-COVID unemployment average).
- Primarily, but not exclusively, in the US, but also trended in Europe, China, India, Australia as well.
- Some interesting factors:
- High worker demand and labor shortages.
- High unemployment.
- Employees between 30 and 45 years old have had the greatest increase in resignation rates, with an average increase of more than 20% between 2020 and 2021.
- Resignation rates actually dropped for people in their 20s.
- Tech and healthcare led the trend, 4.5% for US, 3.6% for healthcare.
- Reasons cited included stagnant wages and working conditions.
Why is this a big deal?
- Hiring is expensive! Think of thinks like referral fees, recruiter’s percentage, takes a while for people to become productive, onboarding, etc.
- What does this mean for working conditions? More remote, better compensation, more flexibility, etc.?
- Why do people change jobs?
- Work life balance,
- Leaving a bad environment, and/or
- Better company
What can you gain?
- Salary bands, FAANG vs local vs remote vs startup
- The “TC” (total compensation) Trap
- Restricted Stock Units vs Options
- Top paying companies, by level (levels.fyi)
- Comparing levels across orgs (levels.fyi)
About those levels
- Senior engineers are senior developers who may specialize in a specific area, oversee projects, and manage junior developers.
- Principal Engineer is a highly experienced engineer who oversees a variety of projects from start to finish.
- Staff engineer is a senior, individual contributor role in a software engineering organization. There is no “one” kind of staff engineer and many fall into one of four archetypes: Tech Lead, Architect, Solver, and Right Hand. (staffeng.com)
- Is there a hiring level cap? What does that mean?
What can you lose?
- The people,
- The grass isn’t always greener,
- Seniority (don’t be the “At X we …” person), and/or
Resources we Like
- Great Resignation (Wikipedia)
- The Great Resignation: Data and analysis show it’s not as great as screaming headlines suggest (NevadaCurrent.com)
- The Great Resignation is here. What does that mean for developers? (stackoverflow.blog)
- Who Is Driving the Great Resignation? (hbr.org)
- What Do Software Developers Want Out of Their Next Job? (insights.dice.com)
- How the Government Measures Unemployment (bls.gov)
- Salary comparisons (levels.fyi)
Tip of the Week
- Did you know you can expand or collapse all the files in a pull request on GitHub? Press
Alt + Click on any file chevronin the pull request to collapse or expand them all! (github.blog)
- Kotlin code for using Google Cloud! (cloud.google.com)
- Thanks to Dave Follett for sharing How to securely erase your hard drive or SSD! (pcworld.com)
- Thanks to Fuzzy Muffin for sharing Nvchad, a nice face for Neovim (Nvim) that adds some nice features, like directory access and tabs. (nvchad.github.io)
- How do you merge two Git repositories? (Stack Overflow)
git-sizerto get various statistics about your repository. (GitHub)
- How to find/identify large commits in git history? (Stack Overflow)
- Then forget about BFG and
git filter-repois the way to remove large files from your Git repo (GitHub)
--shallow-excludeto exclude commits found in the supplied ref in either (or both) your git clone (git-scm.com) or git fetch operations. (git-scm.com)
- Limit your
git pushoperation “up to” a commit by using the format
git push <remote name> <commit ID>:refs/heads/<branch name>. (If the
<branch name>already exists on the
<remote name>, you can leave off the