Bad days are part of every engineering career, and one day rarely changes how your team sees you. Write down what actually happened, separate facts from the story in your head, fix or follow up on anything concrete, then switch off. The next morning, start with a small, winnable task.
What people tell me
Today everything went wrong. I spent the whole day on a ticket and made almost no progress, my pull request came back with a long list of comments, and in the stand-up I could not explain what I was doing clearly. I think my lead was frustrated. I came home feeling like the worst developer on the team, and now I am replaying every moment and dreading going back tomorrow.
A composite of the messages behind this question, with personal details left out.
Key takeaways
- Everyone has bad days, including seniors. One day almost never changes how a team sees you.
- Write down what actually happened. Facts are usually smaller than the story your mind tells at night.
- Handle anything concrete with one short message, then stop replaying it.
- Start the next day with a small task you can finish, to rebuild momentum.
- Look for patterns across weeks, not single days. If a pattern appears, raise it with your lead.
One bad day is not a verdict
Bad days feel enormous for juniors because you do not yet have a long record to weigh them against. A senior who has a terrible Tuesday knows they have had hundreds of good ones. You have had perhaps a few dozen, so one bad day feels like a large percentage of your career.
In reality, leads and teammates judge you on patterns over weeks and months: whether you communicate, whether you learn from feedback, whether your work improves. A single rough day, especially one you handle calmly, barely registers. Often the person you think was frustrated has forgotten it by lunch the next day.
Write down what actually happened
At night, the mind replays the worst moments and adds commentary. Get it out of your head and onto paper. Spend ten minutes on this:
| What happened (facts only) | The story I am telling myself | A fairer reading |
|---|---|---|
| Made little progress on a ticket | "I am too slow for this job" | The ticket had unknowns; I learned where they are |
| Pull request got 14 comments | "My code is terrible" | Many comments are conventions I now know |
| Unclear in stand-up | "Everyone thinks I am clueless" | I was stuck and had not framed the blocker yet |
| Lead seemed short with me | "They regret hiring me" | They may have been busy or stressed themselves |
This is not about pretending it went well. It is about seeing the actual size of the problem.
Handle what is concrete, then close the loop
Some parts of a bad day need action. Most need nothing. For the ones that do, keep it short:
- If you were unclear in a meeting, send a brief follow-up: "Quick update on the ticket: I am blocked on X, I have tried Y, and I plan to try Z tomorrow morning. If anyone has context on X, I would appreciate a pointer."
- If you got a lot of review comments, reply "Thanks, working through these" and group them into conventions, bugs and design questions.
- If you broke something, say so early and plainly. See I made a mistake in production. Should I tell my manager immediately?.
Once the message is sent, the loop is closed. Replaying it tonight changes nothing.
Switch off properly
After a hard day, it is tempting to keep working late to "make up for it". That usually backfires: tired work creates more mistakes, and you arrive tomorrow even more drained. Instead:
- Close the laptop at a fixed time.
- Do something physical, even a short walk.
- Talk to someone about anything other than work.
- Sleep. Many problems that felt impossible at 6pm are obvious at 10am.
Start tomorrow with a small win
Momentum matters. The next morning:
- Pick one small, finishable thing first: a single review comment, a test, a tiny cleanup.
- Finish it within the first hour.
- Then return to the hard ticket with a written plan: what you know, what you do not, who might help.
If you were stuck all day, the right move is usually to ask earlier today than you did yesterday. The guide on how to say you are blocked without looking incompetent has wording you can reuse.
Watch for patterns over weeks
Occasional bad days are normal. Several in a row about the same thing are information. Keep a quick weekly note: good days, bad days and why. After a month, look for patterns.
| Pattern | Possible cause | What to try |
|---|---|---|
| Always stuck on the same part of the system | Missing context | Ask for a 30-minute walkthrough |
| Many review comments on style | Unclear conventions | Read the style guide, ask for an example PR |
| Stand-ups feel bad | No structure | Prepare three lines before each one |
| Every task overruns | Estimates too optimistic | Break tasks down and share estimates earlier |
If a pattern appears, bring it to your next one-to-one as a question: "I have noticed X. What would you suggest?" Leads usually respond well to this, because it shows awareness.
A one-week recovery routine
| Day | Action |
|---|---|
| Tonight | Facts-versus-story table. One follow-up message if needed. Switch off. |
| Day 1 | Small win first, then a written plan for the hard task. Ask for help before lunch if still stuck. |
| Days 2 to 3 | Work through review comments. Note the conventions you learned. |
| Days 4 to 5 | Prepare stand-up notes each morning. Write three things that went well this week. |
Common mistakes
- Working until midnight to prove yourself. It rarely helps and often hurts.
- Apologising repeatedly. One clear message is enough.
- Avoiding the lead the next day. Normal, friendly contact resets things quickly.
- Reading one day as a pattern. Wait for weeks of evidence.
- Keeping it all to yourself. A teammate or mentor who says "I had that day too" is powerful.
If you are still stuck
Read Why do I feel stupid when I start working with engineers who are much better than me? and the free Your first tech job roadmap, which covers these early months. If you would like to talk a difficult week through with someone outside your team, join Sefism. Learning is free, you get credits when you join and your first roadmap is free, and you can ask a question or book a 1:1 session whenever you need it.
Was this answer helpful?
Read next
Your situation is not quite this one?
Members get written answers to their own questions, a roadmap built for them and feedback on their projects. Early access is open: sign up and your account is active shortly after. Prefer to talk? A free call works too.