2021 What should be in your toolbox as an engineer

If you want to be an effective engineer in our industry, get ready be good at the following

Basics 0 – This is the basic toolbox as an engineer

  • Be proficient in your favorite IDE (Visual Studio Code seems to be the most popular right now) – my personal favorite is still VIM.
  • git – be comfortable with simple git workflow, and also how to fix merge conflicts, branching, squashing and stashing
  • docker – For the modern development company and also for you to be able to collaborate with your co-workers in CI and for you to share your work, you need a way for others to repeat the work you’ve done.

Level up 1

  • Python – Being able to quickly script together a solution is a must to be a productivity engineer, even if it’s just to help yourself automating your work.
  • Javascript – If you only had to learn one language, learnin JS. Which people are able to build backend and frontend applications.
  • Golang – Golang is used to build backend API’s and systems that need more distributed work
  • C++, Java, Rust, Ruby – These are nice to have and it’s company specific. So you might need one of these dependent on the company you join.

Level up 2

  • React – This will allow you to build UI apps
  • HTML/CSS – Only Frontend engineers need to work at this level
  • Continuous integration – While this is not cool and sexy technology, not being well versed in Gitlab CI, Github actions or Jenkins will limit your growth in daily troubleshooting and your ability to help your team.
  • Automated testing – Unit, service, cypress.io UI testing
  • Kubernetes – This is defacto standard in running the services you’ve build. Not knowing this will drag you down as you build more services
  • Package managers – If you use Javascript, get good a NPM. Java -> Maven. etc

Level up 3

  • AWS – most companies will abstract you away from AWS, unless you work in the infrastructure teams
  • GCP, Azure – After learning AWS, then you can invest in learning one of these cloud providers
  • Security – Having deep knowledge in security will give you a leg up, but it’s a specialized skill

Specialize positions

  • If you work on native mobile apps – Swift, Java or Kotlin is neccessary.

I’m sure I’m missing a ton of needed skills, ping me on http://linked.com/in/tonytamsf

Published by Tony Tam

Senior Engineer Manager, Engineering Productivity @ Splunk, ImpactfulEngineer.org & SFBadminton.org