I'll Sleep When I Die - All for HTML5

The following post is a long-winded summary of my experiences over the past year. I started a user group, wrote a book, gave up a secure job, and changed jobs 4 times. All to push myself, get uncomfortable, and better understand the challenges that front-end developers are facing in 2012 and beyond. I gained more than I ever thought possible.

Sometimes you have to give up everything to find something.

Almost one year ago (September 2011), I started the HTML5 user group in Atlanta Georgia. This started as an experiment and outlet for me to practice my front-end related presentations. I really had no idea who would come or how fast the group would grow. But much to my surprise, the first meetup brought out around 60 attendees. One year later, the group has over 1200 members, 5 awesome sponsors, and I am now connected to some of the coolest people, developers and thought leaders in the industry. I could write an entire blog post on this topic alone, but starting this group has been one of the most humbling experiences of my life. Many of the folks that come out to the meetups remind me of different stages that I’ve gone through in my career. Some are far ahead of me and are doing things that I really admire and others are just starting out and looking for work. Overall, I’ve learned that community creates technology. HTML5 and mobile have inspired developers and designers to think differently and do new amazing things, but in the end, it’s the developers and community who collectively see through the marketing hype of products and platforms to choose viable/useful solutions.

The month after starting Atlanta HTML5 (October 2011), an article that I’d been working on for months was finally published on html5rocks.com. It just so happened that the article went out the day before my presentation at JavaOne 2011. So everything aligned really nicely and the talk went well. This all leads up to me authoring a book. During my stay in SF, I was introduced to Meghan Blanchette who is an editor at O’Reilly. We started talking and I told her it would be cool to write a book. I casually agreed that I’d send her a proposal for a book that talks about HTML5 in the enterprise. After all, I come from a decade of heavy middleware stacks and server-side generated markup. So I thought my perspective might be valuable as developers make the transition to offline capable clients.

In November 2011, my proposal was accepted and I signed the O’Reilly contract for a book entitled “HTML5 Architecture” , which would later be renamed to “HTML5 and JavaScript Web Apps”. This was a huge personal step for me. At first it was very exciting and I was motivated to create the best HTML5 related book the world had ever seen. I committed to the fact that I would give up countless afternoons and weekends (away from my wife and kids) to research and write about the latest web technologies available to developers. I had this burning desire to understand how HTML5 would affect us both now and in the years to come.

So now, lets get back to reality and my day job. While I had grandiose visions of creating a kick ass book, I still had obligations and commitments to maintain for my employer, Red Hat. During this time I was involved with a new project, actually this was the second project I co-founded at JBoss - we named it AeroGear and officially launched in February of 2012. AeroGear now employs some of the greatest developers of our time. It is truly an honor to say I was a part of this project and I will always admire and respect what the developers behind this project produce.

Not long after AeroGear was launched, and after I’d spent a few months researching and writing my book, I realised that I was out of touch with what developers were truly facing. It’s easy to write about what “you think” developers want and need. But it’s a completely different story when you’re in the trenches and in the real-world of day to day development activities. So, I gave up my 4+ year tenure at Red Hat and submitted my resignation. Trust me, this was not an easy thing to do. I had a really awesome job at Red Hat, I worked remote and the company fully supported me to evangelize whatever project I was working on. This means I got to work and travel all over the world, and work with the brightest developers in our industry. But, I wanted more on a personal level. Not just for my book, but because I had gotten way too comfortable with my day job. From what I’ve seen, as IT professionals, it hurts us to stay at a job longer than 4 or 5 years these days. imo unless you have some really nice golden handcuffs or are truly happy with your situation, depending on a company for retirement is suicide. So I took it upon myself to become uncomfortable and to get back out in the real world. The only way you can experience the problems and challenges developers face is to be one of them and work in their environment.

In March of 2012, I put in my 2 week notice at Red Hat and decided to become an independent consultant. I had interviewed at quite a few companies and decided the best route to take was the most uncomfortable one - a pair programming Ruby/UI developer. So I started a contract with a Cox owned property and experienced, first hand, the problems that professional developers face. Things like converting a six year old legacy B2B application from prototype.js to jQuery. Other front-end problems like jQuery architecture and writing plugins, strategies to bubble up DOM events, etc… CSS formatting, preprocessor strategies and many more issues that your average corporate developers desire to get right. I was finally in the trenches with an audience that “I thought” I previously understood.

In the weeks/months before my consulting time at Cox/Manheim I had been engaged by Square, Google and Wikipedia for potential jobs offers. So I was rushing home in the afternoons to interview for positions that would move me out to the bay area. Unfortunately these opportunities didn’t work out for whatever reason, but honestly, putting myself out there and going through these grueling interview processes helped me out tremendously - as you will see.

devnexus On a side note and speaking of “putting myself out there”, on March 21st I had agreed to do a talk at a local conference here in Atlanta called DevNexus. As I was creating the slides for my presentation, I kept thinking about how I would verbally survey the audience at certain points to get a feel for what their experience level was. “Raise your hand if…” kind of thing…Then I thought, hey! I can just write a simple HTML+CSS slide deck and create a WebSocket back end that will allow the audience to participate with their mobile phone. Cool! So I spent a week hacking on this and finally got a prototype up and running. I did the talk and the room was packed, people were spilling out into the hallways (ok, so it wasn’t exactly a HUGE room, but still it’s fun to say) Anyway, The talk went great and I had almost 100% audience participation. I was invited back the next day to give the same talk after another speaker backed out.

Now that I was an independent contractor, I had this feeling of, yes, you guessed it… independence. I was getting paid Corp-2-Corp through whoever would hire me at a specified hourly rate. I was able to speak at conferences on organic, community topics and I wasn’t giving a sales pitch for a specific product or platform. I was a hired gun and making it on my own, paying high insurance costs for my family (and business), and making one hell of a commute. devnexus So, my next bright idea was to enter Atlanta Startup Weekend in April of 2012, form a team of volunteers and pitch the presentation tool that I used at DevNexus as a startup idea. Unfortunately, the idea didn’t get picked, but I met 3 awesome developers who joined my team and those connections were huge wins. I also made connections with many other like minded entrepreneurs, so overall my first time joining an event like this was priceless. Again, just putting myself out there was another way to level up…

2 months into my contract at Cox (June), I was finally getting close to finishing my O’Reilly book. A lot of my effort was going into the code examples in the book and the ideas behind it. So in June, I finally launched html5e.org. This site contains a ton of examples and practical implementations of W3C and HTML5 apis. The basic idea behind html5e is to defragment the mobile (and desktop) browser space by using a core set of APIs. Read more here.

After 3 months with my consulting gig at Cox/Manheim, I received a call from the senior development director at CNN. He had attended the same talk I gave at DevNexus 2012 (where I used my presentation tool), and wanted to know if I’d be interested in joing the CNN.com development team. I was pretty happy with my contract at Cox, but after I asked what I’d be working on, I couldn’t turn the offer down. He told me that I’d be working on the responsive re-design of CNN.com or improving overall performance. Who wouldn’t jump at the chance to improve a site that gets 60 million uniques per day? To say the least, I had been “primed” for interviews after my experiences with Square, Google, and Wikipedia so I felt completely comfortable walking into my interview at CNN. Onsite, I took a 30 minute written exam and interviewed with 7 people. CNN does a great job of screening candidates. Luckily I made it through the screen and started the contract on July 1st.

At this point, just the interview practice alone had given me a great idea on the bar that the world’s top technology companies set. It’s invaluable and I recommend everyone do it, especially if you’re a cocky, egotistical developer type who thinks he/she is the hottest thing since Honey Boo-Boo :)

Not sure if you notice the pattern here, but somehow I managed to start jobs at the beginning of each quarter. No real importance behind it, just thought it’s cool that it continues to happen throughout the entire year.

While I was working at CNN, I immediately took the initiative to look at how they were implementing their “share bar” or buttons that allowed visitors to share content through social media. I also wanted to understand how Web Intents could possibly fit into the picture here. My findings were interesting enough to get some of the top developers/authors/speakers in the industry to comment on my post. It really is motivating when you see your blog spike from roughly 100 unique visitors a week to 1000’s. I even got a shout out on TwitterOSS :) devnexus

Next thing I worked on at CNN was page load performance. We started having meetings with CNN’s best and brightest to see what we could do to add performance improvements to CNN’s home page. The problem with making changes like these in most large organizations is that everything is product based. Therefore, you usually don’t have any internal sponsorship (or funds) to make these kinds of changes. Fortunately for me, I was willing to take afternoons and downtime to work on the performance issues. After taking a look at what could be done, we decided to break JQuery out of the concatenation process and far-future cache it. That simple change alone Improved CNN.com performance by 17% and saved almost 1TB of outgoing data per day. You see, CNN does regular interval releases like most folks and their main concatenated JS file is revved on each release. So users had to re-download that file upon each visit after release. Before we made the change, we had to have a way to measure the performance impact both before and after improvements were made. Enter PhantomJS - With phantomjs, we were able to create a script (later named loadreport.js) that would run for each development build. Thus, giving us a baseline for the changes we were making. For the full story behind loadreport.js, check out this post. On August 16th, loadreport was picked up in the JavaScript weekly newsletter and again, blog spikes were abundant :)

The point is, I don’t give a damn who you’re working for and what you’re doing; just blog about it. If you want to get better, write about it. Find something to write about if you’re working on boring shit.

My time at CNN was a lot of fun and I met some really talented developers. I had no intentions of leaving this job and planned on staying there for my full contract length, BUT…. one day I got a call. The call came from an good friend and colleague that I had previously helped to bootstrap a startup. I was actually the third co-founder of this startup, but I had to back out due to all the craziness that you just read about (and more). But I still had a vested interest in the company and we parted ways on good terms. So, I was told that they had just been acquired by a startup in Palo Alto called Apigee and he wanted me to come pick up where I left off. On October 1, I started full time employment with Apigee and I couldn’t be happier. I had the opportunity of taking my original UI and integrating it with Apigee’s look and feel amongst many other things. This has really been the icing on top - the cherries come in the following section - of an incredible 1 year journey. I’m looking forward to doing many great things with Apigee’s technology and the future of the web applications.

Steve Jobs said it best in 2005, when he told those Stanford students to “Stay hungry. Stay foolish”. Even though I could stand to lose about 10-15 pounds. I have stayed foolish and I listened to my heart on what I should do. I constantly had butterflies in my stomach and was pushed to the very edge of the stress levels that I could handle. That is how I knew I was doing something worthwhile.

On October 26th, my O’Reilly book is done and was sent to the printer. It is now available as an ebook and will be available in print on November 12th.

On November 1st (today), the idea that I helped create and shape got it’s first press release and official public launch.

apigee mobile analytics

I’ll be speaking at a few more conferences in November, Devoxx and RWX, and after that I’m going to lay low for a while. The amount of stress that I’ve undergone over the past year is not for the faint of heart. Imagine trying to prove yourself to a new team of developers and managers every 90 days. On top of that, they all knew that I authored a book, so some people expect you to shit rainbows at times. Managing expectations can be a bit tricky as well. So I have my acid reflux medicine now, I can sleep pretty well after a couple of beers, and I won’t have to pay for many more haircuts as my hair falls out at an even faster rate :)