This content originally appeared on Level Up Coding - Medium and was authored by Daniel Costa
Amazon's Sr. Software Engineer at 27 — 8 important lessons I've learned so far in my career
Learnings I had throughout my whole career that I would have liked to learn earlier
Disclaimer: I’m not speaking on behalf of Amazon. Opinions are my own.
First of all, let’s briefly introduce myself: I’m Daniel, a 28 years old software engineer who started learning coding at 13. After 8 years of professional experience, I joined Amazon in 2019 as SDE2. About two years and 3 months later, in 2021, I’ve been promoted to Senior SDE at Amazon.
In this post, I’ll share some learnings I had throughout my whole career that I’d like to have learned before. These learnings carrier my personal experiences and my personal beliefs. I hope it helps you.
1. Although coding is cool, you will achieve more by supporting other coworkers
Coding is cool, very cool. As software engineers, we like to build software. And, for us, the most direct way to build a software is to actually code a software.
But, when you spend your whole day coding, you are exchanging 6 to 8 hours by a piece of coding in one specific project. No one learns from you, and you don’t learn anything, as you’re a senior engineer, and this scope is not a challenge to you.
Even though you can deliver the code faster than the less experienced engineers, what's the point on that? This is not sustainable and doesn't consider the long term and the personal improvement of your teammates.
As a senior engineer, you have the knowledge and skills to support many projects in parallel, in a lot of dimensions, such as code review, system design, product specification, business validation, operational excellence and so on. By doing this, you're working more strategically, using your skills for making your team more agile, improving synergy between teams and projects, helping your peers to improve on their careers, etc.
This is what we call by Force Multiplication, where your influence, knowledge and actions can make your whole team multiples their delivering capacity, software quality, team synergy, morale, work-life balance and other positive aspects of working with software engineering.
2. Your words are powerful, both positively and negatively. Listen first, be the last to speak.
You're a reference in your organization, probably in your company as well.
There are people that admire you and see you as someone that can tutor them to improve on their career.
Your praise can motivate less experienced people to achieve amazing careers. Your criticism can led less experienced to have bad days or even give up.
If you think that someone did something wrong, or that someone has an opportunity for improvement, talk to the person in private and don't be rude. Also, talk about the person's idea, not about the person. People are not the idea they have.
Don't act like you have the monopoly on truth and knows everything, but as someone that cares about the person's improvement and wants to help. Listen carefully and try to understand the person's point of view. People are different, they have different backgrounds and beliefs.
In meetings and team decisions, your opinion might bias the whole team, as the people will believe that it's not possible a scenario where they're right and you're wrong, as they admire you.
In a meeting, when a topic is starting to be discussed, let people speak, listen carefully all opinions and ideas, and be the last to speak. If you give your opinion first, then, people will either be biased by your opinion as they believe in you (usually more than yourself) or they'll suppress their ideas as they don't believe they can be right and you be wrong. Even if you're a cool person and your company is a place where it's comfortable and safe to speak, there'll always be people who is shy or not confident.
3. You'll never gain experience if you don't act due to lack of experience.
Experience is important, but you don’t need to know everything to start acting. Actually, it's the opposite, you need to practice what you've learned, so you gain experience.
There are things that you won't learn in books or courses, like how to fix that small bug that happened when you were creating a website, or that trick that you learned with a teammate when deploying a server. This is not buyable, you need to live it.
Don't be paralysed by the fear of making mistakes, by the fear of not knowing everything. Just act, ask for help and try. You'll figure out how to make things work, believe me.
People are focused on goals, but you should try to focus on the path you're venturing on and enjoy it. Goals ends, your learning path is everlasting.
4. Your english doesn’t need to be perfect.
This is an addendum from the last learning, but that deserves a special topic.
There is no much to talk here, just what is already in the title: your english doesn't need to be perfect, you don't need to speak like a native.
In the daily job, no one will care about your grammatical mistakes.
Don't get me wrong, I'm not saying that you shouldn't work to improve your english if you have opportunity, what I'm saying is that your fear of not being perfect shouldn't block you to make your next step.
This post probably has a lot of grammatical mistakes and bad written sentences, but that's ok, you can get my message and that's what is important. Most of the people doesn't speak a second language, if your first language is not english and you can speak it, so your english is already good.
5. FAANG's engineers are not better than you
FAANG is an acronym used in reference to the stocks of the five tech companies Facebook, Amazon, Apple, Netflix and Alphabet (the G refers to Alphabet’s core company Google).
Before I joined Amazon, I used to think I was worst than FAANG's engineers.
For some reason, I used to see then as gods of software. The people that create the applications that I use everyday, that serves billion of requests per second.
When I joined Amazon, I was slight afraid of not being good enough for the role. But quickly I noticed that the people at FAANGs are normal people, that know some topics and don't know others.
For sure I met brilliant people at Amazon, but I've also met at other companies I worked before. In the end, everyone has something to teach and to learn, in every place.
Now I'm a FAANG engineer, I'm not better than anyone. I'm not worst than anyone. You're not worst than me and not better than me.
I don't know everything and I'll never know anything. The key is to be open to learn with other people.
6. Understanding the business leads you towards better decisions
In the end of the day, the software is created to solve a business problem. There is no point on building a masterpiece software, with a full CD pipeline, 100% of test coverage and following the best practices if it's not solving a problem or doesn't have users.
On the other hand, a bad quality software, barely solves the users's problem while creates other inconveniences to them.
Senior engineers are one of the key people in the team that acts as the glue between tech team and business team. For that, you should understand about the business and the product as much you can. Based on that, you'll learn how to make tradeoffs not considering only technical aspects, but also business aspects.
In the end, you'll learn that most of things depends on the risk and the potential return.
Would you deploy a software in production with a known bug? A beginner engineer probably would say no.
A Senior Engineer would say: It depends. Depends on the impact of this bug. On for how long it would be in production. On how controlled is the pool of users that can see this bug. On how the Customer Success Team is engaged to help the users with this bug. On how bad is for the user and for the Business to wait the bug fix to launch the whole feature.
Knowing the business for what you're building software, having contact with the business team and customer success team, understanding the roadmap of the programs and products, and the customers's frustrations and complains are the key to make quality software that deliveries value to people.
7. Mind your posture and take care of your health
You spend most of your day sit in front of your computer. In the long term, bad posture can lead to severe back problems that will be painful and maybe irresolvable.
Invest in ergonomic chair, desk, keyboard and mouse. Mind your posture.
Also, try to get up every hour, drink water, sleep well and go to gym.
I know it seems like parents’s tips, when I was younger used to think like that as well, but you gonna age and your body will feel the bad habits from today.
I'm not a specialist to give specific guidelines, so I recommend you to search for help from specialists.
8. You should learn how to transform an idea into a website or app, this will help you to innovate and explore your creativity
People have ideas, many of us already have an idea to create a revolutionary app or platform.
When you're a developer, you're one step ahead of the other people, as you know how to develop applications.
However, if you're a frontend developer, you might not be able to develop the backend logic of the application, or not be able to create a service from scratch and deploy it.
If you're a backend developer, you might not be able to develop a frontend application, neither a mobile app.
In the end, although you're a developer, there'll be barriers that you'll prevent you to create your application, test your idea, and learn by practicing and trying.
This capacity to create a whole app from scratch and deploy it on the internet, for everyone, is something that will unblock a whole world of possibility for you, so I strongly recommend you to learn how to build an application front-end (HTML, CSS, Javascript, React) and backend (any backend language such as Java and Python), how to deploy applications (AWS, Google Cloud, Azure, Firebase, Heroku …) and a little bit of UX designer as well.
Amazon's Sr. Software Engineer at 27 — 8 important lessons I've learned so far in my career was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.
This content originally appeared on Level Up Coding - Medium and was authored by Daniel Costa
Daniel Costa | Sciencx (2022-01-07T03:09:57+00:00) Amazon’s Sr. Software Engineer at 27 — 8 important lessons I’ve learned so far in my career. Retrieved from https://www.scien.cx/2022/01/07/amazons-sr-software-engineer-at-27%e2%80%8a-%e2%80%8a8-important-lessons-ive-learned-so-far-in-my-career/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.