Are You Building a Winning Engineering Career?
My 8-year-long journey will help you decide…
Embarking on a career in software engineering is like constructing a building from scratch. Each decision, from choosing the right tools to laying the first brick, sets the tone for the entire structure. My journey started eight years ago, with a passion for technology and a determination to excel in the fast-paced world of software development. It was a path that demanded not just technical prowess, but also a deep understanding of the principles that anchor successful software projects.
Embracing Core Principles
The early stages of my journey involved immersing myself in the core principles of software engineering. I learned that, much like a building’s foundation, these principles are crucial for long-term success. Embracing concepts such as the SOLID principles (Single Responsibility, Open-Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion) was instrumental. These concepts provided a robust framework that guided my approach to coding, design, and architecture. It was a realization that technologies and frameworks might change, but the underlying principles remain constant, offering a compass in a rapidly evolving tech landscape.
Growing from Junior to Senior
Progressing from a junior to a senior developer was akin to adding layers to a building, each representing a new level of complexity and responsibility. As a junior, my focus was narrow and primarily centred on learning and applying technical skills. However, the senior role expanded my horizons. It wasn’t just about coding anymore; it was about leading projects, making architectural decisions, and mentoring others.
This transition also meant a shift in problem-solving approaches. As a junior developer, I often sought quick solutions, a common trait among early-career professionals. As I grew, I learned the importance of deeply understanding the problem before devising solutions.
It reminded me of Einstein’s approach:
“If I had an hour to solve a problem, I’d spend 55 minutes thinking about the problem and 5 minutes thinking about solutions”.
Developing Soft Skills and Personal Growth
Developing soft skills was like working on the building’s interior, ensuring it was not just functional but also conducive to living. Initially, I focused heavily on technical skills. However, I soon realized that soft skills such as communication, teamwork, empathy, and problem-solving were equally important. These skills were not just about making the workplace more pleasant; they were essential for effective collaboration, conflict resolution, and leading teams. They also helped me articulate my ideas more clearly and build stronger relationships with colleagues and stakeholders.
A short story…
Facing my fear of public speaking was a significant step in my personal development journey. Instead of avoiding it, I chose to confront it head-on, understanding that overcoming such challenges is crucial for growth, however scary it felt!
The defining moment came during a work presentation where I had to share plans with a substantial audience, including around 100 colleagues and top-level executives. Initially, the idea of speaking in front of such a large and influential group was intimidating. However, I realized that if I didn’t embrace this challenge, I would limit my progress.
To prepare, I practised a lot, going over the slides multiple times, watching videos to ensure that I used the correct hand gestures and pausing at the right moments. I found this video to be super useful, and I highly recommend it to all of you.
When the day arrived, my hard work paid off. The presentation went incredibly smoothly, and the positive feedback from my audience was not only validating but also incredibly empowering. I didn’t stop there. In the subsequent quarter, I voluntarily took on the same presentation, eager to build on my success!
Managing Stress and Avoiding Burnout
In my journey, managing stress and avoiding burnout was akin to weatherproofing the building. There was a time when I believed that working long hours and constantly pushing myself was the key to rapid success. However, I soon realized the importance of balance, echoing Jeff Bezos’ perspective on work-life harmony. This realization led me to adopt practices that helped maintain this balance, like setting clear boundaries, prioritizing tasks, and ensuring time for relaxation and hobbies.
I have curated five key questions to help you evaluate and adjust your professional path:
- Are you working effectively and not just efficiently?
- Are you solving the right problem?
- Are you talking to the right people in the company and are they on my side
- Are you helping others make progress?
- Are you developing the right skills that align with my career goals?
By regularly asking yourself these questions, you can adjust your approach and build a fulfilling and sustainable career path.
Embracing Continuous Learning and Adaptation
Staying current with the latest trends in software development was like continuously renovating and updating the building. Embracing new technologies and methodologies was crucial for my growth and relevance in the field. When I started my career I was open to working on any technology that allowed me to work on Backend, and Android, and learn many languages like Kotlin, Go, and some Scala.
Over the past two years, I’ve dedicated significant time to product engineering, allowing me to gain valuable experience in conducting A/B tests, improving my product strategy skills, and understanding the importance of defining our target audience and measuring our impact. Additionally, I’ve also been developing my leadership abilities throughout this rewarding journey, and there’s always more to learn and do.
Collaboration and Mentorship
An integral part of my journey was contributing to the larger community through collaboration and mentorship. I learned that sharing knowledge and working together on projects not only helped my colleagues but also fostered a positive and productive team environment. This was a paradigm shift from trying to do everything myself to understanding the value of delegation and teamwork.
As Simon Sinek wisely put it,
“Leadership is not about being in charge. It’s about taking care of those in your charge”.
Reflection and Continuous Growth
Regular self-reflection was like inspecting the building for improvements. This process involved asking myself challenging questions about my effectiveness, problem-solving approach, and alignment of my skills with my career goals. Overcoming fears, such as public speaking, and transforming them into strengths became a part of this reflective process.
My journey in software engineering has been a blend of continuous learning, resilience in the face of challenges, and the joy of building and creating. It’s a path of perpetual growth, where the only constant is change.
As I look ahead, I am excited about the future opportunities in this field.
Thanks for reading!