An Engineering Philosophy for Individual and Company Growth

Mo ElShenawy
Jul 9 · 7 min read

One of my favorite leadership quotes by John C. Maxwell is “To add growth, lead followers — To multiply, lead leaders.” This is what we have been doing here at Cruise over the past couple of years.

In 2018, we nearly tripled the size of our company, added to our world-class leaders & partners, and secured new office spaces.

Every engineer at Cruise is working to develop and safely deploy self-driving cars, which is the greatest engineering challenge of our generation. To create this ground-breaking technology, we are hiring incredibly talented engineers. To support our team, we need an organizational philosophy that fosters personal innovation and growth. As the Vice President of Engineering, I want to create an environment that maximizes each individual’s potential and harnesses the collective genius of our team. Done well, we can help Cruise achieve its mission of safely connecting people with the places, things, and experiences they care about.

“Own it” is a core value at Cruise, and I believe our engineers should be empowered and well-equipped to do their best work. My vision is to create an inclusive, respectful, high-performance, open, and peer-driven culture. To that end, I worked with our People team to create a thoughtful organizational philosophy that maintains our engineers’ autonomy while eliminating the ambiguity around responsibilities that often comes in an early start-up.

I’m sharing this philosophy with engineers outside the company so you can understand how we’re structured, envision how you could fit into our team, and see opportunities for your own growth and development.

An organizational philosophy for growth, learning, and agility

After working at large tech companies like Amazon and leading my own startups, I’ve experienced many organizational structures—some of which were good, and some not so good. For Cruise, I wanted to create a “best of both worlds” philosophy where we have the agility and speed of a startup, as well as the clear ownership areas and advancement paths of an established company.

This philosophy encompasses a shallow organization (org) structure, hiring and calibration frameworks, and a clear definition of roles and levels within each role, which will be the focus of this blog.

The organizational structure’s rules and clear leveling guides at the heart of this philosophy enable engineering teams to be productive and successful in a few ways:

  1. Speed. Less layers mean information and decisions travel faster in both directions. Both bottom-up and top-down, Cruisers can communicate and collaborate with each other quickly. In turn, they can make faster decisions and take immediate action.
  2. Role Clarity and Autonomy. To reduce ambiguity of “who does what”, each role has clearly defined ownership areas and performance expectations. Clearly defined expectations create autonomy allowing those closer to the opportunities to make optimal decisions faster.
  3. Growth and Development. Cruisers have a line of sight into future career opportunities that they can pursue as they grow and develop. The performance criteria describes what they need to do in order to be successful in that role.
  4. Efficiency. We want to have the right number of levels to remove ambiguity and reduce time spent in non-value-added level-hopping activities. Fewer and wider levels give managers more flexibility to motivate and reward their teams via wider comp bands without bureaucracy.
  5. Balance. Our organizational design has a 1:8 manager to individual contributor ratio to create reasonably sized teams where leaders can help their teams grow and learn as we rapidly scale. Also we deliberately balanced the number of junior to senior engineers so that we have the right mix of talent working on various projects.

ICs who make the impossible possible

At Cruise, leadership is not constrained to managers. We are looking for individual contributor leaders. There are four levels of Individual Contributors: Software Engineer, Senior Software Engineer, Staff Software Engineer, and Principal Software Engineer. Each level has a set of responsibilities and performance criteria across four dimensions:

  • Scope and impact of the role
  • Technical complexity of the work
  • Process and execution to deliver the work
  • Individual leadership

We focus on these four dimensions so each Cruise engineer understands how they have an impact in the organization and our self-driving cars. They can also see the skills and experiences they’ll need to grow and flex as they advance their career path.

For instance, our Senior Software Engineers (more than 50% of our engineering group) understand their team’s software very well. They are great at designing solutions, writing model code, and deploying high quality work consistently and autonomously. They work directly with their stakeholders to deliver the right solutions while mentoring junior engineers, helping onboard new hires effectively, and, of course, participating strongly in hiring.

On top of the above expectations, our Staff Engineers (around 5% of our engineering group) are considered the technical leaders across their larger group (Sr. Mgr level or Directors). They initiate large projects with more sophisticated architecture and break it down to the right components so other engineers can utilize it effectively. Staff Engineers also have a wide system view across the org, and they work across teams to coordinate cross-system architectures. They are the main go-to for major design decisions and are often a formal reviewer in our design review process.

Our Principal Engineers are the few technical leaders responsible for the coherence of the engineering community at Cruise. They are often domain leaders helping advance the technology for the greater good of the industry. They guide the overall technical strategy based on a deep understanding of the domain and industry context. They lead the technical direction and architecture of critical projects, work with customers to understand and define complex requirements, and advise leadership on technical strategy and talent needs. While Staff Engineers are usually operating at Sr. Mgr or Director level group, Principal Engineers usually operate at a VP level group.

The distinct performance expectations among these levels help streamline work and ensure we optimize our teams with the right mix of talent to get the job done. It also provides engineers with a career path with well-defined performance criteria.

You can find Cruise’s specific roles and responsibilities in our Cruise Software Engineering IC Leveling Guide.

Leaders committed to help teams thrive

“None of us is as smart as all of us.” ― Kenneth H. Blanchard

Team leaders at Cruise strive to create an environment where the whole is greater than the sum of its parts. They are determined to unlock their teams’ maximum potential by providing the resources and guidance needed for success and growth.

Similar to Individual Contributors, there are four levels of people managers: Engineering Manager, Senior Engineering Manager, Director, and Vice President. They also have a set of responsibilities and performance expectations in four areas:

  • Technical scope and systems health
  • Strategic impact across the entire organization
  • Leadership
  • Team’s performance and execution

For example, here is how Senior Engineering Managers and Directors of Engineering differ across the leadership dimension:

The table above demonstrates how the role evolves across the leadership dimension as one moves from a Senior Manager to a Director. Similarly, the criteria evolves across scope, impact, and performance across the different levels. The manager role develops naturally from leading ICs to leading other managers and working with Staff and Principal engineers in cross-cutting initiatives. Responsibilities grow from developing for the local maxima to optimizing for the global company and industry maxima. We limit our managers to only eight direct reports so they can balance their individual duties and coach their teams. Our leaders are passionate about people development, encouraging their teams to stay humble through every learning opportunity as the team grows. The leveling guide for managers goes hand in hand with our shallow organization structure and empowers our leaders with autonomy while reducing the hierarchical overhead.

To see the more comprehensive increase in responsibility, read Cruise Software Engineering Manager Leveling Guide.

Want to learn more?

I hope this post gave you good insight into how the Cruise engineering team is structured, and the types of roles and growth areas available for both Individual Contributors and Managers. In a future post, I will highlight some examples of Cruisers doing their best work and advancing their careers.

We’re always looking for the best and brightest people to join us on our mission and become the autonomous technology leaders of the future. Scroll through the job listings on our website and find your fit at Cruise.

Cruise

We’re building the world’s most advanced self-driving vehicles to safely connect people with the places, things and experiences they care about. Help us solve the engineering challenge of a generation: https://getcruise.com/careers

Mo ElShenawy

Written by

Mohamed “Mo” ElShenawy is a Vice President of Engineering at Cruise.

Cruise

Cruise

We’re building the world’s most advanced self-driving vehicles to safely connect people with the places, things and experiences they care about. Help us solve the engineering challenge of a generation: https://getcruise.com/careers

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade