My journey becoming a Senior Software Engineer
I’ve been working as a Software Engineer for a little over 6 years already and I have come along away to actually consider myself a “senior” software engineer (I still don’t, to be honest. There is so much out there to learn). Battling imposter syndrome, moving countries, and finally accepting that I didn’t have enough experience yet to be called a senior engineer, here I tell you my story.
My journey began with my first job at Akdemia, I was required to do an internship in order to get my CS degree so I started as an intern for building their android app from scratch. At the time I was the only android developer so my learning was mainly from online courses and Youtube. During this time I also had the opportunity to get into Ruby On Rails and work on building and maintaining REST APIs. We used SCRUM and had most of the ceremonies. I was also in close contact with one of our clients so I learnt a lot about how to communicate with stakeholders.
After 2 years in Akdemia, I decided to move to Spain to study for a Masters in Data Science. Even though I had already 2 years of working experience, coming to a new country meant almost starting from zero. At the time you had to gain some “trust” from local companies, and landing on your first job was challenging.
Thanks to my masters I was able to find an internship as a Data Scientist at Jeff (former Mr Jeff), where I was working with python generating reports for their KPIs and even building a very simple product recommender. I learned a lot from my colleagues there, some of them had 10+ years of experience and really helped me understand how things worked in Spain, at the same time they advised me what I could learn so I paid close attention to what they were doing: Docker, Kubernetes, micro-services, etc and started to learn them on my own.
Once my internship was over I switch to another job where the team was very small, and by small I mean it was only me. They needed to build an android app, a full backend, define the deployment process and apply some agile methodology, I had to do this on my own and it was a great challenge. I managed to build the backend with Ruby On Rails, PostgreSQL, Docker, and an android app that was initially built in Java and later on migrated to Kotlin, which needed to connect via Bluetooth to some hardware to control it. I introduced Slack as a communication tool and PivotalTracker for project management. I also worked closely with the CEO, the designer and the content creator which helped me improve my communication skills.
Later on, I joined a new company that did projects for third parties and I was involved in multiple projects. I learnt Django and improved my python skills. Unit testing was mandatory (as it should) and we would always try to deliver to the next level. I also had the opportunity to manage our AWS and after a while, I could deploy new apps in minutes using Route53, RDS, S3, EC2, LoadBalancer, Lamba functions, etc (I must admit AWS docs are probably the best I’ve ever read). Another project I was also involved in was built in Ruby and Grape Framework, I also learned a little about elasticsearch and React.
Finally, I joined XING, where I can say I’ve learned the most. Not only I’ve put into practice everything that I learned in the previous years (Ruby, Rails, testing, Agile methodologies, Docker, Kubernetes, etc) but I had to put everything into a bigger scale. With millions of users and even more requests per day, I have learnt how things work in a big company. At XING, we use AMQP messages to communicate between services, Docker and Kubernetes as part of the architecture, and Rails for most of the apps, but we also have services written in Java, Kotlin, Elixir, GraphQL, etc.
I’ve learned how the communication process works in such a big company, how to communicate with the Product Manager and other stakeholders. I even started participating in conferences and doing public speaking.
I wrote most of this article a few months back when my manager told me she proposed me for a promotion, only today I received the letter confirming it.
Back in my early years of work I thought becoming a senior was a matter of how many years you’ve worked as a developer but I learned this is not entirely true. Seniority comes with meaningful experiences, and while time probably contributes to finding these experiences, they’re not necessarily linked. Today I’m happy to have taken the risk to find myself those experiences and get the most out of them.
This is definitely the beginning of a new journey, new learnings and of course many more experiences.