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
1 Understand the business aspect of your work, and what makes money. Eventually, only that matters. high leadership high high
2 Get involved with hiring for your team and company, and maintain a high bar for hiring quality candidates. medium hiring low high
3 Design and develop systems appropriate to scale, extensibility, and scope of the problem. Avoid over-engineering. high technology medium medium
4 Question everything and ask "why" repetitively until you get to the root of problems and situations. high technology medium low
5 Demand accountability and ownership from others. high leadership low medium
6 Once you understand the company's needs, lead at least one high-impact project with a clear definition and target of successful delivery. high leadership high high
7 Work towards disambiguating ambiguous problem statements. high leadership medium medium
8 Cultivate relationships with other teams and develop trust. high network medium medium
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. medium network medium low
10 Be involved with multiple projects as a consultant, a reviewer and/or a mentor. medium network medium medium
11 Follow the principles of extreme ownership. high leadership high medium
12 Have strong mentors to help you navigate and grow in the company. high mentor high low
13 Take projects with high risk and high rewards. high growth high high
14 Strive for deep technical expertise in technologies used in your team. high growth high medium
15 Ask for stretch projects from your manager, or help her identify one for you. medium growth high high
16 Discuss the goals of your manager, and how you align your work with it. medium managers high low
17 Invest time in networking effectively with seniors, peers, and juniors. medium network high low
18 Be a mentor to a couple of junior engineers. medium mentor low medium
19 Increase your breadth of knowledge in the domain of your team/company. high growth high high
20 Drive your one-on-ones. Maintain a list of topics for the next one-on-one discussion. medium one-on-one high low
21 Discuss problems with your manager, but have some solutions beforehand. medium managers high low
22 Increase your breadth of knowledge in technology. high growth high low
23 Explore emerging technologies by building small prototypes. high growth medium low
24 Read a few technical books every year. high growth high low
25 Before suggesting the next big shiny technology for your production stack, understand its pros and cons thoroughly. high technology medium high
26 Schedule a regular one-on-one with your manager low one-on-one high low
27 Schedule a regular one-on-one with your skip level manager low one-on-one high low
28 [Reminder] One-on-one usually is not a status meeting medium one-on-one high low
29 Involve the manager in your personal life (just a little though) low managers low low
30 Actively seek feedback from your manager low managers high low
31 Keep your manager up-to-date in things you are involved with, but don't get bogged down in unnecessary detail low managers high medium
32 Keep your manager up-to-date in things you are blocked on low managers high medium
33 Keep your manager up-to-date on people you have difficulty working with medium managers high medium
34 Give constructive feedback to your manager medium managers high low
35 If you are overworked, let your manager know low managers high medium
36 If you are under-utilized, ask your manager for areas to explore medium managers high medium
37 If you have an ineffective or neglectful manager, talk to your manager about your expectations low managers high medium
38 If you have a micromanager, talk to your manager about your expectations low managers high medium
39 If you have an abusive manager, talk to your skip manager or HR with data points low managers high medium
40 If you have an ineffective skip manager and ineffective manager, switch the team or company high managers high medium
41 If you do not have a cordial relationship with your manager, switch the team or company high managers high medium
42 [Reminder] Leverage = impact produced/time invested. Use leverage as a yardstick for effectiveness high growth high low
43 Measure what you want to improve. Make efforts measurable medium growth high low
44 Maintain high visibility of projects which have a high risk high growth high medium
45 To deal with difficult folks, discuss with your managers and mentors low network low low
46 To deal with difficult folks, fall back to first principles low network low low
47 Be reachable to other engineers low network low low
48 Have a huge bias for action and delivery, but do not over-compromise on quality. Push back if required high leadership medium medium
49 Simplify code, systems, and architectures relentlessly high technology low high
50 Demand high-quality work from others, but be pragmatic medium technology low high
51 Prioritize fixing tech-debt in code, systems, and architecture when the incremental cost to develop keeps rising high technology low medium
52 Document extensively, and demand it from others. Document "why" more than "how" high technology low medium
53 Avoid politics, but have right folks vouch for your work high politics medium low
54 When dealing with politics, fall back to first principles high politics low low
55 If politics thrives due to team or company culture, switch high politics high low
56 Try not to get involved in office gossip low politics medium low
57 Avoid stretching yourself too thin to be effective medium leadership medium low
58 Respect code and systems that came before you. There are reasons for every code and every guard that exists in production low technology low medium
59 Before you suggest major refactors, ensure you understand the system deeply medium technology medium high
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 medium technology medium high
  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