To Be An Engineer is to be Able to Work in Any Tech Stack
Tags: engineering, learning
Published: 2024-03-26 12:38:47

---
title: To Be An Engineer is to be Able to Work in Any Tech Stack
published: true
date: 2024-03-25 00:00:00 UTC
tags: engineering, learning
cover_image: https://www.jakehayes.net/blog-images/tech/2024/pine.jpg
canonical_url: https://www.jakehayes.net/blog/engineering/2024/to-be-an-engineer/
---

I have been getting ever closer to being a software engineer for a full decade now. And there's one thing about the near-infinite stream of recruiters that has been bothering me for years. The question of 'have you ever worked in X technology before?' and the immediate disqualification if I haven't worked many years in the entire stack.

I completely understand the instance where I have not worked in keystone technology and they are looking for me to lead a team with the best practices. I am referring to the instance where the upcoming tech stack is 'backend in A, frontend in B, using the event streaming/queueing system C, hosted on cloud service D, and database E', and I have experience in all those except cloud service D. So, I am not a good fit for the role.

I am a software engineer. There are too many technologies out there in the wild for me to have used every single one of them. My strength is the ability to learn things I am unfamiliar with on the fly.

## I do love some tea 🍵

I strongly believe in the concept of the 'T-Shaped' developer. Throughout my career, I have worked in a wide array of backend tech stacks, and rarely have I done the same one twice. Yet, I have worked in React as the frontend tech for almost all those. So my depth of knowledge comes with React on the frontend, but I still have a breadth of knowledge in many backend stacks.

**Constantly learning and being able to learn are foundational to this career.**

## My Time in Consulting has Trained Me 🏃‍♂️

As of this writing, I have spent half my professional career as a consultant. The biggest difference I have personally experienced between the two is while consulting, multiple times I have been asked if I have ever used Technology X. And when the answer to that is no, I need to have a very strong foundation in it within a week. This happened with Java Spring Boot, this happened with Kafka, heck, this happened with COBOL.

When that happens there's only so many things you have time for. You don't have time to whine or whinge or complain about how you don't like something. You master the skill of getting your feet under you and trying to get a passing knowledge of [the most important 20%](https://en.wikipedia.org/wiki/Pareto_principle).

## You get better at this with time 🕰️

Most of the highly used, enterprise level software languages are [C based](https://en.wikipedia.org/wiki/C_(programming_language)). That makes picking up a new C based language that much faster for every one. There are common patterns and principles in the world of software that you see across systems and technologies that make it easier to learn new things as you go. Your brain recognizes those and can help you speed up over time.

Learning is a skill by itself. The more you learn, and figure out what works best for you, the better you get at learning. As with every other skill, your brain can make shortcuts.

## Conclusion

Being an Engineer is about more than being a 'code monkey' to borrow a phrase from my college professor. Even the worst of the current LLM's can make a React App. It's about more than that, it's about translating half-baked, flawed requirements from someone in the business into actual usable software. Don't just sling code around, be an engineer.