What do I do?

I code, I teach, I design, I sometimes take pictures. I’ve been coding for a very long time. Very long. By the time the people who was my coworkers at Apple in the early nineties were phasing out into management I was still coding. I’m still coding now, twenty years later. Sure, I’ve graduated into sometimes managing and mentoring other coders. But I don’t use this as an excuse to stop coding.

Yeah, right. Very touching. What do I really do?

I code nice Javascript applications. Not webpages, not sites. Applications. Single Page Applications, if you want to get technical. The kind of apps where the only HTML you write is hidden in a bunch of templates. That are, in turn, hidden into a bunch of modules. That communicate with other modules. All in object oriented JavaScript. Ok, everything in Javascript is an object, but you got the point.

Then I make that SPA talk to a back-end. I can code it in OO PHP, node.js, .NET (don’t tell anyone, but I hate C#) or, even better, I can avoid coding my own backend and link to an existing API. Plug into Twitter’s firehose, filter the messages you need and mix them with some other feed, show it beautifully to your user.

Now, put the SPA into an Objective-C or Java “container” that makes it run as a native app in your tablet (PhoneGap is my favorite). You now have an hybrid application. You know, this decade favorite flame war: hybrid or native. Everyone enjoys a nice flame war. Anyway, you get an app ready to distribute. And that applies too to the kind of app you need to acccess your CRM or your intranet while in the road.

What else? All coders are lazy. It’s a requirement. We’re into coding to avoid repeating boring tasks. So you go and learn the joy of Grunt to handle and build your project. Oh, the things you can do with a tool like Grunt: generate the configuration for your modules, minimize and join the exact modules you need for a release… There’s a ton of things to do to have a perfect build: let a tool do it while you sip your coffee.

So, what do I do? I design and code applications in JavaScript. I don’t “make webs”.