5.20.2008

Beware the Lone Wolf PHP Developer

With all the posts on interviewing PHP candidates popping up lately, I thought I'd post this draft that I've been sitting on for awhile that's related to new jobs and interviewing candidates.

I've run into the Lone Wolf PHP Developer at several places I have done work. Sometimes, I've had to work side-by-side with the Lone Wolf. Other times, I've replaced the Lone Wolf who had moved on to different hunting grounds. Still other times I've had to hire people and had to choose between a Lone Wolf and several other candidates.

Just who is this Lone Wolf and why should we fear them so much? Here are some telltale signs of the Lone Wolf PHP Developer:
  1. The Lone Wolf doesn't understand how to work in a team of developers. They typically don't even understand what benefits that would create. They do all development on their own, listening to very little input from qualified sources.
  2. The Lone Wolf got to page 141 on Enter-A-Beginner-PHP-Book-Title-Here and no further. Objects? They've never heard of them. They must not need them.
  3. The Lone Wolf re-invents the wheel for every project and doesn't use standard tools and practices.
  4. The Lone Wolf eats their young. OK, I made that one up. Frankly, how could a Lone Wolf have young anyway?
  5. The Lone Wolf is perfectly satisfied with doing programming work on production servers and using FTP to deploy their code. It never occurs to them that they should strive to create development and test environments. It never occurs to them that deployment via FTP doesn't scale higher then one developer.
  6. The Lone Wolf doesn't know what the letters SCM, CVS, or SVN are, or how to use them in their daily work.
  7. The Lone Wolf never reads my blog or any other blogs on programming. The Lone Wolf may not know what a blog is.
  8. The Lone Wolf says crazy things like "MySQL can't do transactions" and somehow gets management to believe them.
  9. The Lone Wolf was initially adored by management because they launched a lot of code live during their short stay. Too bad all that code is buggy and completely un-maintainable moving forward. Management doesn't like that.
  10. The Lone Wolf whips up incredibly stupid and unnecessarily complex solutions like template systems in which the templates are stored in a database instead of the file system/memory/cache. They shun using tried and true templating methods like PHP files, XSLT, or at the very least, Smarty. (see also: reinventing the wheel)
  11. The Lone Wolf names variables after themselves that mean nothing to anyone else (ex, $lonewolfFlag )
  12. And worst of all… The Lone Wolf PHP Developer fails to realize that there are other developers out there in the business world, trying to earn a living just like they are. By failing to conform to development standards that have been proven and tested, they make everyone's job more difficult.

Now, I personally have run into this Lone Wolf scenario with other programming languages as well. But I think because it is so simple to work with PHP without much formal training that it lends itself to this problem much more readily then other languages. The blessing and curse of PHP is that it is the new VB 6.

5.13.2008

PHP Developer Jobs are the Hottest EVER!!!

** I'll preface this by saying that I'm not specifically looking for a new position but I think it is important to be aware of the market that you serve. Even in happy times during my employment, I routinely scan job ads to see the health of the market and to gauge its direction. **

If anecdotal evidence means anything, and sometimes it does... and at the risk of sounding like a teenage girl writing on a myspace page, the PHP job market is literally blasting off! I've never seen the market for PHP programmers as strong as it right now in the NYC/Philadelphia region.

While there are lots of PHP jobs in the usual suspects like small start-ups, there also seem to be a number of jobs at established companies and developer shops. I'm also seeing a definite split in PHP jobs where there are both entry level jobs as well as jobs for more experienced people with titles like "Senior PHP Developer" and "PHP Tech Lead." I can't remember seeing so many senior PHP positions. The salaries I'm seeing are also at an all time high. Many ads have salary ranges that extend well into 6 figures.

As far as requirements I have seen, there definitely seems to be a shift towards frameworks like Symfony and Zend Framework as well as items specifically mentioning IDEs like Eclipse and Zend Studio. However, I rarely see mention of source code management and unit testing. Hopefully those items were cut from the job ads due to space requirements. ;-)

If you are a PHP developer in the area and are highly experienced, get ready to reap the rewards for your hard work. If you are a hiring manager in the area, prepare to shell out more for top talent.

So what is everyone else seeing in their area with regards to PHP developer jobs?

.

4.16.2008

Setting up Google App Engine SDK

I've started playing around with the Google App Engine SDK. So far I've found this fellow's posts on setting up Python, Eclipse, PyDev, and the Google App Engine very helpful. He also has a great post on ER-modeling and relational models in Google App Engine.

Check them out.

.

4.15.2008

First impressions on Google App Engine

From the Google site:

Google App Engine lets you run your web applications on Google's infrastructure. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your application, and it's ready to serve your users.

You can serve your app using a free domain name on the appspot.com domain, or use Google Apps to serve it from your own domain. You can share your application with the world, or limit access to members of your organization.

Without actually firing up the SDK yet, here are my initial thoughts:

  1. Do we trust Google? With our data? With our users? I love the idea of the Google App Engine (GAE), a scalable web app system where you only have to worry about coding your business logic and structuring your models. This is kind of like Amazon’s EC2 on steroids. No sysadmin stuff like with EC2, just coding. However I do not love that Google is already in the web app space themselves and is now marketing a web app space hosting platform. You have to trust them a little bit more then I’m comfortable with. They've already got your users and your data and your code. Don't they conceivably control your business at that point? Maybe I'm being paranoid here.Plus, there’s the lock-in factor. If I develop my app using MySQL as a backend, I know I could with only some minor pain change that backend to Oracle. It’s all SQL at some point. How would you swap out of using the Google DataStore API? It’s a proprietary system with no published standards.
  2. GAE is currently only in Python. No PHP love? I realize a lot of Google runs on Python and C++ and that’s what it is in their wheelhouse. But I still consider Python to be a fringe language. If GAE were opened up to support PHP and C#, it would blast off in popularity. Then again, a Python only crowd is a good beta test before the crush of PHP devs comes in.
  3. The DataStore API (ie, BigTable) is difficult to wrap my head around. After spending so many years carefully crafting db tables and relationships to get the most bang for my buck, I now have to throw out a lot of that hard-earned knowledge. I need to think in terms of objects (or columns) instead of rows.There are still relationships and keys to keep track of but not in the traditional ways of SQL. It seems like much more of your data fetching is done in code rather then in SQL. The shift in thinking reminds me of my own move to Object-Oriented Programming. I whined like a baby during that phase of my programming development (well, at least I did on the inside).

Hopefully I’ll get some more time to play with this stuff soon and report back.