This text is a summary (quite long by the way… maybe even boring… and a bucket of cold water!) of my career. All opinions/reports written here are the sole responsibility of the author (that is, me, @André).
I chose Computer Engineering as my course due to lack of options 🤭. I was terrible at Portuguese and terrible at biology, so I had to do something related to exact sciences. Initially I thought about doing Electrical Engineering but a mid-year entrance exam came up where there was a Computer Engineering course. I did it, I passed, I got fucked 🤷.
When you graduate in Computer Engineering (in my time, 2011), you have two choices (in Brazil):
Working with hardware (very limited market opportunities)
Working with software development (a market that at the time paid little and was scrapped! But there was a job!)
That's why there's "I got fucked"!
At the end of college we have a mandatory internship where I joined a company (in Espírito Santo) of the "Software House” type (makes any type of software). The team I joined supported a port control system for a company in the Pulp area .
System/team summary:
C# AspNet
SQL Server
All softwares was OnPremise (na infra do cliente)
Team of 2 people
1 Senior dev: Business Knowledge
I intern
Test coverage? What is it…
Manual Deploy
0 observability
Things I had to learn
It was my first experience with real code (C#)
Dealing with orders from my superior (senior dev)
App business rules
Manual Deploy
Code versioning by MS SourceSafe (first contact)
I spent about 8 months at this company
6 mandatory internship
2 as hired
I decided to leave for two reasons
Company delayed salaries
I realized that I wasn't learning at the speed I wanted⭐
Tip ⭐: Prioritize your knowledge! I was young and had no reason to be stuck in a place with low salary, had no future prospects and most importantly, didn't improve my knowledge.
Tip ⭐: In the short time I stayed there, I realized that the cellulose area in Espírito Santo was very active and had an interesting market. Based on this, I thought that my little experience in the area and being a recent graduate could give me some advantage in companies that had/worked for companies in this sector. In other words, it is very important to map the market we are in and how we can use our experience to take the next steps.
I went to a company called Inflor focused on forestry management (pulp market). I joined a team that worked with GIS (Geographic Information System). Where I had to learn completely new things (maps, geographic conversion...) and work with all types of development: web, desktop, mobile and collectors (Windows CE). I grew at a very fast but gradual pace, without skipping stages! ⭐
Tip ⭐: There's no point in going from junior to full-time without having the skills to fully support yourself. Demands increase and your perception of contribution decreases. You start delivering less and being charged for it. This means you lose your self-confidence and take unnecessary risks. Gradual growth is essential for you to become a full-filled professional. Gradual growth is not slow, it depends on you being able to reach stages (goals) at the speed you want to grow!
I started at Inflor as a trainee, in a team of 4 people responding to calls/bugs in the GIS system of various clients (CMPC, Fibria, Montes Del Plata and others). In other words, I had daily interaction with customers, exchanging phone calls and emails. This gave me conversational skills, combining estimates, understanding the real need for what we built and in addition to guaranteeing quality of delivery (if I delivered something bad, the client would call me straight away complaining).
All of Inflor's deployments were manual and this bothered me a lot. I tried several times to improve this process, but it was a very embryonic topic at the time and we had very few tools and the company didn't want to make an investment in it ⭐. The company's systems were OnPrem in client environment, so DevOps tools became complex as they depended on the customer's infrastructure, and the Cloud at the time was almost non-existent.
Tip ⭐: I didn't let the company's “no” kill my curiosity, I continued studying DevOps and how to apply it. Today it is a preponderant subject in any software company!
Over time I started to deal with bugs at a speed much higher than expected for someone who has only been with the company for a few months and as a result of this, I received my first promotion (Junior Developer Analyst). I started to participate in the creation of new features in addition to continuing to work on bugs. I made several performance improvements, proposed the development of design patterns⭐. And everything started to flow positively, we had 5 codes, one for each client. I switched to just one code base just by applying design pattern. This brought a huge benefit to the maintenance and build of our application. That's when I received my second promotion: Junior Developer Analyst 2 (at Inflor there were ladders within one level).
Tip ⭐: Never stop mastering what you do every day. I was a junior who coded all day, so in my mind, I needed to be really good at it. I always researched (and researched) a lot on YouTube and technology blogs what was trending topics and tried to delve deeper into it. An example that marked my career was that, in college, I learned Object Orientation in a very limited way and it never made sense to me, despite applying the language daily. It was in one of my studies that I discovered Design Patterns and how it would help structure my codes. I started applying it and it made my life a lot easier!
My deliveries started to bring more and more value, I left the support part completely (I had already acquired significant knowledge of the business and had already made a lot of improvements to the structural code in the projects) and started working only on new features. This put me in direct contact with more senior people where I was able to absorb as much technical knowledge as they could give me ⭐.
Tip ⭐: Learn from your peers, this is the biggest tip in this document!
This gave me more and more architectural knowledge until the company entrusted me with the creation of a new feature. I had to talk to the client, understand their needs, set deadlines, think about how to develop, deploy and train. Anyway, everything. It worked out. And this started to be part of my daily life and the responsibility increased. As new deliveries directly impact revenue, I received my third promotion: Junior Developer Analyst 3. I started giving training to clients (because I estimated/raised/developed the features, so I had the knowledge of the whole) and this was a breaker in my career, because This enabled me to not only be a DEV, but also a person who knew how to deal with the pressure of generating, delivering a satisfactory, well-appreciated delivery and training users. And by doing this well, I was increasingly noticed ⭐ in the company and this gave me my fourth promotion in 1 year: Full Developer Analyst.
Tip ⭐: Get noticed. Make outstanding deliveries, be recognized by your customers, generate value
Growing quickly is not a matter of moving up positions quickly, but rather being prepared to take on responsibilities and handle them! The position comes automatically! ⭐
Tip ⭐: If you feel stagnant, reflect: are you generating value? Or is the company just picking on you and not wanting to promote you? I'm a positive person for the world and I don't believe that companies don't promote people because they don't want to. You need to generate value ($$)
And this was increasingly common in my career, Inflor sent me abroad to implement projects and train users because they trusted my work. I left there with 8 promotions in 2 years. And I decided to look for new opportunities, not because the company wasn't good, but because there was nowhere else to grow. I had already reached the biggest position within my team and I only had partners in a position above my position.⭐
Tip ⭐: Know when to leave, in my case I had nowhere else to go. It was a move to stay in this position until I became a partner or looked for a new challenge that would give me more opportunities.
I went to Halliburton (Multinational Oil&Gas service company). I made this move because Inflor (as good as it was) didn't give me more prospects for professional growth, so I looked for a market that moves a lot of $$, believing in the possibility of developing myself further. I spent 7 years working with everything possible, more than 20 projects (delivered and not delivered ⭐) in different technologies for different clients.
Tip ⭐: It's normal to feel frustrated by projects that didn't work out, however, make this a lesson learned, use what went wrong in these projects as a lesson to correct the course in the next ones. And remember, just like us, the company also makes mistakes.
I had my first contact with cloud and DevOps. I worked with multi-ethnic teams (Indian, Pakistani, American, Vietnamese and Brazilian). And always in the same vein as Inflor, creating projects from scratch (no more features) that generated value for the end customer. I started to be recognized for my deliveries and gradually grew. I didn't experience exponential growth like I did at Inflor, also because it is a much larger company (42k employees today, in my day it would have been in the range of 70k). And with that came a lesson: it's one thing to grow in a small company (0-200 employees) where it's easy to get noticed. How do I get noticed in a big company? Unfortunately or fortunately (I don't know 😄) there is politics at every level of society, including in companies. You need to understand how things work in the business environment/industry you are in:
What are the company's main projects?
Who are the managers of these projects?
Who are the most noticed people?
What did they do/deliver?
How do they publicize themselves?
After 2 years at Halliburton, I learned this, and started interacting with people who, in my opinion, delivered value to the company. I started looking at the projects that brought the most $$ to the company, I tried to participate in them, and obviously make deliveries that contributed to generating impacts. I started to become a reference in technical knowledge and some products within the company. And that gave me the growth I expected.
Note that I didn't comment on anything more “technical”, the technical aspect is preponderant but when you go through different projects/experiences it becomes part of you and is used daily at its highest level of quality wherever you go. And this contributes to your self-promotion! However, your “organizational” skills become equally preponderant. You can do incredible work but without publicity, it will not be recognized by the “right” people!
The more you grow (expand) the more impact you have on the people around you. Do you want to be noticed? Do the people around you notice you? Do you notice your work well done?⭐
Tip ⭐: Make a difference where you are, then start expanding! Your growth has to come from you. Don't wait for the company to direct you, the career is yours and the responsibility to give direction to it is also yours! The company can make your path difficult and then it's up to you to decide what this company can give you. Does it make sense to stay?
In my last year at Halliburton I took on a more horizontal position where I had experience with managing/structuring teams. And that gave me a vision of another career that I could pursue. Moving away from project execution to something broader like how to make teams perform, which projects are most strategic for the company, who are the key people to make things happen. In this new role I had to worry about the company's strategy and take the teams in the right direction (for the company). However, I never stopped being a technical reference, so I always helped the teams on a daily basis!
After almost 8 years at Halliburton I needed new challenges. Leaving a large corporation and moving to a more dynamic environment of a Startup. ⭐
Tip ⭐: It is important that the company's direction is aligned with your career perspective. Never be that sailor who rows with the others, if you think something is going against what you believe, jump out of the boat!
And that's why I decided to come to Shape as a Dev Specialist, which was only possible given my previous career/experiences. And once again: with my knowledge in the Oil&Gas sector I thought it would be the best move for my career. I had the opportunity to go into other areas (Banking, Education...) however, I thought it would be an opportunity to work daily with Cloud, newer, scalable technologies and in an area in which I already had business knowledge. I continue to study the market I'm in and keep paying attention to emerging technologies! ⭐
Tip ⭐: Technology will never leave your daily life!
I worked as a Techlead at Shape for about 6 months and noticed that my leader was overloaded taking care of several teams (Be aware of what is happening around you ⭐). In a random conversation he mentioned that they were going to look for EM on the market. I thought about it and commented that maybe I could help, but that maybe it wasn't plug and play. I had a brief experience at Halliburton, but at Shape, I would work more focused on people, in other words, a learning experience. He readily accepted and so I became EM.
It is important to highlight that it was not a promotion, it was a lateral move. I made this move thinking about leaving the execution part as I worked for 11 continuous years delivering/developing projects. I didn't feel challenged, I needed something to take me out of my comfort zone.
Tip ⭐: If you want a position, be prepared for it when the opportunity arrives!
In this short time in the role, I can list the biggest difficulties so far:
People are not linear (something that works for one person may fail miserably for another)
I can give chocolate to X and Y. X loves it and Y hates it (because he has lactose intolerance) 💣
You become a connection/request hub
I dealt with my team, now I deal with 4 teams, management of other teams, finance, heads and the team itself.
Manage expectations from both your team and those around you
You need to learn to fail and react quickly because you can take the project in a direction of no return.
You need to understand how your team works and how to give direction
Dealing with pressure daily
Defend your team at any cost (Your team is priority)
Give your team freedom (spread your wings so your team no longer depends on you)
In the beginning, things still depended a lot on me (I started the project, I knew the business rules…), how do I transfer this knowledge?
Motivate the team
You need to direct the team according to company guidelines
When you become a manager, you become part of the problem. What does that mean? The problems that you previously complained about are now also on your to-do list.
The biggest tip I can give so far, communication with your team is fundamental ⭐.
Tip ⭐: Be a present leader, participate in the daily life of your teams.
In 1:1 approach your team with personal matters, it is a way of generating trust between leader and team member. But most importantly, help him achieve his goals, it's your role!
Don't promise what is not under your control ⭐.
Tip ⭐: Don't promise a promotion that doesn't depend on you.
Don't promise to solve a corporate problem that you can't solve.
And you, tell me your history on comments below!