Back in March, I announced that I was giving away three copies of The PHP Playbook to three lucky winners. Since I’m selecting winners on April 15th, this is your last week to register to win your copy!
Since not everyone can win, I’m also excited to announce that PHP Architect, the publisher of my book, has provided me with a discount code worth up to 20% off the book. However, in order to receive it you must have entered the contest!
Some months ago, the Socorro team agreed that our current mix of REST API middleware calls and direct SQL calls from the web interface simply wasn’t meeting our needs. We were faced with an increasing number of data sources, including the coming addition of Elastic Search to the data storage system, and maintenance was becoming a problem. Thus, the decision was made to move our data layer to our REST API exclusively, removing all direct access to data storage from the web interface.
This is the second such project I’ve been on where an external API has been used for the retrieval of all data in an application. It’s a novel concept, but one that takes some getting used to to be sure.
When I started writing my book, I wanted to help PHP developers have a greater understanding of the tools, tips and tricks available when working as part of a team. That goal became The PHP Playbook. I’m excited that the book has been so well received, and I’m excited that I’ve finally received my promotional copies. So, in honor of that, I’m going to give some of them away! I’m even going to sign them!
Here’s the way this works: I have a mailing list, set aside exclusively for updates and special content. For those who sign up between March 1st and April 15th 2012, they will be entered into a drawing for one of three copies of The PHP Playbook. No strings attached, no gimmicks, no requirement to review the book, just a good, old-fashioned giveaway. Winners will be announced in late April, and the books shipped shortly thereafter. It’s that simple!
Since the dawn of programming, programmers have attempted to define their industry, often by using outside industries for comparison. This can be traced back to the fact that programming itself is unique: it’s unlike any field in existence. Most programmers hate being called “coders”: it seems pedestrian, somehow beneath what we do. Many times we like to call ourselves “engineers”, but this title doesn’t really fit. Though we do engineer things on a regular basis, engineering is a field in which the time to completion is relatively set by physical laws, not the complexity of the job.
As I spent time this past week watching my mechanic work, it occurred to me that much of what I do is act as a mechanic for my software. My job is to inspect, disassemble, replace bad parts, lubricate, make faster/more efficient/less squeaky, and to maintain software that has largely already been written, engineered, and released. There’s the occasional new feature to be developed, and this is surely the engineering portion of my job, but 70% of the time my work revolves around being a software mechanic.
Ten months ago when I started at Mozilla, I began transitioning away from PHP and into Python and Django. This was inevitable: the Mozilla Webdev team favors Python over PHP in almost every webapp (Socorro is the critical exception). However, over time I had become disillusioned with the direction that PHP was taking. The project seemed stalled, lost in the woods, drifting on a sea of uncertainty.
After seeing Rasmus Lerdorf speak about the future of PHP for 2012, my perspective has changed dramatically. You can see his talk here.
Laura Thomson posed a question on Twitter, asking what do you like most about being an engineer? I spent a good part of the morning thinking about it, and it’s an interesting question to answer. My answer is simple: it’s the fact that engineering is a creative enterprise, one that requires intense imagination and sometimes lots of sweat, blood and tears.
The greatest inventors of the past were creative, intelligent thinkers who imagined solutions. This to me embodies engineering today. As a software engineer, I’m called upon to answer difficult technical problems that involve creating solutions that require innovation and invention. Engineers are modern-day inventors.