You a UI Engineer? You Want to Work With Us!

In all my time working in this field, I’ve found that finding and hiring quality UI Engineers is incredibly difficult. So many people have entered UI Engineering from so many diverse backgrounds that finding the true engineers of the bunch can be quite a daunting task. For every great person, there are at least a dozen designers who’ve picked up basic coding skills and now fancy themselves capable of holding down a UI Engineer position.  Now that I’m at Netflix, I’m truly among a team of the best UI Engineers I’ve ever worked with. And I’ve got good news: we want you to join us!

I work in the TV platforms group; which means I’m part of the team responsible for delivering the UI on (among others):

  • Sony Playstation 3
  • Nintendo Wii
  • An absolutely massive assortment of connected devices

So…why would you want to join us?

Our engineering talent is top-notch.

We’ve gone way beyond the typical “progressive enhancement” and slightly improved experiences that many people are delivering on the web today. We’re building complete applications in Javascript leveraging design concepts that others working in JS are just beginning to explore including a robust state-chart system, event driven programming (pub-sub), and MVC–all on top of solid OO fundamentals.  This isn’t your average: “throw some jQuery at it and spruce it up a bit” type place; and we’re looking for serious engineers who want to work with Javascript at a high level.

No IE!

Yes, I said it. I haven’t written a line of IE-compatible code since I joined Netflix. It’s kinda awesome.

We get to play with the coolest toys

On my desk at the office, I currently have a half a dozen various devices including TVs and game consoles. How cool is that?  Want more? Think of just about any device you can connect to a TV and lets you watch Netflix. We have them. We get to take advantage of the latest technologies like GPU hardware accelerated compositing to make our UIs perform on even ultra-low-end devices, HTML5 storage for persistence, and CSS3 features without thought of backwards compatibility.

Want exposure, you’ve got it!

Very few, if any, other companies are doing Javascript applications as large and interesting as ours. These are long running, single page, data-driven Javascript applications with connections to HTML5-style video and audio. Fewer still are deploying these applications to an environment of over 20 million customers. I can honestly say it’s very satisfying to see the things I’ve done showing up in living rooms across the US, Canada, and Latin America!

Freedom and Responsibility

Netflix is an amazing place to work. No overbearing bosses, no extraneous meetings, no wasting time on process. Our culture is all about legitimately empowering people and giving them ownership of what they touch.  Lots of companies say they do it; Netflix is the first company of more than 10 people I’ve seen that actually does it.  Freedom and responsibility is the mantra: you’re free to decide how things happen; and you’re responsible for delivering. If it sounds simple: it’s because it is!

Needless to say, it’s a pretty cool time to be on this team.  Post in the comments, send me an email, or apply through the Netflix website.  However you decide to do it, get up and do it! We’re looking forward to talking to you!

Am I Busy, Fulfilled, or Just Burned Out?

I’ve come to ask myself the above question recently as I’ve entered what’s now my 15th year of writing software for the Web.  Though I’ve only recently started asking that question (recently as in the past week or so) I suppose it’s been in the back of my mind for at least the past year.  Probably longer if I’m being honest. My lament is likely not that uncommon and it’s likely just the truth of what happens when what was once a hobby has turned into a long-term career.

I’ll start by clarifying that I still love what I do; and especially doing it at Netflix. Nowhere have I worked with a more talented group on more interesting problems and I find myself extremely satisfied in my career at this moment.  But if that’s the case, why do I suspect I may be burned (or burning) out?

Easy, I’ve got a stack of ideas for personal projects a mile high that I’ve been “meaning to get to” for years. But every time I sit down at my computer at home to start one after my son has gone to bed, I find myself far more interested in playing a video game, watching a movie, or basically just lounging around the house with my wife. None of this is particularly troubling; except for the longevity of my disinterest in pursuing my own personal projects. For at least one of them, I’ve been sitting on the idea (and domain name) for over a year with absolutely no progress.

For quite some time, I’ve simply chalked it up to being fulfilled at work: my desire to build software is sated by my “day job” and I’m simply yearning for something different in the evenings when I come home.  Fulfillment may yet be the case; I certainly have plenty of motivating factors at home for doing other things (playing with my son, spending what remains of the evening with my wife, etc.); but, if I’m continuing to be honest, I spend a good bit of that time in pure “veg” mode. My wife loves hanging out “old people / parents” style in the evenings reading a book or playing Little Big Planet while I replay some old Final Fantasy game, and while we are spending time together, we certainly aren’t actively engaged with each other in some activity.  I could just as easily pull out my laptop and do some coding (or blogging as the case is right this moment) with Little Big Planet’s catchy music playing in the background. But I don’t.

Which is why I’m starting to wonder if I’m dealing with burnout. Right now it’s not affecting my work-life in the slightest; but I’m (naturally) concerned that if I am showing early (or maybe not-so-early) signs of burnout that it may grow to affect me at work as well. Basically, I’m starting to take it seriously and ask myself the bigger question: assuming that I am burning out, how can I nip it in the bud before it becomes a really bad situation?

Where Have You Been?

It’s been almost a full year since I last updated this blog; it’s high time I get back to it. Rather than diving straight into the technical conversation, I’ll take a moment to update folks on my life since leaving Brightcove in November 2010.

  • We moved to California
  • We got set up in a new house
  • We went to visit Atlanta for Christmas
  • In February, my son, Lucas, was born

Anyone who’s a parent will tell you that last one is enough to eat anybody’s time.  Completely. :)

Since joining Netflix, I’ve had the opportunity to work with some of the absolute best minds in Javascript engineering today. Seriously, I know you all think of Netflix as “that company that sends me red envelopes;” but, if you take a look deeper, you’ll see that we’ve transformed primarily into an instant-watch streaming company.  Moreover, you’ve probably heard that we’re delivering experiences on various TV-platforms using HTML5.  What you likely haven’t heard about is the incredible team of people that build these experiences, and the thought and execution around Javascript application architecture that goes into these apps. With perhaps a couple of notable exceptions, I’d contend that no one is doing apps in the browser quite like we’re doing.

It’s been an exciting time, and I’ve learned a ton. My hope is to become more active on this blog (and in the community at large) again to share some of those learnings beyond our walls. Now that my son is 6 months old and settling into more of a “normal” routine, I feel like I may actually have time to make good on that agenda.

Until We Meet Again…

Today is my last day with Brightcove; a company which I joined just over a year ago.  My emotions are mixed about this life change; but like the change that brought me to Brightcove in the first place, I’m confident that I’ve made the right decision.  Once again, I didn’t set out to find a new job; yet one came and found me anyway. And once again, I didn’t plan to move across the country; yet we’re working on packing as we speak.

My grandfather passed away on the day I graduated from Georgia Tech; as I was approaching the end of school and beginning the interviewing process in earnest he asked me a question, “So where are you going to live when you graduate?” Knowing my grandfather as I did, I knew it was a trick question but I wasn’t quite sure how to answer. Quickly, he answered for me, “The answer is always, ‘Wherever the job is.’” It’s a lesson I carry with me and that guided my decision to move from Atlanta to Boston to join Brightcove in the first place. And it’s a lesson still with me as we prepare to move less than a year later to California.

My father once told me that he’d become successful as much by his judgment of and willingness to embrace opportunities as hard work. He was a USAF pilot who got into the Air Force at the last possible moment (before he was too old to join) and got out and into the Airline industry at a time when they were hiring. He seized the opportunities that came his way and made the most of them. Once again, I’ve done the same.

I love Brightcove; I think this company is doing great things and will continue to do great things whether I am with them or not. I’ve been continually impressed by the talent of the engineering team, the dedication of the sales, account management, and customer service teams, and the constant belief that the company is a big part of the future of the Web. I really couldn’t agree more with that sentiment and I look forward to watching on from the outside as the company rises to new heights.

I get several emails a week through LinkedIn or other sources about “job opportunities.” I typically ignore or politely decline these messages as most of the are for companies that hold absolutely no interest for me or they’re not real offers; just recruiters looking for anyone who might be interested in anything. However, there are some companies whose name in my inbox would get me excited and when Netflix reached out to me to talk about joining their team, I knew it was worth chatting with them.  Aside from being a great company of which I’ve been a customer for many years, I had long known that my wife wasn’t thrilled with living in Boston and would jump at the opportunity to move to California. Several phone interviews, a 36-hour round-trip to Los Gatos, CA (which included a 3-hour flight delay, almost no sleep, and 5 hours of interviewing) and a weekend of recovery later, I’d accepted the job offer to join the Netflix team.

I’m really excited to join their “device platforms” group; the same group responsible for delivering the totally kick-ass implementation of Netflix for the Sony Ps3. I’m excited to work at a company that has completely embraced HTML5 and Javascript for delivering experiences across multiple platforms with multiple interface paradigms. I’m excited to be joining a team which, if my interview was any indication, is full of true, front-end engineering badasses. My wife and I are both excited about moving to sunny California!

At the same time, I’m sad to be leaving a family I was just beginning to develop in Boston. I’ve made some great friends along the way here and it sucks to have to leave so soon after it all began. I’m also sad not to be able to see Brightcove’s HTML5 players through to a state of real parity with the Flash players.  Ultimately, as is always the case, what I’ll miss most is the people.  I want to thank all of them for welcoming me so warmly to such a cold city and for the opportunity to do some amazing things with them!

So long, Brightcove; it’s been a pleasure!

Early thoughts on jQuery Conference 2010 Boston

Having just spent a whirlwind of a weekend in-and-around Boston for the jQuery Conference Boston 2010, I wanted to share as many thoughts as can as quickly as possible.  I was struck by how much different the tone of this year’s event was; and it was really refreshing to see.

Last year, and indeed in any jQuery-focused event, the tone has always been about people using jQuery to “do cool stuff (easily).” It’s really great; this reason is exactly why so many people gravitate to jQuery in the first place.  However, in his first-day keynote, John Resig hit us with an interesting statistic: jQuery is now used on nearly an third of all websites.  That figure, aside from being absolutely staggering, suggests that the message has been heard loud and clear already: You can use jQuery to make your life better as a developer!

So here we are in October 2010 and the trends of what people are doing with Javascript on the web are changing; the focus is clearly shifting to building what Adobe loves to term “Rich Internet Applications (RIAs)” in Javascript, HTML, and CSS. And I’m happy to say that the jQuery community, especially the wonderful group of speakers, really stepped up and understood that this year’s challenges were new to these developers raised on jQuery.

I think I really realized how different this year’s event was when Rebecca Murphey started talking about design patterns in her presentation. Mediators, Pub / Sub, the Observer pattern; these just aren’t topics that I’m accustomed to hearing about when talking to (most) Javascript developers.  I even think I heard mention of a factory (though, I admit, that thought terrifies me as the factory pattern immediately brings Java to mind with its AbstractDeckOfCardsFactoryFactory implementations).   Could it be that we’re close to inviting the Gang of Four to Javascript conferences? Well; maybe not. But Rebecca’s talk really crystalized the thought in my mind; Javascript, you’ve come a long way, baby!

It’s not that design patterns are new to Javascript; take for example the Prototype pattern which is an integral part of the language. Event bubbling can certainly be viewed as an implementation of the Chain of Responsibility pattern. But these concepts are likely very new to a great many Javascript developers. And, to be honest, why shouldn’t they be? For years, Javascript has been derided as nothing more than a toy language practiced primarily by designers with delusions that they were capable of “writing code.”

Instead of talking exclusively about fun effects (which Karl Swedberg did, wonderfully, by the way) we had talks on code structure and best practices. Garann Means talked about how utilizing template techniques helped her team reduce 12,000 lines of code to 4,000.  Thomas Reynolds talked about structuring multi-thousand-line applications using MVC. And there were multiple talks on testing including conversation of TDD, and systematic integration testing! These aren’t “form validation” and “pop up a modal” examples; these are real applications built in javascript and it’s quite exciting to see our community embracing the future.

I’ve got more to say, and a ton more thoughts on the conference. For now, if what I saw this weekend at #jqcon was any indication of the way not only the jQuery community is going, but the JS community in general, the future looks pretty damn bright!