Great Software Engineers: What makes them effective?

Harish Rawat
2 min readJun 27, 2020

Over the years, I’ve worked with many 10x engineers and observed them and their key behaviors to understand why they are so effective in their organizations. Here is the list of crucial work-related practices that make them effective.

Understanding of technologies

Great engineers are always improving their knowledge of the technology and services they use in their products by reading blogs/ books and watching conference videos. For example, Full-stack software engineer writing SQL queries learns logical operations performed by RDBMS for query execution like full table sequential scan, index scans and lookups, all types (nested, hash, and merge) of joins, priority queue sort .. and becomes fluent in reading execution plan of the query.

They use production issues to learn and improve their systems and debug tools knowledge. For example, To debug slow downloads from streaming service, software engineer learns TCP protocol details (window size, flow-control ..) and analyzes network dumps to root-cause the issue.

Communication

Software development is a social activity requiring interactions with other developers, managers, designers, and product managers. Great engineers can clearly explain the problem, solutions and tradeoffs, and their recommendations at the right level of abstraction.

For example, In discussions with product managers, they focus on the value of the feature, feasibility of solutions, the effort needed to implement, and tradeoffs from the user perspective. Whereas in technical discussions with architects and managers, they focus on system design, the responsibility of each service, API/ interfaces, interactions between them, and quality attributes tradeoffs of alternative implementations.

Data-Driven

Great engineers use existing data to understand the problem space entirely and correctly. They quantify the benefits of a feature/ bug-fix and validate that after the feature is rolled-out in production.

They are incredibly paranoid about pushing their code changes to production. So for every release, they document the blast radius (all functionalities that can get impacted) and validate that the blast radius features are correctly working after the production deployment.

Realistic

Great engineers are aware that every project is different. They are comfortable working with both date-driven and scope-based projects. To avoid churn in the implementation phase, especially with projects involving many teams, or developers, they do high-level design to identify dependencies on other services and to create swim lanes for developers to work in parallel.

Focus on Return on Investment

Software engineering is probably the only engineering disciple where some-times we implement solutions for problems that don’t exist now or in the near future. Great engineers use potential value (or return on investment) as the criteria to choose projects that should be picked first for implementation. For large projects, they do design for the entire project to ensure that all planned changes for the project will be additive. Still, they break implementation into many smaller releases to realize potential benefits sooner.

--

--