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.
September 2023
Move the rock
it's about noticing the rocks that could trip others and taking the initiative to move them
Similarity search with pgvector and Supabase
Explore the power of pgvector and Supabase for efficient similarity search in this comprehensive guide. Keep vector data next to your business data for efficient queries and less overhead.
August 2023
Why write
Regular writing is a secret superpower! Sharpens your thoughts, boosts your career, and helps you become an authority in your field. Don't pretend to be an expert, just share your experiences. Your insights are gold
Avoid spooky action at a distance
Shared state in programming isn't the enemy, it's unclear dependencies that tangle your code. Keep it clean with explicit state dependencies and strict access guidelines
More on how many years to senior
Lots of readers wrote in with questions and comments about How many years to senior engineer?. Here's some additional thoughts.
How many years to senior engineer?
Becoming a senior engineer isn't about clocking years, but about depth and breadth of experience. Work in diverse teams, stick with a codebase for 3+ years, and take on projects with real stakes.
Life is Poker
Certainty is an illusion, only probabilities are real
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