https://littleblah.com/post/2019-09-01-senior-engineer-checklist/ Little Blah * Subscribe * Archives * Tags * Categories * Pages * Habit Tracker Little Blah * Subscribe * Archives * Tags * Categories * Pages * Habit Tracker A Senior Engineer's CheckList Sunday, September 1, 2019 general articles in software development 3280 words 16 mins read Controls (click to expand) View as: ( ) Table (also lets you download the data as csv) ( ) List ( ) Simple List CheckList This is a simple checklist, and while it is useful to any software engineer, it is especially useful to senior engineers. # Task Effort Category Impact Task Career Company Understand the business aspect of 1 your work, and what makes money. high leadership high high Eventually, only that matters. Get involved with hiring for your 2 team and company, and maintain a medium hiring low high high bar for hiring quality candidates. Design and develop systems 3 appropriate to scale, high technology medium medium extensibility, and scope of the problem. Avoid over-engineering. Question everything and ask "why" 4 repetitively until you get to the high technology medium low root of problems and situations. 5 Demand accountability and high leadership low medium ownership from others. Once you understand the company's needs, lead at least one 6 high-impact project with a clear high leadership high high definition and target of successful delivery. 7 Work towards disambiguating high leadership medium medium ambiguous problem statements. 8 Cultivate relationships with high network medium medium other teams and develop trust. Do not be adamant about your views. Listen to others and 9 accept that there is more than medium network medium low one way to look at a problem statement, and multiple valid solutions to a problem. Be involved with multiple 10 projects as a consultant, a medium network medium medium reviewer and/or a mentor. 11 Follow the principles of extreme high leadership high medium ownership. 12 Have strong mentors to help you high mentor high low navigate and grow in the company. 13 Take projects with high risk and high growth high high high rewards. Strive for deep technical 14 expertise in technologies used in high growth high medium your team. Ask for stretch projects from 15 your manager, or help her medium growth high high identify one for you. Discuss the goals of your 16 manager, and how you align your medium managers high low work with it. Invest time in networking 17 effectively with seniors, peers, medium network high low and juniors. 18 Be a mentor to a couple of junior medium mentor low medium engineers. Increase your breadth of 19 knowledge in the domain of your high growth high high team/company. Drive your one-on-ones. Maintain 20 a list of topics for the next medium one-on-one high low one-on-one discussion. Discuss problems with your 21 manager, but have some solutions medium managers high low beforehand. 22 Increase your breadth of high growth high low knowledge in technology. 23 Explore emerging technologies by high growth medium low building small prototypes. 24 Read a few technical books every high growth high low year. Before suggesting the next big 25 shiny technology for your high technology medium high production stack, understand its pros and cons thoroughly. 26 Schedule a regular one-on-one low one-on-one high low with your manager 27 Schedule a regular one-on-one low one-on-one high low with your skip level manager 28 [Reminder] One-on-one usually is medium one-on-one high low not a status meeting Involve the manager in your 29 personal life (just a little low managers low low though) 30 Actively seek feedback from your low managers high low manager Keep your manager up-to-date in 31 things you are involved with, but low managers high medium don't get bogged down in unnecessary detail 32 Keep your manager up-to-date in low managers high medium things you are blocked on Keep your manager up-to-date on 33 people you have difficulty medium managers high medium working with 34 Give constructive feedback to medium managers high low your manager 35 If you are overworked, let your low managers high medium manager know 36 If you are under-utilized, ask medium managers high medium your manager for areas to explore If you have an ineffective or 37 neglectful manager, talk to your low managers high medium manager about your expectations If you have a micromanager, talk 38 to your manager about your low managers high medium expectations If you have an abusive manager, 39 talk to your skip manager or HR low managers high medium with data points If you have an ineffective skip 40 manager and ineffective manager, high managers high medium switch the team or company If you do not have a cordial 41 relationship with your manager, high managers high medium switch the team or company [Reminder] Leverage = impact 42 produced/time invested. Use high growth high low leverage as a yardstick for effectiveness 43 Measure what you want to improve. medium growth high low Make efforts measurable 44 Maintain high visibility of high growth high medium projects which have a high risk To deal with difficult folks, 45 discuss with your managers and low network low low mentors 46 To deal with difficult folks, low network low low fall back to first principles 47 Be reachable to other engineers low network low low Have a huge bias for action and 48 delivery, but do not high leadership medium medium over-compromise on quality. Push back if required 49 Simplify code, systems, and high technology low high architectures relentlessly 50 Demand high-quality work from medium technology low high others, but be pragmatic Prioritize fixing tech-debt in 51 code, systems, and architecture high technology low medium when the incremental cost to develop keeps rising Document extensively, and demand 52 it from others. Document "why" high technology low medium more than "how" 53 Avoid politics, but have right high politics medium low folks vouch for your work 54 When dealing with politics, fall high politics low low back to first principles 55 If politics thrives due to team high politics high low or company culture, switch 56 Try not to get involved in office low politics medium low gossip 57 Avoid stretching yourself too medium leadership medium low thin to be effective Respect code and systems that 58 came before you. There are low technology low medium reasons for every code and every guard that exists in production Before you suggest major 59 refactors, ensure you understand medium technology medium high the system deeply Resist the urge to refactor major systems to achieve 60 simplification, because there's a medium technology medium high risk you will end up with a similarly complex system after some time 1. Understand the business aspect of your work, and what makes money. Eventually, only that matters. 2. Get involved with hiring for your team and company, and maintain a high bar for hiring quality candidates. 3. Design and develop systems appropriate to scale, extensibility, and scope of the problem. Avoid over-engineering. 4. Question everything and ask "why" repetitively until you get to the root of problems and situations. 5. Demand accountability and ownership from others. 6. Once you understand the company's needs, lead at least one high-impact project with a clear definition and target of successful delivery. 7. Work towards disambiguating ambiguous problem statements. 8. Cultivate relationships with other teams and develop trust. 9. Do not be adamant about your views. Listen to others and accept that there is more than one way to look at a problem statement, and multiple valid solutions to a problem. 10. Be involved with multiple projects as a consultant, a reviewer and/or a mentor. 11. Follow the principles of extreme ownership. 12. Have strong mentors to help you navigate and grow in the company. 13. Take projects with high risk and high rewards. 14. Strive for deep technical expertise in technologies used in your team. 15. Ask for stretch projects from your manager, or help her identify one for you. 16. Discuss the goals of your manager, and how you align your work with it. 17. Invest time in networking effectively with seniors, peers, and juniors. 18. Be a mentor to a couple of junior engineers. 19. Increase your breadth of knowledge in the domain of your team/ company. 20. Drive your one-on-ones. Maintain a list of topics for the next one-on-one discussion. 21. Discuss problems with your manager, but have some solutions beforehand. 22. Increase your breadth of knowledge in technology. 23. Explore emerging technologies by building small prototypes. 24. Read a few technical books every year. 25. Before suggesting the next big shiny technology for your production stack, understand its pros and cons thoroughly. 26. Schedule a regular one-on-one with your manager 27. Schedule a regular one-on-one with your skip level manager 28. [Reminder] One-on-one usually is not a status meeting 29. Involve the manager in your personal life (just a little though) 30. Actively seek feedback from your manager 31. Keep your manager up-to-date in things you are involved with, but don't get bogged down in unnecessary detail 32. Keep your manager up-to-date in things you are blocked on 33. Keep your manager up-to-date on people you have difficulty working with 34. Give constructive feedback to your manager 35. If you are overworked, let your manager know 36. If you are under-utilized, ask your manager for areas to explore 37. If you have an ineffective or neglectful manager, talk to your manager about your expectations 38. If you have a micromanager, talk to your manager about your expectations 39. If you have an abusive manager, talk to your skip manager or HR with data points 40. If you have an ineffective skip manager and ineffective manager, switch the team or company 41. If you do not have a cordial relationship with your manager, switch the team or company 42. [Reminder] Leverage = impact produced/time invested. Use leverage as a yardstick for effectiveness 43. Measure what you want to improve. Make efforts measurable 44. Maintain high visibility of projects which have a high risk 45. To deal with difficult folks, discuss with your managers and mentors 46. To deal with difficult folks, fall back to first principles 47. Be reachable to other engineers 48. Have a huge bias for action and delivery, but do not over-compromise on quality. Push back if required 49. Simplify code, systems, and architectures relentlessly 50. Demand high-quality work from others, but be pragmatic 51. Prioritize fixing tech-debt in code, systems, and architecture when the incremental cost to develop keeps rising 52. Document extensively, and demand it from others. Document "why" more than "how" 53. Avoid politics, but have right folks vouch for your work 54. When dealing with politics, fall back to first principles 55. If politics thrives due to team or company culture, switch 56. Try not to get involved in office gossip 57. Avoid stretching yourself too thin to be effective 58. Respect code and systems that came before you. There are reasons for every code and every guard that exists in production 59. Before you suggest major refactors, ensure you understand the system deeply 60. Resist the urge to refactor major systems to achieve simplification, because there's a risk you will end up with a similarly complex system after some time 1. Understand the business aspect of your work, and what makes money. Eventually, only that matters. + Effort: high + Career Impact: high + Company Impact: high + Category: leadership 2. Get involved with hiring for your team and company, and maintain a high bar for hiring quality candidates. + Effort: medium + Career Impact: low + Company Impact: high + Category: hiring 3. Design and develop systems appropriate to scale, extensibility, and scope of the problem. Avoid over-engineering. + Effort: high + Career Impact: medium + Company Impact: medium + Category: technology 4. Question everything and ask "why" repetitively until you get to the root of problems and situations. + Effort: high + Career Impact: medium + Company Impact: low + Category: technology 5. Demand accountability and ownership from others. + Effort: high + Career Impact: low + Company Impact: medium + Category: leadership 6. Once you understand the company's needs, lead at least one high-impact project with a clear definition and target of successful delivery. + Effort: high + Career Impact: high + Company Impact: high + Category: leadership 7. Work towards disambiguating ambiguous problem statements. + Effort: high + Career Impact: medium + Company Impact: medium + Category: leadership 8. Cultivate relationships with other teams and develop trust. + Effort: high + Career Impact: medium + Company Impact: medium + Category: network 9. Do not be adamant about your views. Listen to others and accept that there is more than one way to look at a problem statement, and multiple valid solutions to a problem. + Effort: medium + Career Impact: medium + Company Impact: low + Category: network 10. Be involved with multiple projects as a consultant, a reviewer and/or a mentor. + Effort: medium + Career Impact: medium + Company Impact: medium + Category: network 11. Follow the principles of extreme ownership. + Effort: high + Career Impact: high + Company Impact: medium + Category: leadership 12. Have strong mentors to help you navigate and grow in the company. + Effort: high + Career Impact: high + Company Impact: low + Category: mentor 13. Take projects with high risk and high rewards. + Effort: high + Career Impact: high + Company Impact: high + Category: growth 14. Strive for deep technical expertise in technologies used in your team. + Effort: high + Career Impact: high + Company Impact: medium + Category: growth 15. Ask for stretch projects from your manager, or help her identify one for you. + Effort: medium + Career Impact: high + Company Impact: high + Category: growth 16. Discuss the goals of your manager, and how you align your work with it. + Effort: medium + Career Impact: high + Company Impact: low + Category: managers 17. Invest time in networking effectively with seniors, peers, and juniors. + Effort: medium + Career Impact: high + Company Impact: low + Category: network 18. Be a mentor to a couple of junior engineers. + Effort: medium + Career Impact: low + Company Impact: medium + Category: mentor 19. Increase your breadth of knowledge in the domain of your team/ company. + Effort: high + Career Impact: high + Company Impact: high + Category: growth 20. Drive your one-on-ones. Maintain a list of topics for the next one-on-one discussion. + Effort: medium + Career Impact: high + Company Impact: low + Category: one-on-one 21. Discuss problems with your manager, but have some solutions beforehand. + Effort: medium + Career Impact: high + Company Impact: low + Category: managers 22. Increase your breadth of knowledge in technology. + Effort: high + Career Impact: high + Company Impact: low + Category: growth 23. Explore emerging technologies by building small prototypes. + Effort: high + Career Impact: medium + Company Impact: low + Category: growth 24. Read a few technical books every year. + Effort: high + Career Impact: high + Company Impact: low + Category: growth 25. Before suggesting the next big shiny technology for your production stack, understand its pros and cons thoroughly. + Effort: high + Career Impact: medium + Company Impact: high + Category: technology 26. Schedule a regular one-on-one with your manager + Effort: low + Career Impact: high + Company Impact: low + Category: one-on-one 27. Schedule a regular one-on-one with your skip level manager + Effort: low + Career Impact: high + Company Impact: low + Category: one-on-one 28. [Reminder] One-on-one usually is not a status meeting + Effort: medium + Career Impact: high + Company Impact: low + Category: one-on-one 29. Involve the manager in your personal life (just a little though) + Effort: low + Career Impact: low + Company Impact: low + Category: managers 30. Actively seek feedback from your manager + Effort: low + Career Impact: high + Company Impact: low + Category: managers 31. Keep your manager up-to-date in things you are involved with, but don't get bogged down in unnecessary detail + Effort: low + Career Impact: high + Company Impact: medium + Category: managers 32. Keep your manager up-to-date in things you are blocked on + Effort: low + Career Impact: high + Company Impact: medium + Category: managers 33. Keep your manager up-to-date on people you have difficulty working with + Effort: medium + Career Impact: high + Company Impact: medium + Category: managers 34. Give constructive feedback to your manager + Effort: medium + Career Impact: high + Company Impact: low + Category: managers 35. If you are overworked, let your manager know + Effort: low + Career Impact: high + Company Impact: medium + Category: managers 36. If you are under-utilized, ask your manager for areas to explore + Effort: medium + Career Impact: high + Company Impact: medium + Category: managers 37. If you have an ineffective or neglectful manager, talk to your manager about your expectations + Effort: low + Career Impact: high + Company Impact: medium + Category: managers 38. If you have a micromanager, talk to your manager about your expectations + Effort: low + Career Impact: high + Company Impact: medium + Category: managers 39. If you have an abusive manager, talk to your skip manager or HR with data points + Effort: low + Career Impact: high + Company Impact: medium + Category: managers 40. If you have an ineffective skip manager and ineffective manager, switch the team or company + Effort: high + Career Impact: high + Company Impact: medium + Category: managers 41. If you do not have a cordial relationship with your manager, switch the team or company + Effort: high + Career Impact: high + Company Impact: medium + Category: managers 42. [Reminder] Leverage = impact produced/time invested. Use leverage as a yardstick for effectiveness + Effort: high + Career Impact: high + Company Impact: low + Category: growth 43. Measure what you want to improve. Make efforts measurable + Effort: medium + Career Impact: high + Company Impact: low + Category: growth 44. Maintain high visibility of projects which have a high risk + Effort: high + Career Impact: high + Company Impact: medium + Category: growth 45. To deal with difficult folks, discuss with your managers and mentors + Effort: low + Career Impact: low + Company Impact: low + Category: network 46. To deal with difficult folks, fall back to first principles + Effort: low + Career Impact: low + Company Impact: low + Category: network 47. Be reachable to other engineers + Effort: low + Career Impact: low + Company Impact: low + Category: network 48. Have a huge bias for action and delivery, but do not over-compromise on quality. Push back if required + Effort: high + Career Impact: medium + Company Impact: medium + Category: leadership 49. Simplify code, systems, and architectures relentlessly + Effort: high + Career Impact: low + Company Impact: high + Category: technology 50. Demand high-quality work from others, but be pragmatic + Effort: medium + Career Impact: low + Company Impact: high + Category: technology 51. Prioritize fixing tech-debt in code, systems, and architecture when the incremental cost to develop keeps rising + Effort: high + Career Impact: low + Company Impact: medium + Category: technology 52. Document extensively, and demand it from others. Document "why" more than "how" + Effort: high + Career Impact: low + Company Impact: medium + Category: technology 53. Avoid politics, but have right folks vouch for your work + Effort: high + Career Impact: medium + Company Impact: low + Category: politics 54. When dealing with politics, fall back to first principles + Effort: high + Career Impact: low + Company Impact: low + Category: politics 55. If politics thrives due to team or company culture, switch + Effort: high + Career Impact: high + Company Impact: low + Category: politics 56. Try not to get involved in office gossip + Effort: low + Career Impact: medium + Company Impact: low + Category: politics 57. Avoid stretching yourself too thin to be effective + Effort: medium + Career Impact: medium + Company Impact: low + Category: leadership 58. Respect code and systems that came before you. There are reasons for every code and every guard that exists in production + Effort: low + Career Impact: low + Company Impact: medium + Category: technology 59. Before you suggest major refactors, ensure you understand the system deeply + Effort: medium + Career Impact: medium + Company Impact: high + Category: technology 60. Resist the urge to refactor major systems to achieve simplification, because there's a risk you will end up with a similarly complex system after some time + Effort: medium + Career Impact: medium + Company Impact: high + Category: technology --------------------------------------------------------------------- Resources click to expand Note: This is the source of the data in the checklist. Pull requests are welcome. This page refreshes daily. So this page might be lagging by couple of hours. My Definitions These are my definitions, and may not exactly align with yours. If you want, you can download this list as a CSV (download button is present in table view), and create your own version. Senior Engineer: Someone who has these basic attributes * Couple of years of Relevant Practical Experience (Exact number of years is not easy to identify since we are looking at having variety of experiences over time rather than similar experience repeated over years) * Influence within and across teams * Breadth of knowledge of technologies * Depth in one or more domains and/or technologies Effort: Effort of a task as compared to others in the list. This may not exactly align with level of effort of the task for you. Category: Category of the task. Career Impact: Level of impact on your career growth. Company Impact: Level of impact on your company and your team. Difficulty: I did not see a point of listing difficulty. What may be difficult for one may not be for other. References Books (Non-affiliate links) + The manager's Path + The Mythical Man-Month Articles and Discussions --------------------------------------------------------------------- Subscribe * indicates required Email Address * [ ] [ ] [Subscribe] This information will only be used to send you updates and is stored in Mailchimp. If you liked this post, please share with others! If you have any feedback, drop me a mail. My email address is listed here. Curated checklist for your travels Prev Subscribe * indicates required Email Address * [ ] First Name [ ] Last Name [ ] [ ] [Subscribe] This information will only be used to send you updates and is stored in Mailchimp.