717 words
4 minutes
Growing as a software engineer

Many software engineers face a common dilemma at some point in their careers: a feeling of stagnation or lack of growth. I will discuss what I think is helping me go over this. It’s not based on science or anything, just my experience.

Prior to starting my first job, I was still a fresh grad, at that time I joined a couple of local and global communities, and this allowed me to be exposed to a set of skills I wouldn’t normally have if I just got into a job. Being part of a community, organizing and hosting meetups, speaking and preparing content, leading a team, speaking to sponsors, dealing with different personalities… etc, and many other things I didn’t imagine would be required in order to grow a local community group!

As one of the early organizers of a GDG (Google Developer Group) in Saudi Arabia, I learned firsthand the importance of leadership. Our goal was to establish GDGs in major cities, and that required leaders who could inspire and motivate others. The key trait shared by successful leaders in our community was their initiative and leadership skills.

Becoming a leader early in my career boosted my confidence and resilience. It gave me the courage to express my opinions in meetings with experienced professionals. It also teached me the importance of being reselliant in overcoming challenges, hard problems and human conflicts within the workplace.

Many people underestimate the value of activities like building communities or public speaking. They might argue, “What’s the immediate return? I’m not being paid to spend that time. I’d rather learn a new language or tool.” However, these activities are long-term investments in your career. Just like financial investments, the immediate return may not be significant, but over time, the value can grow exponentially. I personally view everything I do “for free” as an investment in myself, my social skills, my network, and more.

Now, let’s talk about the growth you’re probably looking for: becoming a senior software engineer. Reaching seniority isn’t solely measured by the number of tools you master or projects you’ve completed. While technical experience is important, the soft skills that differentiate developers are often overlooked.

Who is a “senior” in a team environment?#

A senior isn’t necessarily the oldest or most technically skilled person. Instead, they are the individual with strong leadership and influence. If you’re stuck, a senior should be able to help you, not by solving the problem directly, but by guiding you in the right direction, inspiring new ideas, and pushing you forward. A good senior won’t make you feel bad for not being able to accomplish your assigned task.

When a team faces blockers or deadlines, a senior can identify the root cause, reallocate team members, create an action plan, and mitigate risks. These skills are not achieved by isolating yourself.

Having a depth while maintaing breadth#

Since I started the first half of my career as a Flutter developer, I will tell this section from that angle, however it applies to everyone no matter the niche you choose. I learned Flutter and got my first job in it, and most of my contributions publicly were related to Flutter. While I admire this tool, and have reached a sufficient depth in it, what about my breadth?

After 2 years of doing mostly Flutter and mobile development, I started venturing into other domains and technologies such as web development, cloud, and even machine learning. This exploration wasn’t just about adding new tools to my toolkit; it was about expanding my perspective and understanding how these different domains connect and overlap.

Maintaining a balance between depth and breadth is essential for long-term growth as a software engineer. In essence, as you grow in your career, don’t be afraid to venture outside your comfort zone. Embrace new technologies, explore different domains, and always be on the lookout for how you can integrate these new learnings into your existing skill set. This combination of depth and breadth will make you a more well-rounded, resilient, and innovative engineer.

Final thoughts#

Your path will be unique, and while I’ve covered key aspects, remember that individual experiences and career paths vary. My final advice is to invest in both technical skills and soft skills. The benefits of strong interpersonal skills, communication abilities, and leadership qualities are often underestimated but can significantly impact your career trajectory.

Growing as a software engineer
https://mais.codes/posts/growing-as-software-engineer/
Author
Mais Codes ✨
Published at
2024-08-24