In case you don't know me already, I'm Jarrod Nettles, a Senior Developer at Apple Inc. I also go by the Twitter handle @hayvok, and blackshawk on Github (don't ask me why they're different). I have no real, formal blog since, well, I work at Apple. I'm posting this because I confused a good many people and I feel honor-bound to explain.
On April 1st Hacker News had their "Who's Hiring" thread. Since I'm currently looking for a developer, I decided to go ahead and post. Here's the content of that post, along with a link to the original.
Apple Inc: Cupertino, CA - Web Developer (PHP, Node.js, Ember.js) - Sorry, no remote!! Relocation offered. (I know, I know...) We're rebuilding an internal app from scratch and it needs to be blazing fast and real-time. Here's our tech stack (right now). * PHP 5.4 (we might go 5.5 once stable) * Symfony 2 * Git, no SVN allowed! * MySQL * Redis * Node.js * Ember.js If you're interested at all, even just chatting about the position, email me at ***********.
I posted this, not really expecting anything. Maybe a curious email or three.
To date (and its only been two days since I posted it) I've received ~45 emails from prospective candidates. Even more surprising, I'd say fully half were serious candidates; they submitted professional resumes, wrote an interesting email to catch my attention, and asked pertinent questions about the job. I had a lot of faith restored in the dev community, Hacker News citizens. Bravo and kudos. Encore.
The thing that amazed me the most - virtually every applicant was downright giddy at the opportunity to work with Ember.js full-time. To me, this just goes to show how popular Ember is becoming - and rightly so. Ember is getting a lot of traction and attention and its developer base continues to grow. If you follow me on Twitter, you'll know already that I'm firmly in Ember's camp. In my opinion its the best client-side MVC framework out there. I also firmly believe that client-side frameworks are the future of dynamic client interaction and Ember is helping to lead that charge.
Sadly, the realities of business weigh in. I have exactly one post open right now, and right now my greatest need is for a strong PHP developer. I sincerely hope this didn't come off to people like I was advertising solely for Ember devs. I wish I could but I wasn't. I posted our current tech stack because I know potential candidates find them exciting and its invigorating and comforting to know that you won't be working on some awful "custom PHP framework" from 2004 that makes Wordpress' source code look reasonable.
My intention for the candidate is somebody who is rock-solid with PHP, preferablly an open-source contributor, and who is capable and interested in learning Ember. If I had another position available it would be for a front-end developer who amazing Ember and it would be to work in Ember all day long.
Again, sorry for the confusion.
(I'd like to address another, related, issue in this post, but feel free to stop reading here if you're bored.)
Some of the responses I received by email and on Twitter were of complete confusion. Below is a list that sums up the confusion I saw.
Why are you using PHP? That's stupid. Why are you using Node with PHP? That's stupid. Why are you using Ember with PHP? That's stupid.
I think a few people were thoroughly confused by the supposedly contradictory techs I posted. Here are the confusing parts, again.
- PHP (Symfony 2 framework)
To those people who are confused, you should know that a production solution rarely involes a single technology. The days where we deployed a PHP and MySQL web site are over. Get used to it. You know what? I could toss a few more techs in there that we'll be using.
- Ruby gems
- Web Workers
The truth is that all of these technologies combine to power what I'm trying to build. Could I do it all with PHP? Possibly. But implementing a lightweight server to handle web socket communictions from the Web Worker that power the "real-timeness" is better done with Node. Ruby currently provides a good chunk of our deployment process. Three.js and D3 provide data visualization. Redis is our amazing cache that we couldn't live without. PHP is handling the API and is absolutely rocking at it, no matter what Jeff Atwood says.
No one technology can provide all of the things we that need. To a certain extent we need to be polyglots, because that's just how real work gets done nowadays.
Feel free to hit me up on Twitter. I'm always around.