What a Software Engineer at Google Wishes They Had Known Before Entering the Tech Industry
Jay, a Google Software Engineer and Tech Lead, emphasizes the crucial, yet often overlooked, importance of "people skills" and "EQ" beyond technical proficiency as one progresses in a software engineering career. The ability to "solve problems not necessarily relying on coding," persuade colleagues through collaboration rather than authority, and navigate high-level stakeholder meetings with diplomacy are key skills that are not typically taught in college but are vital for career advancement and team success.
Problem-Solving, Communication, Leadership, Data Analysis, Teamwork
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. Developing strong problem-solving skills is crucial, going beyond just coding abilities to encompass analyzing incomplete data and making informed decisions.
2. Effective communication and collaboration are essential for persuading colleagues and stakeholders, requiring tact and diplomacy to achieve consensus and avoid conflict.
3. The ability to push back constructively in high-level meetings is vital for advocating for resources, setting realistic expectations, and ensuring project success.
Transcript
What have you learned about this role that you wish someone had told you before you entered the industry?
That's also a very good question, and I might give a cliché answer, but it's more than just technical skills, really. People skills and EQ matter a lot more as you progress in your career.
At first, I felt like you just needed to be able to write code very well. That's true and is what you need for introductory levels. But as you progress and move higher in your career, two critical skills emerge.
These are general problem-solving, meaning the ability to solve problems not necessarily by relying on coding, but through pure cause-and-effect chains and logic. The other is the ability to analyze data, even when it's not 100% complete.
How do you make decisions with partial data? How do you make decisions with 90, 60, or 40% confidence? That's not straightforward, and I don't think colleges teach us that. We have to pick it up on the job.
The other aspect is people skills. How do you work well with others? How do you convince others without having authority? For example, how do you get your peers to work on a feature, not because you have a manager title, but because you strongly believe it's what needs to be done next?
This comes from doing that analytical part with limited data and reaching the right conclusion. You learn this and get positive signals from your managers later. But the ability to persuade others to work on tasks you've identified is key.
This isn't about having an ego or wanting people to do what you say. Those people usually don't succeed. It's about having foresight, looking at the data, and reaching the right conclusions.
Then, you need to convey that to the team without simply telling them what to do. It's more like suggesting how you think a problem should be solved. You shine a flashlight on the problem, and suddenly they come to the same conclusions themselves.
This skill to work with others is crucial, especially when there's pushback in higher-level meetings with stakeholders. At those levels, they usually want things delivered faster, with fewer people and less budget.
You have to politely push back, saying, "Let's look at this. Let's evaluate this. Let's look at our capacity plan. Here's what other people are working on." You might need more budget, or to hire more people, or come up with creative solutions like borrowing a resource from another team.
Doing all of that in a polite, collaborative manner is important, not fighting. The moment you start fighting aggressively, you destroy the culture. In my experience, that can lead to silos, people not collaborating, and your whole team or department moving slower.
Ultimately, this can lead to your product falling behind because you haven't been innovating as fast as competitors. You could then be out of business, or no one might care about your platform anymore.
