Loss of the (Professional) Identity
In the last 5 years I have been jumping between different roles. I joined my current company as DevOps engineer to work with Ansible, Hashicorp Stack, and AWS. A year later, I moved to the Cloud team and started working as Backend engineer to develop with Django and FastAPI and deploy in AWS. I love the diversity of the tasks in my current job. A nice mix between coding, DevOps and Cloud infrastructure.
However …
At some point I couldn’t give myself a title, am I Backend Engineer, Cloud Engineer or - based on my side projects - Fullstack engineer?. I had this question for some time, until recently.
At some point, I was overwhelmed by the feeling that I don’t have a professional identity. At the beginning of my career I always had a specific title with specific scope. Having blurry scope is uncomfortable.
So I decided to go back to the basics, what does it mean to be a Software Engineer?. I looked at the SWEBOK (Software Engineering Body of Knowledge) but I didn’t find any mention of a specific domain (DevOps, Backend, Frontend … etc) instead the guide focuses on the principles and practices that construct the science of Software Engineering. The ISO/IEC/IEEE SEVOCAB (Systems and Software Engineering Vocabulary) has two definitions for Software Engineering:
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software
The practical application of scientific knowledge to the design and construction of computer programs and the associated documentation required to develop, operate, and maintain them
Both definitions deal with software development and maintenance but doesn’t care whether it’s Frontend or Backend … etc. Simply, because these principles are applicable to any kind of software development.
Thinking about these definitions made me realize how far I went into the trap of details. The category of software development, the programming language, which IDEs, these are all tools and part of a big picture, there is much more. It’s easy to get lost in the hype and forget the big picture. The principles of software engineering is the big picture, and solving the real world problems is the bigger picture.
This realization brought me inner peace. The answer I got so far:
My focus should be building the mindset to decide which tools to use and which principles to apply to solve problems efficiently.
I shouldn’t tag myself with a specific domain, I should be flexible and open to learn anything that can help on applying software engineering.