- Ravi Shankar Rajan
- How to Be a Good Senior Developer
- Translator: Deng Shiwei
- Proofread by: Deng Shiwei
- Status: Done
It’s not what you do — It’s how you do It
If you want to be a good senior engineer, there is only one way to go: make mistakes, correct mistakes, learn from mistakes, share mistakes, and repeat.
Learning from those mistakes is the key to becoming a senior engineer, and letting those mistakes become your experience.
That said, if you’ve recently started your career as an entry-level developer, you’ll want to know what steps you need to take to climb the career ladder. Is it just a matter of time? Or are you going back to school or are you going to get some advanced certificates?
Not necessarily.
While formal education may help you move up the ladder, I know many developers who have reached advanced levels with only a college degree.
It’s also important to note that when it comes to senior developers, they not only write elegant code, but they also have other desirable characteristics. A senior developer is someone who brings 10 times more value to the company. These developers know how “good stuff” works and can provide value to customers.
Think of it not just as a position, but as a work ethic. It’s not what you do, it’s how you do it that will make you a true senior developer. But it was impossible. You’re not going to get your first job as a senior engineer. It comes with a lot of mistakes that eventually translate into learning and experience.
Here are a few qualities that I think are great for a senior developer to have that set them apart from those who aren’t quite there yet.
1. They are curious
Just as Einstein said: “I have no special talent, only a strong curiosity.”
Research shows that when your curiosity is aroused, you can improve your ability to learn and retain information. When you’re curious, your brain’s limbic reward system kicks in. When the reward system is activated, our brains release a chemical called dopamine, which makes us excited and allows us to learn faster even on boring topics.
Good senior developers go one step further by directing their curiosity in a structured way so that they can take advantage of the information accumulated in an emergency situation. One way to do this is to learn more about the language before extending it.
2. They study deeply
The programming problems we encounter are rarely new, and it’s also rare for a company to create something that hasn’t been created by another team before.
That’s why most of the things you’re trying to do are already solved by the language/platform you’re using. For example, I used SAP classes to modularize a huge 30,000-line SAP ABAP code into a 200-line class. I was able to add value in the first place because I decided to master ABAP before delving into any other SAP modules. I know it’s slow, but it’s worth the effort.
Good developers never accept the status quo. Whether their code works or not, they always try to find the answer to every “why” they have to ask.
3. They are great mentors
John Crosby said, “A mentor is a brain to pick, an ear to listen, and a person to push in the right direction.”
In 2008, Google conducted a major study on this question. The Oxygen project team at Google’s Innovation Lab spent a year doing data mining, performance reviews, employee surveys, TOP executive award nominations, and other sources to assess the differences between the top and bottom managers. Their statisticians collected 10,000 observations about managers on more than 100 factors.
Two important conclusions emerged from the study:
- The most important performance of management success is being a good mentor. Successful managers know how to guide their teams to success.
- The least important thing is technical skills. This proves that a good developer is not necessarily a good manager.
As a result, Google changed its criteria. These reviews no longer simply measure how much output a manager achieves, but how much time they spend coaching their team, whether they communicate a clear vision, and so on. They have also developed new management training programmes around these skills.
That said, a key expectation of every senior developer is that they should be able to skillfully interact with internal and external customers and stakeholders. Technical jargon doesn’t do you any favors when you’re communicating with people from non-technical backgrounds. That’s why the best senior developers are the ones who aren’t awakened by technology.
Instead, you need to develop the skills to explain complex technical concepts in simple language, use real-life examples, and quickly gauge your audience’s comfort level with jargon.
A mentor is a powerful connection between a young person and a more experienced person, not only for career development, but also for personal growth, sharing knowledge, sharing experiences, and forging ahead.
4. They are not complacent
According to Jeff Bezos on complacency: “A company should not indulge in radiance, because radiance will not last.”
This also applies to developers. In fact, most developers are magpies by nature, always collecting shiny things, storing them away and looking for connections. In case you’re not aware of the phenomenon, shiny toy syndrome is typically characterized by wanting to own the latest toy, often without regard to practical or functional needs, or being attracted to a strong but very temporary high rate of ownership before moving on to something else.
The best senior developers control this situation. They know when not to do what. They know it’s not always a good decision to rewrite a library from scratch just to make it more readable, or to switch from an old framework to the latest. They are not risk-averse, just careful in choosing the right battles.
Because in the end, it all comes down to code. The code should do what it’s supposed to do, and nothing else. The purpose of the code should be clear enough to be mastered in minutes or even seconds. Browsing the code should be easy, even without sophisticated techniques.
Simplicity is the highest.
5. They admit what they don’t know
Neil Gaiman once said: Sometimes you don’t know that everything is going to be okay.
The three hardest words are not “I love you” but “I don’t know,” according to Stephen J. Dubner and Stephen D. Levitt, authors of the behavioral economics bestseller “Freakonomics.”
How will you handle the inevitable moment when it happens? For 20 minutes, you’ve been confidently talking about your achievements and enjoying being on top of the game. You answered yes to question after question, but now the things they ask you… Well, you really don’t know.
For many, this is a painful reaction. However, it is perfectly acceptable to say so. It’s better than covering up your lack of knowledge or skills. The key here is to know how you would solve the problem – either ask someone else or dig deeper.
It’s all part of how you answer questions on your way to becoming a senior engineer. Can you dig into why they are asking this question to get more background and broader help? Can you help us find the answer? Will you do some research and follow up afterwards?
Being a senior developer doesn’t mean you have to know everything, it means you can help find the final answer.
6. Finally, they can recognize the smell of bad code
Seymour Cray was absolutely right: the problem with programmers is that you never know what a programmer is doing until it’s too late.
This is why good senior developers are very sensitive to code “smells”, and if it looks like bad code and smells like bad code, it probably is bad code. Previous developers may have made a mistake, and so will you. That’s how coding works.
As we iteratively build previous solutions, we should work to improve the code base, not make it worse. So when you ask “Who wrote this?” Then there’s the inevitable “What can I do to make it better?”
You also need to know that you can figure out how to improve it before you have to. Understand what good and bad code looks like. Top footballers spend more time learning the game of other top players than average players. I believe the same applies to top developers.
Bad code is code that doesn’t feel right, even though you can’t quite explain why. It needs to be removed. Often smelly code is indicative of deeper problems that will cause more problems in the future. As a senior developer, this is your unique selling point that sets you apart. Do the right thing, even if it’s not the easiest thing to do.
In Donald Cruise’s words: I guess everyday life is like programming. If you like something, you can put beauty in it.