Do you ever feel like your brain is full and there's so much going on you can barely keep up? Me too.
The last few months have been wild.
In August I took the job that scared me a little. Since then we've grown from ~6 engineers to ~14, more than doubled our revenue, and the whole company went from ~30 to ~90 employees. It's honestly insane [name|].
The flood of new information is constant. One minute you're deep in the logs debugging some edge case from ancient data modeling sins you didn't even know about, the next you're talking to the VP of finance about a new initiative, then jumping into ...
Don't hold state manually
Your brain is full because it's holding too much.
Use technology! It's called a document. Instead of having a conversation, keeping all that info in your brain, then relaying it to others like telephone, try writing it down.
Before talking to stakeholders, make a document. Call it a PRD โย product requirements document. Write bullet points.
Forget the prose. Prose sucks. Write bullet points. The more bare bones the merrier. Write the questions, note the answers, invite others to edit with you. This document is a tool, not a work of art.
Put more info in your tasks or stories (jira, asana, etc). Write your bullet points there. Screenshots are love.
When creating pull requests, write self-contained descriptions. Don't assume others know what you're thinking. Don't assume you know what you're thinking. Add videos.
Let others hold state
Ask lots of questions.
You enter a room, a meeting, or a situation. Everything's on fire, people are stressed, and it's your job to help them fix the thing. What do you do?
The OODA loop โย observe, orient, decide, act.
Even if the situation's not critical and you're just helping a fellow engineer debug an issue or offering a rubber duck session. Same thing.
They've spent time thinking about this. You haven't. ASK.
Then make your decision/recommendation and move on. They'll come back with new info, if it didn't work.
Write a document if the same things keep coming up. Improve the system.
Aggressively move things to done
Your brain is full because you have too many things in progress. WorkInProgress kills your progress.
The only solution I know is to aggressively single task and get things finished. Avoid getting a project half-way to the finish line then switching to another shinier project. That's how cruft accumulates.
Get it done. Do the finalization work. Then stop thinking about it. If new things happen, you can prioritize those separately.
Stateless decision making
Write things down, lean on others, get to done.
Then stop assuming you can remember anything, or that it hasn't changed from what you remember. There are dozens of other gremlins running around your codebase, your documents, your processes, and your business all moving things around.
When it's time for a decision:
- look at your inputs (docs, code, tasks, questions)
- decide
- move on
Like an idempotent function that relies only on its inputs.
Cheers,
~Swizec
PS: your brain will continue to feel full but this helps and it's a good habit to build
Continue reading about Stateless decision making
Semantically similar articles hand-picked by GPT-4
- The swarm doc
- Can I get your opinion
- Why senior engineers get nothing done
- Make mistakes easy to fix
- Why sprints
Learned something new?
Read more Software Engineering Lessons from Production
I write articles with real insight into the career and skills of a modern software engineer. "Raw and honest from the heart!" as one reader described them. Fueled by lessons learned over 20 years of building production code for side-projects, small businesses, and hyper growth startups. Both successful and not.
Subscribe below ๐
Software Engineering Lessons from Production
Join Swizec's Newsletter and get insightful emails ๐ on mindsets, tactics, and technical skills for your career. Real lessons from building production software. No bullshit.
"Man, love your simple writing! Yours is the only newsletter I open and only blog that I give a fuck to read & scroll till the end. And wow always take away lessons with me. Inspiring! And very relatable. ๐"
Have a burning question that you think I can answer? Hit me up on twitter and I'll do my best.
Who am I and who do I help? I'm Swizec Teller and I turn coders into engineers with "Raw and honest from the heart!" writing. No bullshit. Real insights into the career and skills of a modern software engineer.
Want to become a true senior engineer? Take ownership, have autonomy, and be a force multiplier on your team. The Senior Engineer Mindset ebook can help ๐ swizec.com/senior-mindset. These are the shifts in mindset that unlocked my career.
Curious about Serverless and the modern backend? Check out Serverless Handbook, for frontend engineers ๐ ServerlessHandbook.dev
Want to Stop copy pasting D3 examples and create data visualizations of your own? Learn how to build scalable dataviz React components your whole team can understand with React for Data Visualization
Want to get my best emails on JavaScript, React, Serverless, Fullstack Web, or Indie Hacking? Check out swizec.com/collections
Did someone amazing share this letter with you? Wonderful! You can sign up for my weekly letters for software engineers on their path to greatness, here: swizec.com/blog
Want to brush up on your modern JavaScript syntax? Check out my interactive cheatsheet: es6cheatsheet.com
By the way, just in case no one has told you it yet today: I love and appreciate you for who you are โค๏ธ