Understanding Software Engineering Titles, Levels, and Salaries
Written on
Chapter 1: Introduction to Software Engineering Titles
In the realm of software engineering, the distinction between titles like “Software Engineer” and “Senior Software Engineer” can be quite ambiguous. Does a Senior SWE at one organization outshine a regular SWE at another? The challenge lies in the lack of standardized definitions for titles such as these. Essentially, any individual or organization can adopt any title they choose.
To clarify this landscape, I will outline my approach to interpreting titles and how I relate them to other critical factors.
Section 1.1: Titles and Levels
Most well-established technology firms implement a hierarchical structure for titles, typically linked to specific numerical levels. For instance, Google has historically utilized a framework that includes various titles and corresponding levels.
It's important to note that Google does not hire for entry-level positions as E1 or E2; instead, new graduates typically enter as E3s. Similarly, Facebook, where I previously worked, employed the same leveling system but opted for non-public titles.
Section 1.2: Salaries in Software Engineering
At Facebook, there existed an unspoken guideline indicating that individuals at level X + 1 had approximately 1.5 times the impact of their counterparts at level X. This principle justified adjusting salaries in proportion to their impact, leading to an exponential relationship in compensation. For instance, an E5's salary was roughly 1.5 times that of an E4.
While I haven't conducted a detailed analysis of SWE salaries in Sri Lanka, I can provide a general correlation of levels and titles to salary ranges for illustrative purposes.
The key takeaway here is less about the specific figures and more about the multiplicative effect between levels. Why the choice of 1.5x? This figure is somewhat arbitrary and, while it made sense within Facebook's context, it could vary in different environments. A market characterized by slower growth may employ a smaller multiplier, whereas faster-growing markets may utilize a higher one.
Chapter 2: The Concept of Effective Experience
Many people associate titles with years of experience, with some companies promoting SWEs based solely on tenure. I've even encountered SWEs who demanded promotions purely based on their seniority. However, it’s crucial to differentiate between mere “raw experience” (time served) and what I refer to as “effective experience.” This concept considers not just the duration but also the quality of the experience gained. For example, spending a year in a dynamic role that fosters skill development is far more valuable than a year spent in a monotonous position.
Effective experience can even yield negative results, particularly if it involves working with outdated technologies. Moreover, it is directly correlated with a SWE’s potential impact and, ideally, should align with their salary. Below is a rough representation of how titles, levels, salaries, and effective experience interrelate.
Similar to salary, effective experience tends to follow the same 1.5x exponential growth principle. As SWEs strive to accumulate effective experience at higher levels, the process often becomes more challenging. Frequently, once an SWE reaches a certain level, the new skills acquired barely offset the obsolescence of older skills, leaving their effective experience stagnant.
You might wonder how an “Entry Level” SWE could possess 4.5 years of experience. This is because they may have gained relevant skills through their education, school projects, and coding initiatives prior to formal employment. “Work” isn’t the sole avenue for accumulating effective experience.
Finally, the question arises: how does one achieve 77 years of effective experience? Realistically, that would require living and working well into one’s hundredth year, or possessing extraordinary talent that enables rapid skill acquisition. Both scenarios are exceedingly rare, which explains the scarcity of individuals with such extensive experience, like Google Fellows or Facebook E10s.
Concluding Thoughts on Software Engineering Titles
So, what distinguishes a “Software Engineer” from a “Senior Software Engineer”? While it’s challenging to determine this solely based on titles, understanding the interplay of levels, salaries, and effective experience provides a clearer picture.
In this video, 7 levels of engineers discuss the most crucial skill in software development.
This video outlines the day-to-day responsibilities of a software engineer.