The Ratchet Effect: How Engineers Build Reputation at Big Tech

2025-01-08

Engineer reputation at large tech companies isn't solely about technical skill; it's a gradual process. Starting with low-level tasks, engineers build trust and gain access to higher-profile projects through consistent success. This "ratchet effect" makes reputation slow to change. Even mistakes can be overcome with continued delivery. However, repeated failures lead to a downward spiral. The author advises new hires to focus on smaller projects to build a solid reputation, avoiding risky attempts to jump to high-profile work immediately.

Read more

The Biggest Mistakes Engineers Make in Massive Codebases

2025-01-07

Working with large, established codebases is notoriously difficult. This article shares a decade's worth of experience, highlighting the most common and deadly mistake: ignoring existing codebase patterns and focusing solely on clean code for a new feature. Maintaining consistency is paramount; it prevents unexpected issues, slows the codebase's descent into chaos, and enables future improvements. The author also stresses understanding the code's production footprint, being cautious about introducing new dependencies, removing redundant code, working in small PRs, and leveraging team expertise to catch errors. While challenging, mastering large codebases is crucial because they are usually the foundation of a company's most valuable products.

Read more
Development codebase

Glue Work Considered Harmful: A Survival Guide for Effective Engineers

2025-01-02

This article explores the concept of "glue work" in software engineering. While crucial for team efficiency (e.g., updating documentation, addressing technical debt), this unglamorous work often goes unrewarded, disadvantaging engineers who prioritize it. The author argues that companies don't reward glue work because they want engineers focused on feature delivery, not overall efficiency improvements. The efficient strategy is to apply glue work tactically to projects you're accountable for, ensuring their success, rather than spreading efforts thinly. This isn't cynical office politics; it's based on the reality of low efficiency in large companies and the prioritization of growth over short-term efficiency gains.

Read more

Twice Promoted to Staff Engineer: Lessons Learned

2025-01-01

The author shares their experience of being promoted to Staff Software Engineer twice in two years. The key to promotion wasn't technical prowess, but delivering value to the company by successfully completing high-priority projects aligned with company goals. The author emphasizes the importance of understanding company priorities, working on impactful projects, and building strong relationships with management and team members. A supportive manager is crucial. Key takeaways include focusing on high-impact projects the company prioritizes, not overemphasizing mentoring, and having a manager willing and able to champion the promotion process.

Read more

The Gap Between Strong and Weak Engineers

2024-12-27

This article explores the capabilities that differentiate strong engineers from average ones. Strong engineers can accomplish tasks that weaker engineers cannot, such as resolving complex bugs, improving legacy code, and undertaking significant architectural overhauls. Weaker engineers struggle with these tasks even with ample time. The article highlights that strong engineers are not simply more efficient but possess the ability to solve complex problems, while weaker engineers are virtually incapable of completing most engineering tasks. The article also offers advice on collaborating with weaker senior engineers, emphasizing the need to be kind but protective of one's time, avoiding excessive demands.

Read more
Development engineer capabilities