“A really good product on time is better than a great product a year delayed.” Rice University Computer Science alumnus Johnny Chen (Ph.D. ‘00) is describing how he helps his engineering teams stay on track. He’s led the engineering strategy for three startups in five years and is currently the Vice President for Engineering at Lacework.
“Everyone is working in a constrained environment,” he said. “Always, the time to market is too short. If you arrive a year late with a product that is perfect, who cares? So when someone tells me they need three more months to perfect a product, we have to think about tradeoffs. Sometimes it makes sense to design a system that will scale and last many years, sometimes getting to market is more important.
“Learning to work on what’s important, what’s impactful – that’s the first step in keeping your product and your career on track. Yes, you need to master the technical aspects like how to design complex systems and write robust code. But you also have to work well with others, learn to resolve issues and conflicts, lead projects, and make hard choices – like time vs flexibility vs functionality vs quality. Those soft skills grow more important as you progress in your career.”
Chen’s own career has progressed from software engineer through product management and business negotiations to engineering management and leadership. His path included 10 years at Google and almost as many in rapidly growing startups, with a range of experiences that honed his knack for focusing on what’s best for his company.
He said, “Our natural priority is to put our personal interests ahead of the company, but future leaders think about their company first, then their team, and themselves last. What that means on a day-to-day basis is not just getting your tasks done, but trying to understand what the company needs. The larger the company, the harder it is to answer this question, and it is okay to seek input from your team lead.
“Your supervisor usually wants to give you the kind of projects that need attention and that he or she thinks you want to work on. It is completely okay to ask in a respectful way how your work will help the overall organization. ‘What can I do to make the biggest impact for the company or the team?’ is one approach you can try.”
He recommends software engineers account for the company’s priorities when they are tempted to go down a technical rabbit hole. Stepping back to consider if there are other tasks within their skill set that would make a more positive impact on the organization is a good guide for choosing work that influences the big picture.
“Put your energies in the things that matter most to your organization,” said Chen. “And remember, you are working hard for the overall success of your company, so choose an employer with a product or service you can get behind.”
He believes recent CS graduates have a tendency to undervalue their potential contributions and said although it is tempting to be thankful for an interview, the assessment goes both ways. Candidates are also interviewing their potential employer, and should look for an environment with core people who grow technically and professionally.
“Use LinkedIn, GitHub and other channels to review the career progression and resumes of engineers and managers you meet in your interviews,” he said. “Are they people you can learn from?”
His opportunities to learn, teach, and lead began with his role as one of the early Googlers working on AdSense. His expertise in developing new business catapulted Chen into the lead negotiator role for “first-of” partnerships in Google’s licensing and technology sharing, and he also served as Google’s expert witness in business negotiations for patent litigation.
In his role as Cohesity’s head of engineering, Chen grew the division from less than 20 engineers to more than 80, and directed releases 1.0 through 4.0 of their cloud enabled hyper-converged storage solution. Now at Lacework, his job as Vice President for Engineering means Chen is responsible for developing and deploying the company’s end-to-end cloud security platform. His technical expertise helps him meet the evolving challenges of securing enterprise cloud computing at scale, but he said his history of managing teams and projects of different sizes, shipping products, and balancing tradeoffs is equally important.
“Software engineering is not just about building something to spec. There are huge tradeoffs in terms of time, people, quality, performance, and behind-the-scenes expectations from both your customers and your stakeholders across the company. All those things have to be accounted for; growing professionally means learning how to make those tough calls,” he said.
In order for a team to successfully produce leading technology solutions, he said team members have to both enjoy and be focused on their contributions. If they don’t enjoy working on the product and with each other, they can’t gain impactful results for the organization. That means Chen spends a lot of time thinking about engineering culture.
“We have a great engineering culture at Lacework. We get a lot done and build high quality products, and our people are happy and motivated in their work. Software engineers today have too many options to remain stuck in a role or team that no longer fits. If you want to make a change, look around. See a team you’d like to join? Go talk to them. Say, ‘I’d like to hear what you’re doing.’ I’ve done that, many times.
“A strong engineering culture will actually encourage their people to move around. That’s how you get cross-pollination of knowledge, which in turn benefits the organization. ‘How often do people move around?’ is a good question to ask in your interview. You want to be in an organization where they encourage that.”
Chen tries to foster a sense of openness and camaraderie across his division. His advice –both for new CS graduates, as well as the experienced engineers he mentors–is to be a positive force on their team. But positivity does not mean skirting around process problems or trying to ignore interpersonal issues.
He said, “Don’t stay frustrated. If you have a conflict in your team, the worst thing you can do is tell other people instead of the person with whom you have an issue. Talk to them. Be helpful and humble. You can always learn something from someone else.
“As your skills develop, it is important – and difficult — to do self evaluation. Therefore, seek feedback from your peers, leads, and subordinates. And finally, share credit. Software engineering is a team sport. No one does it on their own. Be generous sharing credit.”