As an engineering manager, I’m often asked by colleagues and interview candidates “What does my career progression look like as an engineer at Coursera?” Though developing as a people manager is appealing for some, I find that most are interested in hearing about how they can grow as an individual contributor.
All engineers at Coursera share the same title: “Software Engineer”. You may think this would result in an ambiguous career progression, but we actually prefer this model to a rigid hierarchy for the following reasons.
- We’re a small, tight-knit engineering organization within a startup and we’re laser-focused on working together to achieve our mission of providing universal access to the world’s best education. Everyone is encouraged to contribute to their fullest potential without being held back by artificial organizational structures, titles and roles.
- Our culture embodies humility. Great engineers are recognized for their contributions, leadership and attitude, not their title.
- Everyone is a leader. Our culture is very open and inclusive; some of the best ideas we’ve heard come from new college graduates or from our interns. We’re eager to help everyone in our organization grow into technical leaders.
As technologists, we are continuously striving to improve our craft, and at Coursera, we want to help our engineers improve continuously. We hope working at Coursera is a transformative experience for our engineers and, in the same way, we hope our engineers transform company’s trajectory.1
To guide our engineering teams, we’ve put together a list of qualities that we think are embodied by great, high-performing engineers. These are qualities that we’ve admired in our colleagues at Coursera, as well as in colleagues and cultures at other Silicon Valley tech companies such as LinkedIn, Google and Facebook. We’re sharing our own list in the hopes that it will inspire other engineering teams to think about the qualities they value, and how to build a culture that nurtures and rewards outstanding talent.
Without further ado…
How to be a Great Engineer at
Great engineers produce great results. Coursera values engineers who’ve directly designed, implemented and delivered major initiatives. Here’s why:
- For any major project, the devil is in the details of rolling out, “productionizing” and operating services and product features. Delivering and operating a service or product demonstrates ownership, which is one of our core engineering values.
- Results directly add value to our business. We consider the cumulative portfolio of a employee’s contributions to measure value added. Impact can be measured across any number of dimensions, including growth, engagement, revenue, engineering productivity, site up, site scalability and more. Significant impact is rarely achieved in shipping an MVP. Constant iteration is required to maximize value from the products and features we build.
Driven by our guiding principle of “climbing effectively”, we appreciate results that thoughtfully balance speed of execution with extensibility and code quality. We also value the “10x engineer” who not only delivers quality results quickly, but also inspires and mentors others around them to work smarter and faster as well.
You don’t have to be a manager to be a leader. Technical leadership is about the way you do your job. You’re making your projects, your team, and the entire engineering organization better. Most great engineers exhibit at least some of these qualities:
- Project leadership: Great engineers can play the role of technical lead on a project of significant scope or on numerous, smaller, high-value projects. They drive ideation, clarify design, remove roadblocks and continuously ship improvements. They work well with product to sequence the right products and features to build, and they know how to balance the trade-offs between quality, completeness, and speed. When applicable, they drive the project to completion by making data driven decisions.
- Identifying gaps: Great engineers are able to think broadly about the gaps and problems we face. More importantly, they are the first to identify problems we never knew we had. They value solving problems over complaining - in fact, they are eager to get their hands dirty, and tackle the challenge at hand with creativity and genuine enthusiasm.
- “Up-leveling”: Great engineers make the engineers around them better. They are highly productive mentors who lead by example and inspire others. They use code and design reviews as a venue for thoughtful, asynchronous mentorship.
- Love of learning: Great engineers make themselves better by continuously improving their craft. They enthusiastically devour technical documentation, research papers, and blog posts. They take classes and absorb the experience of others.
- Organizational presence: Great engineers are known throughout the organization for their knowledge and experience. They share their work via tech talks, show-and-tells, make-a-thons, and more. A great engineer’s presence can extend outside of Coursera in the form of external blog posts, speaking at conferences, and publishing research papers.
- Influence: Great engineers influence other engineers to adopt new technologies, architectures, processes, and standards. This can also be measured by the length of the “line outside their cube” or the size of their Differential queue.
- Attitude: Like all Coursera employees, great engineers care for teammates and exhibit humility. They realize that every mistake gives them an opportunity to become better at what they do.
Great engineers at Coursera are technically excellent in many ways: they can be brilliant product hackers, algorithmic masterminds, detail-oriented infrastructure engineers, or all of the above. We value engineers who think deeply in designing solutions to complex product and infrastructure problems.
Great engineers produce designs that are robust, intuitive, extensible, flexible, maintainable, operable, scalable, and efficient. In doing so, they strive to achieve a balance between quality and speed of execution.
In addition to contributing to business objectives, great engineers enhance the engineering organization as a whole by boosting the productivity of engineering teams, building reusable components, improving tooling, and generally making the codebase better. This could mean building services or components abstractly so they serve multiple product needs or increase developer productivity. It could also mean taking the initiative to build tools, extract libraries, fix broken windows, write engineering documentation, or write tests.
This is not a checklist!
Great engineers need not excel in all areas listed above, but must excel in some. They may be exceptionally well-rounded, or exceptionally strong in a few areas. Per the montage below, it’s unlikely you’ll be able to “max out” your stats like Cecil (left); you’ll probably be more balanced like Gorath (right).
How do we use this list at Coursera?
- We all internally call out great engineers who exemplify the criteria in the document.
- Individual contributors use this document to track their progress towards greatness and we all add notes, stories and examples so that others can learn about exemplary engineers who’ve done great things.
- Engineering managers at Coursera use this document to structure mentorship of team members and feedback during 1:1s and performance reviews.
- Anyone can shout out to their peers when they see them doing great things. This can happen in 1:1s, team meetings, eng all-hands, via our developers’ Slack channel, or via email.
At Coursera, we provide universal access to the world’s best education. We level the playing field by making high-quality education something that’s no longer available only to the elite. Likewise, in our engineering organization, we create an environment where every engineer can achieve greatness. We promote transparency and inclusiveness and provide this list of qualities as guidance to help engineers understand how they can improve.