Looking back to connect the dots
Introduction
Today I woke up and I realized that I have been working in the software industry for more than 10 years (To be more exact 👴 14 years now). I have seen many people grow in their careers, and I have always been curious about how they did it, everyone has a story to tell. I have read many articles and books about this topic, I have worked in different industries, and changed the career path a few times, so finally I want to share with you some of the lessons I have learned from my career.
The beginning
Software Test Engineer: The old good 2000`s
Since I started my career I wanted to write code (I’ve always consider myself as a self-taught person), however for someone without experience nor a degree in computer science, it was hard to get a job as a software engineer in 2006
. I started as a Software Test Engineer for a Company of Financial Services
, making sure the Cobol
applications were working as expected, while I was working to type faster
, learning DOS commands
, reading books about C++
and Java
, understanding how the slow Internet
worked, meeting people with random nicknames
in a IRC with proud hackers
, and trying to understand the Linux
world, and playing with JavaScript
, CSS
, and HTML
.
At that time knowing how to code in Java
and PHP
was a trending topic in the world, we didn’t have the clear concept of Frontend
and Backend
, we were just developers
or programmers
, probably life was simpler back then.
After that I grew up becoming as a Semi Senior Test Engineer
in a Payments industry
, working with Java
, Maven
and moving to the web world
, playing with Selenium
to automate some flows, Jmeter
to test the performance of the applications, and Mantis
to report the bugs. I still had my desire to move to the development world
, so I got the Java Programmer
certification and a few months later I got my first job as a Software Development Engineer
.
Software Development Engineer: The new era
After getting my first job as a Software Development Engineer
in a Ads and Marketing industry
related to real-state
, I learned about many ways to the job working in a dynamic team and a fast pace way. I ended-up working late many times, refactoring code, reading other’s code, learning from mistakes like going to production without testing, fixing things on production, having scripts to fix things directly in the database. Probably at that time the things were not as organized as they are now, and I thought the Agile
methodology was a joke.
Moving forward I found new opportunities on the road, I started working as a Semi Senior Developer
in a Health Care
industry. This time the things were better, working with talented people, learning about Design Patterns
, many JavaScript concepts and understanding how jQuery
worked. I was amazed to work with such a talented team, that I felt the first time about the Impostor Syndrome
.
Quickly I learned about new ways to deliver code, to have a proper testing review, agile stories described using BDD
, versioning, changelogs and for the first time I was working as a proper Full Stack Developer
creating full end-to-end features, however I had the feeling that I was missing something, and it was the opportunity to work in another region of the world.
Leveling Up the career with English
In 2014
I realized the only way to grow in my career was to learn English
, so I started learning by myself with Youtube videos
, practicing Duolingo
, reading books
in English, and watching movies and tutorials
with subtitles, just to accelerate the learning process. After that I started taking Interviews
in English with the shame of not knowing how to speak properly, and sometimes I felt frustrated about my bad pronunciation. After a few months of consistency I got my first job as a Senior Software Engineer
in a company with presence in the Digital Agency World
.
At this company everything was different, the people were more talented, the projects were more complex, the clients were more demanding, the challenges were bigger and the salary higher. I had to speak often in English
to give my status in the daily meetings
, present the demo
to the clients in the end of each sprint
, I was working closely with the Product Owners
, Software Architects
, QA Engineers
, and a lot of talented people in some internal communities, and to sum up, I was mentoring some Junior Developers
and Interns
.
When I had the opportunity I moved from the Back End Role
to the Front End Role
which I enjoyed more, mainly because I loved to see the interaction on every web application and feel how my work contributed to an amazing user experience
to the clients, and at the same time I was creating something beautiful and useful on top of technologies such as Nodejs
, Express.js
, Backbone.js
, MVC patterns
, bundlers
, pre-processors
and different levels of testing
.
Don’t settle, be bold
After almost two years of working, learning, growing, and sharing my knowledge, I realized the my it was time to keep moving forward in the Career path
and take new challenges, so I moved to another company as a Software Developer
in a similar industry, but shortly I got a better and unique opportunity to work as a Full Stack Specialist
in an almost green field project
for a company that was just acquired by a big company in the Financial
industry.
Working for a bank at first glance seemed strange, but it was not just a bank, it was a startup
inside a bank, and the project was to create a Digital Experience
from scratch, so I was part of the Core Team
that was responsible to create the Front End
and Back End
of the Digital Experience
for customers. I was working with the Product Owners
, Software Architects
, QA Engineers
, DevOps Engineers
, Security Engineers
, working with global teams, coordinating with the UX Designers
, Business Analysts
, Project Managers
, and Stakeholders
.
At this time working in a product based project
I learned many things related to Product Experience, User Experience, Design Systems, Docker, Security, Processes, Compliance, Monitoring, KPIs, OKRs, Agile Teams and how to work in a cross functional team
, working in a defined domains, creating Microservices
architecture that could be used by many applications, and later on creating Micro Frontends
that could be used by many teams. It was a great experience to work in a Digital Transformation
project, and I felt that I was part of something big, I was part of a community leading the Front End
part with Angular
and other technologies such as Nodejs
, TypeScript
, Reactjs
.
Time flights when you are having fun, and after a few years working in this project, I was promoted to Senior Advanced Software Developer
, and then to Software Architect
, I think I was living one of my dreams and greatest goals in my career, and I was proud of myself, but I knew that I was missing something, and it was the opportunity to work in another region of the world.
Moving to another country and starting again
During COVID
time when the world was locked down, I got an opportunity in the same company to work in Canada
, at that time I had another offer from a Germany
company with a bigger role, however, I thought that working in an English speaking country would be better for me, the only downside was that I had to start again from the Software Developer
role, but I thought it was a good opportunity to learn new things, meet new people, and grow in my career.
In February 2021
, I finally moved to Canada working as a Software Developer
, I contributed to Design System
and using my skills in Front End
, Back End
, Architecture
, negotiation
I had the challenge to run a Global pilot project
to promote the Software Reusability
in the company, and I was part of the Global Team
working with people from different countries, and I was proud to be part of the Global Community
.
In order to work in a Global Team
I had to learn more about Time Zones, Cultural Differences, Communication, Remote Work, DevOps, KPIs, OKRs, prioritization, and how to lead by example, creating a Community of Practice
to share knowledge, reading a lot of InnerSource
, identifying pains or challenges from other teams/regions, and finally understanding more about the Business
and the Company Strategy
, reporting to Managers
, Directors
and VPs
.
By time that I’m writing this article I’m working as a Senior Software Engineer
in a Global Team
, helping to improve the Developer Experience
, promoting the Software Reusability
, writing technical documentation and helping teams in some Large, Distributed and Global projects
.
Connecting the dots
In summary looking back and connecting the dots I have:
- Worked as a Tester Functional Engineer, Automation Tester, Back End Developer, Front End Developer, Full Stack Developer, Tech Lead, Software Architect, junior many times in some fields, but also mentor of many people.
- Been in different industries such as
Financial
,Payments
,Ads and Marketing
,Health Care
,Digital Agency
,Financial
,Bank
,Digital Transformation
,Global Team
. - Learned there are some pillars, fundamentals and principles that don’t change very often, while some technologies, frameworks, libraries and tools change every week and use different names.
- Failed many times, but I learned from my mistakes, and I tried to improve myself every day.
Right now I’m learning about how to become a Staff Software Engineer
, and I’m pretty sure the dots will connect in the future, and I will be able to share more lessons learned from this path, however, after connecting the dots I also realized that I have some regrets that probably could have changed my career path, and I want to share with you some of them.
My regrets
I wish I had …
- … started to
write code
earlier. - … finished many of my
side projects
in my Github account. - … learned
Data Structures
andAlgorithms
earlier. - … learned about
Design Patterns
earlier. - … kept writing articles and sharing my knowledge with the world.
- … started to learn
English
earlier. - … started to learn about
Docker
andKubernetes
earlier. - … learned how to
manage my time
and speak inpublic
earlier. - … learned how to
negotiate
andlead
earlier. - … learned about
Cloud Computing
earlier. - … mentored more people and learned from them.
- … given more
talks
andworkshops
inconferences
. - … documented more about my
career path
andlessons learned
.
I know that I cannot change the past, because that past made me who I am today, however, after connecting the dots I can influence the future
and change
the present
, so I will keep learning, growing, sharing, and connecting the dots to become a better person, a better professional, and a better leader.