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