A Senior Engineer's CheckList
Controls (click to expand)
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 |
- Understand the business aspect of your work, and what makes money. Eventually, only that matters.
- Get involved with hiring for your team and company, and maintain a high bar for hiring quality candidates.
- Design and develop systems appropriate to scale, extensibility, and scope of the problem. Avoid over-engineering.
- Question everything and ask "why" repetitively until you get to the root of problems and situations.
- Demand accountability and ownership from others.
- Once you understand the company's needs, lead at least one high-impact project with a clear definition and target of successful delivery.
- Work towards disambiguating ambiguous problem statements.
- Cultivate relationships with other teams and develop trust.
- 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.
- Be involved with multiple projects as a consultant, a reviewer and/or a mentor.
- Follow the principles of extreme ownership.
- Have strong mentors to help you navigate and grow in the company.
- Take projects with high risk and high rewards.
- Strive for deep technical expertise in technologies used in your team.
- Ask for stretch projects from your manager, or help her identify one for you.
- Discuss the goals of your manager, and how you align your work with it.
- Invest time in networking effectively with seniors, peers, and juniors.
- Be a mentor to a couple of junior engineers.
- Increase your breadth of knowledge in the domain of your team/company.
- Drive your one-on-ones. Maintain a list of topics for the next one-on-one discussion.
- Discuss problems with your manager, but have some solutions beforehand.
- Increase your breadth of knowledge in technology.
- Explore emerging technologies by building small prototypes.
- Read a few technical books every year.
- Before suggesting the next big shiny technology for your production stack, understand its pros and cons thoroughly.
- Schedule a regular one-on-one with your manager
- Schedule a regular one-on-one with your skip level manager
- [Reminder] One-on-one usually is not a status meeting
- Involve the manager in your personal life (just a little though)
- Actively seek feedback from your manager
- Keep your manager up-to-date in things you are involved with, but don't get bogged down in unnecessary detail
- Keep your manager up-to-date in things you are blocked on
- Keep your manager up-to-date on people you have difficulty working with
- Give constructive feedback to your manager
- If you are overworked, let your manager know
- If you are under-utilized, ask your manager for areas to explore
- If you have an ineffective or neglectful manager, talk to your manager about your expectations
- If you have a micromanager, talk to your manager about your expectations
- If you have an abusive manager, talk to your skip manager or HR with data points
- If you have an ineffective skip manager and ineffective manager, switch the team or company
- If you do not have a cordial relationship with your manager, switch the team or company
- [Reminder] Leverage = impact produced/time invested. Use leverage as a yardstick for effectiveness
- Measure what you want to improve. Make efforts measurable
- Maintain high visibility of projects which have a high risk
- To deal with difficult folks, discuss with your managers and mentors
- To deal with difficult folks, fall back to first principles
- Be reachable to other engineers
- Have a huge bias for action and delivery, but do not over-compromise on quality. Push back if required
- Simplify code, systems, and architectures relentlessly
- Demand high-quality work from others, but be pragmatic
- Prioritize fixing tech-debt in code, systems, and architecture when the incremental cost to develop keeps rising
- Document extensively, and demand it from others. Document "why" more than "how"
- Avoid politics, but have right folks vouch for your work
- When dealing with politics, fall back to first principles
- If politics thrives due to team or company culture, switch
- Try not to get involved in office gossip
- Avoid stretching yourself too thin to be effective
- Respect code and systems that came before you. There are reasons for every code and every guard that exists in production
- Before you suggest major refactors, ensure you understand the system deeply
- 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
- 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
- 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
- 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
- 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
- Demand accountability and ownership from others.
- Effort: high
- Career Impact: low
- Company Impact: medium
- Category: leadership
- 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
- Work towards disambiguating ambiguous problem statements.
- Effort: high
- Career Impact: medium
- Company Impact: medium
- Category: leadership
- Cultivate relationships with other teams and develop trust.
- Effort: high
- Career Impact: medium
- Company Impact: medium
- Category: network
- 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
- Be involved with multiple projects as a consultant, a reviewer and/or a mentor.
- Effort: medium
- Career Impact: medium
- Company Impact: medium
- Category: network
- Follow the principles of extreme ownership.
- Effort: high
- Career Impact: high
- Company Impact: medium
- Category: leadership
- Have strong mentors to help you navigate and grow in the company.
- Effort: high
- Career Impact: high
- Company Impact: low
- Category: mentor
- Take projects with high risk and high rewards.
- Effort: high
- Career Impact: high
- Company Impact: high
- Category: growth
- Strive for deep technical expertise in technologies used in your team.
- Effort: high
- Career Impact: high
- Company Impact: medium
- Category: growth
- Ask for stretch projects from your manager, or help her identify one for you.
- Effort: medium
- Career Impact: high
- Company Impact: high
- Category: growth
- Discuss the goals of your manager, and how you align your work with it.
- Effort: medium
- Career Impact: high
- Company Impact: low
- Category: managers
- Invest time in networking effectively with seniors, peers, and juniors.
- Effort: medium
- Career Impact: high
- Company Impact: low
- Category: network
- Be a mentor to a couple of junior engineers.
- Effort: medium
- Career Impact: low
- Company Impact: medium
- Category: mentor
- Increase your breadth of knowledge in the domain of your team/company.
- Effort: high
- Career Impact: high
- Company Impact: high
- Category: growth
- 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
- Discuss problems with your manager, but have some solutions beforehand.
- Effort: medium
- Career Impact: high
- Company Impact: low
- Category: managers
- Increase your breadth of knowledge in technology.
- Effort: high
- Career Impact: high
- Company Impact: low
- Category: growth
- Explore emerging technologies by building small prototypes.
- Effort: high
- Career Impact: medium
- Company Impact: low
- Category: growth
- Read a few technical books every year.
- Effort: high
- Career Impact: high
- Company Impact: low
- Category: growth
- 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
- Schedule a regular one-on-one with your manager
- Effort: low
- Career Impact: high
- Company Impact: low
- Category: one-on-one
- Schedule a regular one-on-one with your skip level manager
- Effort: low
- Career Impact: high
- Company Impact: low
- Category: one-on-one
- [Reminder] One-on-one usually is not a status meeting
- Effort: medium
- Career Impact: high
- Company Impact: low
- Category: one-on-one
- Involve the manager in your personal life (just a little though)
- Effort: low
- Career Impact: low
- Company Impact: low
- Category: managers
- Actively seek feedback from your manager
- Effort: low
- Career Impact: high
- Company Impact: low
- Category: managers
- 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
- Keep your manager up-to-date in things you are blocked on
- Effort: low
- Career Impact: high
- Company Impact: medium
- Category: managers
- Keep your manager up-to-date on people you have difficulty working with
- Effort: medium
- Career Impact: high
- Company Impact: medium
- Category: managers
- Give constructive feedback to your manager
- Effort: medium
- Career Impact: high
- Company Impact: low
- Category: managers
- If you are overworked, let your manager know
- Effort: low
- Career Impact: high
- Company Impact: medium
- Category: managers
- If you are under-utilized, ask your manager for areas to explore
- Effort: medium
- Career Impact: high
- Company Impact: medium
- Category: managers
- 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
- If you have a micromanager, talk to your manager about your expectations
- Effort: low
- Career Impact: high
- Company Impact: medium
- Category: managers
- 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
- 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
- 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
- [Reminder] Leverage = impact produced/time invested. Use leverage as a yardstick for effectiveness
- Effort: high
- Career Impact: high
- Company Impact: low
- Category: growth
- Measure what you want to improve. Make efforts measurable
- Effort: medium
- Career Impact: high
- Company Impact: low
- Category: growth
- Maintain high visibility of projects which have a high risk
- Effort: high
- Career Impact: high
- Company Impact: medium
- Category: growth
- To deal with difficult folks, discuss with your managers and mentors
- Effort: low
- Career Impact: low
- Company Impact: low
- Category: network
- To deal with difficult folks, fall back to first principles
- Effort: low
- Career Impact: low
- Company Impact: low
- Category: network
- Be reachable to other engineers
- Effort: low
- Career Impact: low
- Company Impact: low
- Category: network
- 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
- Simplify code, systems, and architectures relentlessly
- Effort: high
- Career Impact: low
- Company Impact: high
- Category: technology
- Demand high-quality work from others, but be pragmatic
- Effort: medium
- Career Impact: low
- Company Impact: high
- Category: technology
- 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
- Document extensively, and demand it from others. Document "why" more than "how"
- Effort: high
- Career Impact: low
- Company Impact: medium
- Category: technology
- Avoid politics, but have right folks vouch for your work
- Effort: high
- Career Impact: medium
- Company Impact: low
- Category: politics
- When dealing with politics, fall back to first principles
- Effort: high
- Career Impact: low
- Company Impact: low
- Category: politics
- If politics thrives due to team or company culture, switch
- Effort: high
- Career Impact: high
- Company Impact: low
- Category: politics
- Try not to get involved in office gossip
- Effort: low
- Career Impact: medium
- Company Impact: low
- Category: politics
- Avoid stretching yourself too thin to be effective
- Effort: medium
- Career Impact: medium
- Company Impact: low
- Category: leadership
- 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
- Before you suggest major refactors, ensure you understand the system deeply
- Effort: medium
- Career Impact: medium
- Company Impact: high
- Category: technology
- 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)
Articles and Discussions
If you liked this post, please share with others!
If you have any feedback, drop me a mail. My email address is listed here.