Most Important Skills for a Software Engineer and Tech Lead at Google
For junior software engineers, the most crucial skill is the "ability to solve clearly defined technical challenges," focusing on execution. As software engineers gain seniority, technical skills remain important, but the focus shifts towards "EQ," including negotiation, stakeholder management, and discerning when to "follow the rules" versus "break the rules" based on experience and context.
Problem-Solving, Teamwork, Communication, Technical Skills, Leadership
Advizer Information
Name
Job Title
Company
Undergrad
Grad Programs
Majors
Industries
Job Functions
Traits
Jay Zelenkov
Software Engineer; Tech Lead
Munich University of Applied Sciences, 2012
N/A
Computer Science
Technology
Product / Service / Software Development and Management
International Student, Honors Student, Took Out Loans, Immigrant, Worked 20+ Hours in School, First Generation College Student
Video Highlights
1. Technical problem-solving skills are crucial, especially at the junior level. The ability to focus and execute on clearly defined tasks is key.
2. As you become a more senior engineer, emotional intelligence (EQ) becomes increasingly important. This includes teamwork, communication, negotiation, and dealing with ambiguity.
3. Experienced engineers learn to balance following established processes with knowing when to deviate for greater efficiency. This involves making strategic trade-offs and knowing when to 'break the rules'.
Transcript
What skills are most important for a job like yours?
In my job as a software engineer, that career path is generally considered. The skills involved vary a lot based on the engineer's stage.
For a junior software engineer, the most important thing is the ability to solve clearly defined technical challenges. Someone predefines the task for you, and you just execute. The ability to stay focused and execute on a clearly defined coding task is probably the most critical skill. That's how we select software engineers at that early stage.
What also helps is the ability to work well with the team, like being a team player, communicating well, and being clear and transparent. As software engineers grow in their careers and become more senior, technical skills still matter, but the focus shifts more towards EQ.
It becomes about how you work with others, how you convince them, how you negotiate with stakeholders, and how you challenge or push back on timelines. You also deal with ambiguous descriptions, projects, or tasks more and more. The ways to solve these challenges will not always be technical.
On the non-technical side, senior people know when to follow the rules and when to break them. There are certain patterns or ways you're supposed to do things in tech. Experienced senior people know that sometimes we need to follow the rules and patterns because they add a lot of value.
Other times, even if it feels weird, they know they need to break the rules and cut a corner because it will help in the long run. The ability to make these trade-offs comes with experience.
