When I Would Rather Work With a More Junior Engineer
By: Lee Ling Yang
Tags: Product Management, Software Engineering, Software Development, Engineering Mangement, Startup

It has nothing to do with money and technical experience

Photo by krakenimages from Unsplash

You can train an engineer on technical skills with time, but you cannot teach attitude. I’d rather take a less experienced engineer who is driven and collaborative, than a more technically competent engineer with a huge ego.

Here are the non-technical skills that are invaluable:

1. Humility

Everyone makes mistakes. When their code takes the system down. Do they own it or blame QA for not catching the bug? A person’s true character shows during hardships.

I once had an engineer wrote a long list of lessons learned in a post mortem document. He completed each of the action items that would prevent the same error from happening. Quite frankly, it was not entirely his fault. He was fixing a bug in the legacy code with very little documentation. But he took ownership. He set a great example and raised the bar for the rest of the team.

2. Communication Skills

Gone are the days when “ability to work with a cross-functional team” only applies to product managers. Engineers need to collaborate with designers and even marketing (for example setting up website analytics).

They know what level of technical details they should provide without getting into the weeds. Even better, they know how to translate a technical concept to non-technical stakeholders.

If they can make business stakeholders not feel clueless, they will be the go-to-person for the high-ups on technical questions. And they will be brought into important meetings.

3. Driven

With new technologies coming out every year, no engineer can be good at every language and framework. They may be coding for 20+ years — but they may not know how to solve the problem with the tech stack the company is using.

Do they have the drive to learn outside of work — so they won’t slow down the projects? Anyone passionate about their jobs will use their spare time to improve themselves. Not because they have to — but want to.

4. Team player

Programming has become more of a team sport than ever. Engineers have to work as a team to solve a problem and contribute to the same code base.

The larger the team, the less likely that everyone will agree with the same technical approach. Do they explain their rationale or force it down on others? Even if their chosen solution is not selected, are they still committed to delivering quality work?

5. Project Management skills

Not to say that they need to manage a project. But they should understand business stakeholders ask for timelines to prepare for launches.

They are proactive in raising their hands when they see risks of significant delay — rather than letting their teams know last minute.

6. Mentorship Skills

Most companies require engineers to review each other’s code before pushing it live. Are they willing to spend the extra time giving team members their feedback, on top of working on their feature?

Almost all code repositories show the number of comments each engineer makes. Although quantity doesn’t mean quality, it is a proxy to measure how much they care about contributing to the overall project. Judging by the words they use, one can tell whether the feedback is thoughtful or sounds like an order.

Sum it up

Having a combination of technical competency and soft skills is what differentiates one from the rest of the engineers. Soft skills are harder to learn — but it’s not impossible.