Articles
Software engineering lessons from production, raw and honest from the heart โ almost 20 years of them. Jump to a year in the sidebar, or browse categories and curated collections.
August 2023
Finding modules in a Big Ball of Mud with ChatGPT
Detangling a Big Ball of Mud is hard. You have to find domain boundaries where none exist. Looks like AI can help ๐คฉ
Followup answers to Forget complicated code, focus on the system
Why are utility files bad? How do you recognize architectural complexity? What the hell is a transitive dependency?
Forget complicated code, focus on the system
Clean code matters, but it's the architectural complexity that truly impacts your productivity and bug count. Focus on simplifying the system, not just the code.
Programming in Markdown
What if you could focus on the fun _engineering_ part of your job, not on coding? You can!
July 2023
The Wally Reflector
Unleash the power of 'The Wally Reflector' to manage the influx of 'quick requests' and empower your team.
What I learned from Team Topologies
You can't escape Conway's Law. Might as well use it for good.
Working with product
A strong partnership with product is key to an enjoyable engineering life
Different worlds
Different lenses, different worlds. Your perspective is shaped by your experiences. Even in debates, all sides can be right in their own context.
You can't stop the business, or why rewrites fail
Rewriting code isn't a magic fix-all. Consider the opportunity cost, complexity of the old system, and estimation challenges. Instead of stopping all to rewrite or building new while maintaining the old, try incremental improvements and new code adoption.
Update state during render, better explained
A few readers wrote in to say that the React Can Update State During Render email last week made no sense. Here's a better explanation.
June 2023
React can update state during render
An unexpected feature of React: updating state during render. It's a UX and performance optimization
Clarification on how ownership makes careers
Aa few readers wrote in with questions and objections to last week's Ownership makes careers email. Here's a few clarifications.
Ownership makes careers
Own shit. At least put your name on things. Yes, before it's successful.
When to throw away your code
Delete code when it stops providing value ๐ก All code is a liability; context matters. Keep what solves problems, toss the rest.
JavaScript games and Wonderful tools
Discover the magic of HTML5 game development with Game Dev JS Weekly and level up your productivity by eliminating daily frictions with Wonder Tools
What does "solve problems" even mean
Focus on solving problems, not just doing work or writing code. Think creatively, question existing processes, and prioritize effective outcomes
Why taming architectural complexity is paramount
Unravel the hidden costs of architectural complexity in software engineering and learn practical strategies to tackle it. Boost productivity, reduce defects, and improve staff retention with insights from an MIT PhD thesis.
Effective standups
The secret to effective standups that don't suck
May 2023
How one sentence guides your career
Unlock the secret to guiding your career with a powerful positioning statement. Learn to stand out in the job market and attract opportunities that align with your expertise and values.
What you can expect from the Senior Mindset Retreat
Unlock your true potential at the Senior Mindset Retreat! ๐ Develop crucial soft skills for career growth and become the leader the tech world needs. It's not just about coding, it's about teamwork, ownership, and making an impact.
Two types of complexity and their impact
Complicated code slows down junior devs, while complex systems impact senior devs more. Focus on managing system complexity & dependencies, not just simplifying code.
How positioning makes you stand out from the crowd
Stand out in the job market with a strong positioning statement! Focus on the value you bring to organizations, not just tech skills. Be specific about what you do, for whom, and how.
Why a tech meltdown is the best time to invest in your career
Invest in your career growth. Seize the moment to develop new skills and prepare for a brighter future
How I turned 15 years of writing into a chatbot
What do you do with 15 years of your writing history when LLMs hit the scene? A chatbot!
Your manager can be a peer
This collaborative approach enhances both people and technical aspects of a team, leading to a more efficient work environment.
You can't fix the wrong abstraction
Unlock the secrets to combating architectural complexity in software development and learn to identify and fix the wrong abstraction. Boost productivity, reduce bugs, and retain more staff.
Eight things to know about LLMs
eightthings.pdf is the best paper I've read on what's going on in AI right now and why everyone is excited. Here's my summary.
Hug your manager
Behind every thriving team is a dedicated manager who shields them from corporate chaos, sacrificing their own well-being for the team's success.
April 2023
A backend service nobody can grok
a little case study from an upcoming book I'm writing with Manning about software rewrites
Own the outcome, not the work
Efficient problem-solving in engineering with a shift in perspective โ focusing on user outcomes can lead to innovative solutions and change your approach to system design.