Where are the Developers?

The amazing recruiting team at Vend have hired a few awesome software developers to add to our already incredible team. But it is hard work. Really, really bloody hard. So hard that I sometimes wonder what we’re doing wrong. Are we looking for the right people? Are we sending the right messages to attract those people? I’ve been thinking hard about what we’re looking for, and what we have to offer, and wondering if those things match up.

I think back to classic hiring articles like Joel Spolsky’s Smart and Gets Things Done for example. Are we asking the right questions in interviews? I’m pretty sure we are, but we could do better. I think about the concept of the 10x developer. Are we looking for unattainable unicorns instead of incredibly good racehorses? Maybe, but our current unicorns would get pretty lonely if we didn’t hire more.

What about our tooling? Should we be looking for a direct match there? There are plenty of opinions on PHP, but that’s only one part of our stack, and a part that we do as well as any modern dev shop, with unit tests, dependency injection, MVC, and – quite seriously – the most robust code review and continuous delivery culture I’ve ever been involved in. I could mumble about HHVM and PHPNG, but that’s just noise. Of course we’re looking at those: we continually evolve our platform just as we also include other tools where it makes sense. I’d list all the bits but honestly you’re better off coming in for a coffee to chat through it all with our crazy-talented devops crew.

It’s particularly interesting to me, coming from a Microsoft dev background, that your average PHP developer has less in common with what we build than does a high-end C# or Java dev. Emphasis on the average in that last sentence, because we all know VB6 caused the Microsoft world just as much pain as PHP; but you could argue .NET and Java have supported good, testable OO coding for longer than PHP has.

Coming back to Spolsky’s post, there’s a quote that highlights my point on tooling:

In software, things change so often and so rapidly that you need people that can succeed at just about any programming task that you throw at them. If for some reason you find an idiot savant that is really, really, really good at SQL but completely incapable of ever learning any other topic, No Hire. You’ll solve some short term pain in exchange for a lot of long term pain.

If I’m brutally honest, I think we’ve boxed ourselves in a little by advertising hard for PHP developers, when what we really need are great developers. 10x developers. Smart and Gets Things Done developers. Developers who thrive on massive growth and solving crunchy problems in a supportive team environment built on Trust and Focus.

Maybe those developers know a bit of PHP, but it’s more likely that they’re dabbling in Node or Go or some godforsaken JVM variant. All I care is that they’re passionate and intelligent, and want to share those talents with a team of like-minded individuals.

Is that so hard? In the famous words of Delia Smith: Where are you? Let’s be avvin’ you! I’d love to chat over this stuff with anyone. Or just.. you know.



Technical Debates and ASP.NET Abstraction

iPhone or Android? .NET or Java? Coffee or ISO Tea? As geeks, it feels like the majority of our discourse comes down to technical debate.

Scott Guthrie has put up a corker of a post dissecting technical debates in general. It’s intended to defuse some of the specific angst around WebForms vs ASP.NET MVC, but the initial section should be compulsory reading for anyone intending to push their platform of choice.

But I’m more interested in the comments. Rob Conery (in a wonderfully recursive technical debate within the comments of a post on technical debates) has this to say*:
[quote]When you abstract a webpage into a stateful form experience it’s like abstracting spinach and broccoli into mac and cheese for your kids […]

Bottom line: MS web developers are the only ones who think of the web in terms of “stateful forms” with very little knowledge of how the sausage is made :). This puts them at a bit of a disadvantage in their career – they (for the most part) don’t need to worry about the core issues of the industry (what HTML 5 means, compression issues, standards compliance, semantic issues, etc).[/quote]
*I’m unable to link to the comment because Scott’s comments don’t have named bookmarks 🙁

Cue gospel music, dancing, and much shouting of “Amen brother!” from me.

Like it or not, I’ve hung my hat on the Microsoft platform. It is a good platform. It pays my mortgage. I find the development tools wonderfully productive.

But yes, I have witnessed first-hand the sheer mayhem that can be wrought by a good developer working on a framework that abstracts them from the platform. I have witnessed 1.5MB web pages with no less than 120 linked resources. I have seen pages with multiple <head> and <html> blocks. I have witnessed pages being posted-back to themselves, re-rendered to the client, then prepended with a 301 header for redirection to the next “form”.

And we wonder why so many “real” web designers and developers dismiss ASP.NET as a valid web platform.

I’m thankful that it’s part of my job to address these issues with developers. There’s nothing I enjoy more than taking developers for a wander down HTTP lane. Showing them the actual GETs and redirects that happen when they make a web request; and showing them exactly how the ASP.NET page model generates HTML code in memory and streams it to the client. I like to think they use that knowledge to construct graceful code, or at the very least think twice before relying on a gigantic ASP.NET viewstate.

A man can dream can’t he?

Apple: Developers are not the enemy

It’s amazing that Apple have got as far as they have with the App Store. Looking back now, I wonder if it was more about the lack of decent competition rather than some massive Jobsian mind trick. Look, the iPhone is hands-down the most wonderfully designed and usable smart phone on the market – no doubt about it. You guys saying your Nokia 3110 is “better” can bugger off. People claiming the N97 or HTC Magic have a better user experience are on crack.

The App Store is amazing because Apple treat their developers like lepers. I’ve experienced the process of submitting an app first-hand, and completely concur with PolarBearFarm that the experience is appalling.

I’ve also long since given up any benefit of the doubt regarding their banning of selected apps. If it walks like a duck, and quacks like a duck, then it’s banned because it’s not an Apple duck. It’s not because Apple is trying to shield the world from the horrors of ducks. It’s flat out anti-competitive.

Yet they keep saying non-Apple ducks are dangerous. Apple keep saying that people mustn’t be allowed full access to their device because they’ll blow up cell towers or some other madness. This is such total, unadulterated birdshit. It makes me angry. People have been walking around for years with mallards on their Windows Mobile phones and geese on Symbian. I don’t see AT&T or Vodafone constantly rebuilding cell towers on the molten wrecks of previous ones.

But lo! What is this: Apple seem to be doing quite well at completely knackering their own devices by allowing nefarious code to run.

Glass houses. Put your stones down Apple, then come out and play.