If you surf the Internet, you probably find many pages describing a senior engineer. However, unlike some people who think a senior engineer is someone who can write the most complex algorithms with a geeky face, I describe a senior with the following characteristics. As you can see the number of soft skills is way greater compared to hard skills:

Hard Skills:

  1. Has research ability: He has the research ability to find the most suitable solution to the given problem.
  2. Has good reasoning skills: while choosing solutions, he constantly asks himself why a certain solution is suitable to the given problem. He should avoid the temptation of using state-of-the-art solutions that might be overkill for a simple problem.
  3. Has enough specialized and general knowledge: He constantly tries to broaden his general knowledge in many areas of his field through skimming to be aware of what happening in his field. He also commits himself to staying up-to-date in his field of expertise.
  4. Pays attention to the structure and the form of code as much as functionality: He not only cares about the functionality that the code delivers, but he is also obsessed with the structure and form of the code.
  5. Makes an informed balance between technical and business needs: Although many engineers just love the engineering part, a senior should make a good balance between the two and avoid the temptation of sacrificing the business needs, losing deadlines, or losing market due to sticking to a technically perfect solution.
  6. Has the ability to easily adopt a project's coding style: When he is assigned to a project, he can easily adopt the coding style of an existing project so that other team members do not face any difficulty understanding his code or encounter a coding style and coding syntax that they are not familiar with. In addition, a senior engineer avoids importing new coding styles and syntaxes without consulting with the team and reaching an agreement.

Soft Skills:

  1. Has coaching and mentoring ability: He should have patience and willingness to transfer his knowledge to fellow engineers and help them to grow without having the fear of losing his position.
  2. Knows how to self-control and manage conflicts: As many conflicts happen daily in a team, a senior engineer should be able to control himself and also handle the conflicts among other people
  3. Has the ability to prioritize: In a project, sometimes, there is difficult to know which task has a higher priority over the others. A senior engineer should be able to determine implementing which task better contributes to the overall goal.
  4. Has the ability to tighten and loosen work processes in different situations: As an example, in the event of losing a proficient team member in deployment activities, he should be able to loosen the build and release process in terms of technical standards to maintain the delivery rate. In such situations, he should be able to leave as few technical debts as possible.
  5. knows how to negotiate for salary: A senior engineer knows how to find match companies and negotiate for the initial contract and salary raises. He knows what to avoid selling himself under his true market price.
  6. Has the ability to learn and transfer: He knows how to self-teach and transfer essential knowledge to fellow engineers.
  7. Has a fast-learning ability: He should know how to learn new languages and technologies at a fast pace by applying the techniques indicating what learning materials should be learned in-depth and what materials by skimming.
  8. Has the ability to create tasks for himself and others: a senior engineer should be able to create tasks for himself and fellow engineers to make the best of their time and resources.
  9. Considers learning as an inseparable part of his life: he should be a lifelong learner who loves to broaden his knowledge every day to create a comprehensive toolbox, having more possible solutions to the given problems.
  10. Has good verbal and written skills: A senior engineer should be able to convey his message verbally in the best way possible to avoid misunderstandings and miscommunications. He should also know how to document everything and create presentation files to present the work of the team.
  11. Markets himself constantly: A senior engineer does not expect anyone to discover him and provide the ideal work environment he is looking for. He should leave the passive mode, take actions to present himself to the world, and find or create an ideal work environment for himself over time.