The T-Shaped Developer

Tips to becoming a well-rounded engineer

Another Sunday, another day of learning how to be a better engineer.

I recently came across a new (to me) term that resonated with me heavily.

The T-Shaped Developer

A T-Shaped developer is a developer who has deep knowledge of one discipline (test, development, DevOps, operations, etc.), but obtains a breadth of cross-discipline competence. An engineer who obtains these skills will become more versatile, therefore more valuable to the company that they work for.

What should you learn to be a T-Shaped Developer then?

Deep Knowledge of One Stack

I believe diving deep into a single technical stack is critical for any engineers success. This is the first step. I cannot express how important this is. Bouncing between disciplines every 6 months to a year will make it difficult for you to grow.

I recommend knowing a technology (or two in some disciplines) in-depth. Strengthen your abilities there and have a core foundational knowledge.

The Stacks in the T

Test Engineer

Test engineers are essential for ensuring the quality of the software. They design, develop, and run tests, identifying bugs, issues, or areas of improvement. Their goal is to ensure that the software performs as intended and meets the set standards.

UI & Design

UI & Designers are responsible for crafting the user interface and user experience of a product. This involves understanding user requirements, creating design mockups, and implementing the visual and interactive aspects of a software application.

Backend Engineer

A backend engineer works on the server-side logic, databases, application integrations, and ensuring that data is delivered to the frontend. They design, develop, test, and maintain the core computational logic behind a software application.

System Engineering

Systems engineers are concerned with the larger system architecture, including the design, development, and integration of multiple subsystems. System engineers ensure that all parts of a system interoperate correctly and efficiently.

Analyst

The analyst focuses on analyzing data, requirements, or system behaviors to draw meaningful conclusions. They can provide insights into software needs, performance bottlenecks, user behaviors, or business trends.

You will see these personas all over an IT department. Having the skills to coordinate with these different personas will help you elevate your own skillset & skyrocket your career.

Let’s take me for example…

I started as a backend engineer. I wrote Python in the beginning. After Python, I dove deeper into different backend stacks. I became proficient in Java, C#, and Node.js. I learned frameworks like Spring, .NET, Express, and Nest.js in-depth. I learned about databases, connecting to them, and running queries. I learned REST & GraphQL APIs and implemented them into my applications. I’ve worked with file systems and blob storage. I had a deep knowledge of the backend.

But there was something missing…

I didn’t quite understand how things worked together. I dove into the frontend learning Angular (through work projects nonetheless!). I was able to understand the complexity of moving data between the frontend to the backend. Through this experience, I was better able to relate to UI & Design engineers frustrations and troubles.

After that, I dove into DevOps after a move within my organization. I would say that in the T stacks above, Systems Engineer is synonymous with DevOps. I learned more about infrastructure as code, scripting with bash, PowerShell, Go, and Python (yay Python again). I learned how to build pipelines. Building pipelines allows you to truly get a birds eye view of the application. I began to understand all the nuances of the infrastructure, build mechanics, and deployment process.

At this point, I’ve been in the DevOps space longer than I was in backend, but that knowledge is still retained. I am still able to discuss backend issues with colleagues. Their issues help me get a better understanding of the system as a whole and we can mutually benefit through the diverse expertise between us.

Did you notice something..?

I’m still not quite there yet on the analyst & test engineering side.

And that’s okay. The time will come where I dive into these aspects. For now, I’m still digging deeper into DevOps. I want to have double the experience I had with backend development.

There’s always room for expanding your skill set down and across.

I hope you enjoyed the story this week. It was refreshing to tell it here!

I’d like to mention one other thing…

If you’re just starting out, or even an experienced engineer, I would highly recommend writing about what you learn and your journey. It has helped me immensely! If part of that writing process looks like a newsletter, I’d highly recommend beehiiv. It’s what I’m using to send this email to you today. It’s free to get started!