Skip to main content

Technical Debt Is a Shared Decision

Most developers have heard the saying: Good. Fast. Cheap. Pick any two. It has survived for decades because it’s true. Every software project has constraints. Budgets. Deadlines. Resources. Technology. Business priorities. No project has unlimited time or unlimited money, and no development team has unlimited capacity. Every project is a balancing act between what is […]

More...

Every Decision Has a Cost

One of the biggest mistakes developers make is believing that adding a feature is free. It isn’t. Every feature has a cost. Sometimes that cost is obvious. Sometimes it isn’t. As developers, it’s our responsibility to understand both. Software Isn’t Free Every line of code you write costs something. It might consume more memory. It […]

More...

Designing for Likely Change Without Over-engineering

One of the most important skills a software developer can develop isn’t writing code. It’s analysis. Before writing a single line of code, we should be asking questions. Software is constantly evolving. Today’s “final requirement” often becomes tomorrow’s change request. Planning Without Over-Engineering Years ago, I was working on a project when a product manager […]

More...

Good software should explain itself.

In my previous article, Highland Principle #6: Code Is Read Far More Often Than It’s Written, I discussed an important truth of software development: you’re not writing code for the compiler, you’re writing it for the next developer. That “next developer” might be a teammate. It might be someone who joins the company years from […]

More...

Build for the Next Developer, Not Just Yourself

“Good software should never depend on the original developer being available to explain it.” Several years ago I accepted a contract to replace a developer who was leaving a company. The website was built on Drupal. At least… that’s what everyone thought. What I actually inherited wasn’t really Drupal at all. The login system had […]

More...

Accessibility Is a Feature, Not a Checkbox

“The best websites aren’t designed for the average user. They’re designed so everyone has the opportunity to become one.” When accessibility comes up in web development, the conversation usually starts in the same place. WCAG. ADA. AODA. Government regulations. Compliance audits. Legal requirements. Those things are important, and if you’re building websites professionally, understanding them […]

More...

Your Website Doesn’t Need 500 Features. It Needs 15 That Work Well.

“Just because you can, doesn’t mean you should.” One of the hardest lessons I’ve learned over the years has nothing to do with WordPress. It has everything to do with restraint. As developers, we’re surrounded by incredible tools. Themes with hundreds of customization options. Page builders capable of creating almost any layout imaginable. Plugins that […]

More...

Technical comTechnical comparison diagramparison diagram

Why Most WordPress Performance Problems Are Self-Inflicted

One of the most common conversations I have with clients begins with a familiar complaint. Their website feels slow. Pages take too long to load. Mobile performance scores are poor. Visitors are dropping off. And almost immediately, the search for solutions begins. Install a caching plugin. Install an image optimization plugin. Install a CDN plugin. […]

More...

Technical architecture diagram showing a custom WordPress development stack built with WordPress core, custom theme layer, custom plugins, API integrations, and minimal third-party dependencies.

Building Custom WordPress Solutions Without Third-Party Plugin Dependencies

Over the years, I have worked on many WordPress projects where the original solution to every problem was simply installing another plugin. In many cases, I spend more time untangling dependency chains and correcting architectural decisions than building new functionality. One of the biggest problems in modern WordPress development is the belief that every problem […]

More...