preface

 

I’ve been blessed to make a living doing something I’d do as a hobby. For decades, coding has been my passion. When I started programming, learning was tough—hardcopy books, dogpile.com, and newsgroups were our lifelines. You had to really want it.

My journey began with Perl, watching HTML come to life for the first time. Although tedious and frustrating, the results had me hooked. PHP changed everything, letting me build applications in days rather than months. The real high came from watching users’ eyes light up when their clunky spreadsheet workflow transformed into a sleek HTML form overnight.

Back then, documentation was scarce, and Google was in its infancy. Without old head programmers helping us, we may never have finished anything. My code got the job done but was often ugly behind the scenes, something I’d be proud of on Monday and embarrassed about by Friday.

I gravitated toward backend development—its deterministic nature felt more intuitive. Like everyone else, I sought better ways to build code faster. Our team briefly adopted a rapid-application-development generator that promised miracles. It worked initially, cranking out features at warp speed. Then reality hit: when requirements changed, we spent twice as long untangling the generated mess. Less than a year later, we abandoned it.

Lesson learned: Fast development is only fun if you never plan on maintaining it.