What Senior Engineering Actually Looks Like Day-to-Day
· 4 min read

Before I reached a senior level, I imagined senior engineers spent their days architecting massive systems on whiteboards and writing elegant, highly-optimized code. The reality is different. On most days, the work that matters most has little to do with clever algorithms.
What I Actually Do
A typical week breaks down roughly like this:
- 30% writing code. Features, bug fixes, prototypes. Still the core of the job, but not the majority.
- 25% reviewing code. Reading PRs, giving feedback, catching issues before they reach production.
- 20% design and planning. Writing proposals, evaluating trade-offs, defining scope for upcoming work.
- 15% communication. Syncing with product, unblocking teammates, answering questions, writing documentation.
- 10% debugging and investigation. Tracing production issues, analyzing metrics, root-cause analysis.
The ratio shifts depending on the week. Some weeks are mostly coding. Others are mostly review and planning. But averaged out, writing code is about a third of the job.
The Things That Matter Most
Unblocking Others
The highest-leverage thing a senior engineer can do is unblock someone else. A teammate stuck on a confusing API for two hours costs the team two hours. A 15-minute pairing session that unsticks them is a better use of my time than almost anything I could build solo.
I actively watch for signals: long-running PRs, quiet standups, questions in Slack that go unanswered. These are often signs that someone is stuck and either doesn't want to ask for help or doesn't know who to ask.
Making Decisions Visible
Junior engineers make decisions in their code. Senior engineers make decisions visible before writing code. That means design docs, RFC-style proposals, or even just a message in the team channel: "I'm planning to approach X by doing Y because of Z. Any concerns?"
This isn't about asking for permission. It's about catching problems early, building shared context, and giving teammates a chance to contribute ideas.
Saying No
One of the hardest parts of senior engineering is saying no. No to feature requests that don't align with the architecture. No to "quick fixes" that create long-term problems. No to scope creep that will push a deadline.
Saying no requires explaining why, clearly and without condescension. It also requires being open to being wrong. Sometimes the thing you want to say no to is actually the right call, and you need to update your mental model.
Setting Technical Direction
This doesn't mean dictating the tech stack or imposing an architecture. It means creating a coherent vision for how the codebase should evolve and helping the team move toward it incrementally.
"We're moving toward Compose for all new UI work. Here's the migration strategy. Here's how we'll handle the transition period. Here are the patterns we'll use."
The direction should be documented, discussed, and agreed upon. Not handed down.
What It's Not
It's not knowing everything. I say "I don't know" multiple times a week. The difference is that I follow it with "but here's how I'd find out."
It's not writing perfect code. My code has bugs. My designs have flaws. The goal isn't perfection. It's good enough decisions made quickly, with the awareness to course-correct when new information arrives.
It's not being the smartest person in the room. The best senior engineers I know actively work to make the people around them smarter. They explain their thinking. They create learning opportunities. They pair with junior engineers not to write the code for them, but to help them develop the judgment to write it themselves.
The Shift in Mindset
The biggest change going from mid-level to senior wasn't technical. It was learning to measure my impact not by my personal output, but by the team's output. If the team ships better, faster, and more reliably because of something I did, that's the job. Even if my personal commit count goes down.
That shift is uncomfortable at first. Writing code feels productive. Reviewing someone else's code, explaining a concept in a meeting, or writing a design doc doesn't give the same dopamine hit. But the impact multiplies. Your code affects one feature. Your influence on the team's approach affects every feature.