• Download Gist
blog - My "Ember" Job Posting on Hacker News.md
Markdown

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.

https://news.ycombinator.com/item?id=5475813 - Original HN Post

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.

Nope.

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)
  • MySQL
  • Redis
  • Node.js
  • Ember.js

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
  • Socket.io
  • Three.js
  • D3

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.

Why are you using Ruby gems, PHP and Node.js? That's stupid. Great follow up btw! Wish I could aid in your search but I don't know any PHP devs that would relocate at this time.

I think your stack is drunk.

Amazing stack! good choice. except we use Laravel. (which i'd call a symfony cousin). Good luck on the hire.

PHP is a funny thing. It's been around for a while. I've been doing PHP for more than 10 years. I currently think that if I want something fast, scalable, easy to implement and maintain I choose Nginx with PHP-FPM, MySQL, Memcache. I can set up a really fast MVC for PHP with this: pecl install yaf. Small footprint, fast, written in C. Nothing beats that, no matter what hipsters say. It is for example way faster then Node/Express (i tested it). And another thing people don't know about MySql, which I mentioned in my email, is that it can function in nosql mode, with the Handler Socket plugin. I find these, together, unbeatable.

+1 for Laravel, great framework and Laravel 4 looks VERY nice although I am still using 3 at the moment.

Obviously +1 for Laravel, but ya know. Whatever works.

Just because something is written in a language other than PHP does not make the author a hipster. You don't have to change your language every year, or use the latest fads. But c'mon. "nothing beats that"? Have you even looked at what node.js, or Ruby, or Python is doing these days? None of these are "hipster" technologies, they've all been around for years.

I've done PHP development for 10 years. Does it work? Yes, fantastically if you know how to do it. Is it messy? Hell yes. It has a ton of rough edges. For no good reason other than it's legacy that people refuse to fix.

PHP should be treated like COBOL. If your big business app is already written in it, by all means maintain it, fight the software rot, and time permitting replace modules with something more sensible. But if you're proposing that new apps be built from scratch in it, you're not taking advantage of about a decade of improvements that can be found elsewhere and pushing the code owner onto a platform that is notoriously painful to maintain.

Sounds like an interesting project. I might be tempted my self, but don't want to move at the present. Good Luck :)

I have found that legacy PHP applications tend towards entropy more so than almost every alternative. I still have to maintain a large PHP application, so I both know it well and like and dislike working with it.

PHP is like M&Ms, Marshmallows, and Gummy bears in a brown poop-like substance.

I can see why he would supplement his architecture with node.js and others, since PHP is terrible at async backend I/O.

+1 @kriswill

That poop-brown substance is likely the little bits of soul from all of us who've had to work on, and or maintain large PHP applications.

Other than that, the position's tech stack looks like a smorgasbord of awesome....mmmmmm M&M's and D3.js

It's too bad I live in Colorado. I'm working with basically the same technologies right now, except that I'm using Zend Framework instead of Symphony. I'm building a REST API in Zend and then using Ember on the frontend to consume the API. All the HTML gets served up as handlebars templates and rendered client-side. It's slick. Good to see that even geniuses at Apple are doing something similar.

You can run Node and Apache (or whatever server engine is running your PHP) as separate processes. I've been building a PoC (Proof of Concept, not the other PoC that your mind went to) for a Node powered word game. Rather than deal with all the hassles of converting problems I knew how to solve in PHP (authentication, registration, account management, dashboards) to Node, I'm letting the front end pages be handled in PHP, then letting Node handle all the heavy lifting as the game server, handling player management, room management, and game management in real time. Given, it's a low scale solution right now, and I recently abandoned it for my newest fascination, but the stack works.

I'm currently working on a tech stack including PHP React/Ratchet as a backend for both PHP (Kohana 3) and Rails over ZMQ. Ratchet is handling websocket for the Ember.js client app.

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.