RSSAmplifier

Blog

Kevin Smith

Engineering leader on a mission to help product teams love their job and consistently deliver real customer value.

kevinsmith.ioRSS feed ↗24 posts

Latest posts

Our Goal Was Never To Write Code

In software product development, we've historically specialized in ways that may not make sense going forward. But there will always be a need for people who deeply understand our customers' most important problems, solve those problems with high-quality software, and run that software reliably in production. This is the work that endures.

Thinking Outside the Black Box

If AI can one day quickly and reliably write new code and edit existing code to produce the intended new behavior of the software system, such that the system itself effectively becomes a black box… there's a whole slew of things that don't matter anymore.

There’s No Reason to Worry About AI

Unless...

How to Produce a Rich Domain Model with Active Record

You can't. It's not possible. I know that sounds like an outrageous claim given the popularity of the Active Record pattern, but it's true.

“What’s the deal with Bitcoin?”

Bitcoin is revolutionary. It may not happen immediately, but eventually you won't be able to ignore it. There will be a gravity to it, an incentive to be a part of it. Those who don’t use it will put themselves at a disadvantage... At some point, it actually takes more work to ignore the innovation.

High Cohesion, Loose Coupling

High-quality software is both valuable to the business now and easy to change later. While it’s simple to be dogmatic at either end of this spectrum, both goals are important to the business in the long run. Aiming for highly cohesive and loosely coupled code is key to finding the balance, but this concept can be tough to understand at first glance. So what does it actually mean?

Separation of Concerns is Fundamental to Building High-Quality Software

There's something that's been on my mind a lot lately: the significance of meaningful boundaries. It's a theme that keeps coming up wherever I look.

What the Ã�©Ð”ã° is going on!?

Say goodbye to cargo cult solutions. Finally get a grasp on character set encoding, learn how it works for PHP apps and MySQL, and become confident in fixing encoding issues once and for all.

A Better Way to Handle Validation Errors

While working on a project recently, I finally got so frustrated with the awkward way validation errors are typically handled that I was determined to figure out a solution.

Sanitize Your Inputs?

There's one particularly slippery term that wreaks havoc in the pursuit of application security: _Sanitize_.

Why Your Team is Burnt Out and Getting Nothing Done

Video of my talk at [EEConf 2017](http://2017.eeconf.com/) in Denver.

Where the Real Work is Done

If you want to make a difference in software, get better at modernizing legacy applications. The tech world is desperately in need of such skills, and it’s only gonna get more dire from here.

“If you think of coding as the manipulation of data, you’re going to have a hard time writing object-oriented code.”

Data is in service to the purpose. It isn’t the purpose itself.

What’s So Great About OOP?

In a word: sanity.

Protect Your PHP Application from SQL Injection

It's one of the most continually pervasive security threats. It continues to top the OWASP security risk list. Yet somehow many developers still don't even know what it is.

“Didn’t you just build your own framework?”

Wow, my last post got way more attention than I expected! There was the expected amount of snark, to be sure, but there was also some genuine misunderstanding and confusion about a few things, so let's clear them up.

Modern PHP Without a Framework

I've got a challenge for you. The next time you start a new project, try *not* using a PHP framework.

Vision and Hard Work

A contrast that perfectly captures the mindset of great leaders.

Multitasking Isn’t Really a Thing

The human nervous system can only process about 110 bits of information per second.

A Generation That Never Asks “Why?”

We've been taught to think about how to get things done, but not whether they’re even worth doing in the first place.

Deadlines are Meaningless

You never intended to run a burn-out shop, but here we are.

Is Your Team Feeling Scattered and Unfocused?

In the world of design and development, your team’s getting a *lot* thrown at it. It’s true if you’re running a software shop responsible for churning out a single product, and it’s *especially* problematic for digital agencies with multiple clients. But when everything’s an emergency, nothing is.

Rescuing a Slow, Buggy, and Frustrating “Store Locator”

For any brick-and-mortar business, it's a major problem if your customers can't find you.

“Putting your nose to the grindstone is a really easy way to cover up for an unhealthy business.”

My first foray into entrepreneurship was surprisingly successful. At least it started that way.