1. The trajectory of a software
engineer… and where it all
goes wrong
http://michaelochurch.wordpress.com/2012/01/26/the-
trajectory-of-a-software-engineer-and-where-it-all-goes-
wrong/
Michael O. Church
3. ● 0.0 to 0.4: Complete novice
learning programming
● 0.5 to 0.7: Sound grasp of fundamentals
○ “Programmer” but not yet an “engineer”
○ Code is likely to be sloppy and unmaintainable
○ Architectural skills are likely to be weak
● 0.8 to 0.9: Becoming an adder
○ Aware of the practical concerns (maintenance,
runtime safety)
○ Decent understanding of software engineering
Subtracter
4. ● 1.0 to 1.3: Full-fledged adder
○ Top 50%
○ Average software engineer is around 1.1
○ Can be trusted to manage a small project “full-cycle”:
design, implementation, testing, and integration
○ Reasonable quality, but the engineer is not ready to
be responsible for meeting
○ Deadlines, production support, or company-wide
concerns
Adder
5. ● 1.4 to 1.6: Solid adder
○ Top 10%
○ Can be trusted to independently solve most
problems in an elegant and maintainable way
○ Can make reasonable time estimates and
communicate in both business and technical terms
○ Can handle small levels of deadline
Adder
6. ● 1.7 to 1.9: Becoming a multiplier
○ Top 5%
○ Not only solve immediate problems, but improve the
state of company infrastructure
○ Routinely suggests architectural and process
improvements, and is ready to be “tech lead” for
important projects
Adder
7. ● 2.0 to 2.3: Full-fledged multiplier
○ Top 2-3%
○ Obvious technical leader
○ Whose contributions add immense, demonstrated
value to the team
Multiplier
8. ● 2.4 to 2.6: Becoming a global multiplier
(“Fellow”)
○ Top 0.25%
○ Contributions are company-wide or extend even
further (e.g. to the open-source community)
○ Can be trusted to work on independent research
(with full autonomy) and lead major initiatives
Multiplier
9. ● 2.7 to 3.0: Senior fellow
○ Known within and outside the company as one of the
best computer programmers alive
○ Can design new programming languages and
produce good ones
Multiplier