Dan Heller, who works as Engineering Manager at Uber, shared an article on his blog with the title ‘Ten Principles for Growth as an Engineer’.
Selman Kahya, a software engineer at Uber in the USA, translated this influential article into Turkish in the best way possible. In this content, which can be extremely useful for engineers and engineer candidates; Let’s take a closer look at an engineer’s most important qualities and what he should focus on for improvement:
I worked for a good company in Cupertino on the kernel for six years, put everything I knew aside and focused on distributed systems , then spent a year with a unicorn (over 1 billion dollar valuation) company, which was later acquired by AppDynamics. I later became a manager. I found myself managing over 20 people at Uber and finally got back to my roots as a programmer. I hope this list will help you learn from my mistakes. I wish someone could send me this list when I was 22 years old.
1) Question the contribution of what has been done to the company:
Think like a CEO. Try to understand what value you and your team’s work adds to the company. Take responsibility for issues such as the quality of the work, the superiority of the product in terms of features. As an engineer, your job is not just to write code; Your goal is to make good decisions and ensure the success of the company. And in order to do that, you need to understand what really matters.
2) Learn to deblock yourself:
Never, ever agree to be stuck in a task due to external factors. Keep moving forward by convincing your co-workers, escalating the issue, and/or finding technically creative solutions. Again, your job isn’t to just write code and assume that everything else but that will magically complete; Your aim is to produce a value with the effort you spend, to take the company you work for forward.
3) Be assertive:
One of the biggest misconceptions in the software world is that employees think that someone other than themselves is taking over the work and they will take care of everything. Take on the mission of your own team and company.
Don’t wait to be instructed; Think about what needs to be done, either go do it or actively advocate/tell what needs to be done.
Your managers and those above him trust the creativity and intelligence of you, the engineers, and they realize that they cannot handle everything on their own.
4) Improve your typing ability:
The technical writing skill facilitates collaboration with other employees and teams and is of great benefit to engineers in persuading, informing and teaching those around them.
When writing a document, keep in mind who the audience is and what they know. Write cleanly and clearly, and place a paragraph at the beginning of the article that summarizes the topic in one or two sentences.
5) Manage your own project:
Understand the dependencies thoroughly in the project you are working on. Make sure there is someone who takes care of every important piece. Regularly report project plans and updates to stakeholders and keep them informed of progress. Get used to it already by leading the meetings! You will need this a lot in the future when you manage much bigger projects and become a leader.
6) Educate yourself:
Master the art of software. Career is a long-term journey where you continue to develop yourself regularly. But on this journey, no one will quit their job and worry about whether you are learning something.
Claim your education, make learning a part of the day (even if it’s 5 minutes a day); Subscribe to mailing groups, find articles and books worth reading, read and lick the documentation of the technologies you’re working on. Continuity is the most important issue here; Build habits that will trigger learning throughout your career.
Expertise in the editor, debugger, compiler, IDE, database, network tools, and Unix commands you use will both make you feel competent and play a huge role in increasing the speed of product development. When you come across a new technology or command/concept, think about learning more than you need; You will find that these work over and over again, it will save you time.
8) Keep communication open:
Regular, well-organized meetings or other means of communication will create a sense of goodwill and trust with those you work with. Sharing what you know creates a strong learning and sincerity atmosphere in your environment. Always share what you know.
At regular intervals, create environments where you can talk about projects, goals, distance and obstacles. Go out and talk about things you know. Do not hesitate to speak up as long as you are constructive in the meetings you attend.
9) Check for collaboration opportunities:
Collaborating with different teams and benefiting from each other’s experience and knowledge is a very good way to increase your recognition in your organization. It will also ensure that your hand is strong when you need it.
Mastering this art as an engineer requires you to have an impact beyond the code you write. And advancing in your career also requires, up to a point, to have an identity in your environment. Inter-team projects and effective collaborations are very critical for both being a good engineer and advancing in your career.
10) Be professional, be reliable:
Think of yourself as a professional at your job and act that way. Come to the meetings prepared, give the necessary importance. Finish what you say you will finish, if things go bad (which they will), actively communicate it to the other party.
Try to keep your calm at all times. Express your objections respectfully. Respect and appreciate the people you work with, know their worth. Try not to keep complaining; Increase the morale of the people around you, do not reduce it. You will learn that everyone appreciates the person who does his job professionally, which is what it should be.
This post is also available in: