Emmy’d

Wow, my first Emmy,

Rather Comcast’s Emmy for “Outstanding Achievement in Engineering Development” for the iPad app I worked on for most of 2010. This one is my copy of it that now adorns the top shelf in my office.

Bonus points for being one of the first 3 engineers on the project!

You can find a more complete writeup on the award on the Comcast Voices blog. I haven’t been involved in that app since Jan 2011 and was recently informed that most of my code has finally been refactored out with newer/better implementations, but here’s hoping there is at least one dead code path that the team forgot about that compiles to the production app that still has my name on it πŸ˜‰

Comcast shows off 1Gbps Broadband /Filed under I-did-this ;)

Am only now catching up on all the online news around the Gigabit broadband demo that Comcast CEO Brian Roberts showed off last week at NCTA. If you haven’t seen it yet, check out the video below (the video seeks to the point when he starts showing the 1 Gig prototype, though before that is the probably-cooler next gen Comcast set-top Box experience):

The demo was the end product of a LOT of work by a lot of folks and it was great to see it work without a hitch at the end. The videos downloader client itself was my responsibility and was written in Java Swing.

Here are some other links from around the web about the demo:

Also check out the official post on the Comcast demos at NCTA.

PS: This is the second demo I have worked on for NCTA, with the XFinityTV iPad app prototype last year. Looks like I am a veteran now ;).

So Long CIM, Hello Comcast Innovation Labs

This post has been a little hard to write so I have been putting it off for the last few weeks.This week has been my last official week with Comcast Interactive Media, the group I have been with for the last 6 years. Its been a fantastic run, from back in Oct 2004 when I joined what was then the “Comcast Portal Engineering Team” straight out of grad school.

In the last few years I have worked with some fantastic people on products that have touched millions of users. I have had great managers throughout who have helped me grow and even experiment with what I’d like to focus on, which itself has gone from leading production applications like Comcast.net’s Flash portal and the flagship Fan product, to more recently looking into bringing technology innovations early in the product conception process within the CIM User Experience department.

But while building these products was awesome, I have always been more interested in emerging technologies often tangential to Comcast/CIM’s core business. I have also been pretty passionate about innovation within Comcast itself and even led a discussion about that at a previous BarcampPhilly event (the notes on which you can find here). It has always been challenging trying to be innovative and reactive to all the new stuff happening out there while building out products with well defined roadmaps (My former manager, friend and lead conspirator on foiling my entire office while I was on vacation Aaron Held even has a blog with that title πŸ™‚ ). Moving to the newly formed Comcast Innovation Labs with a mandate of looking at emerging technologies and products as potential areas for Comcast to grow in has me pretty excited.

Thankfully the transition only currently requires me to switch floors, moving from the 18th to the 35th, so all you CIM readers, swing by once in a while. You know I’ll be on CIM floors almost everyday ;). The engineering team still has the best coffee machine in all of Comcast Center.

P.S: Its weirdly nostalgic to look back at all the posts on this blog tagged CIM. Must. grab. tissue…

The grand 2010 recap post

Wow, cant believe its that time already.

2010 was a pretty great year for me. In Nov 2009 I moved to the User Experience team hoping to be the voice of technology as new projects were conceived and features enhanced. So the year began with me learning the workings of the UX team which was fascinating. The creative process is, not surprisingly, very different from the engineering one, and sitting in those sessions was ridiculously educational. CIM has some pretty fantastic Design and IA folks and I got to learn quite a bit on concepts such as Mental Models, Task oriented design, User Persona’s etc. I also ended up reading a few books on my new role (of which About Face might be the best one, and I recommend it strongly to anyone in the UX/UI domain) which I never would have done if I hadn’t moved to this team.

Suffice to say, if the year needed to be summarized in a word, it would be “educational” πŸ™‚

Around Feb, I also got involved in a prototype for the project that is now the Xfinity iPad app. As a UX prototyper, I was on the 3 people big prototype team that built the demo that was shown at the NCTA event. After that I ended up working with the brand new Advanced Engineering Team as we rushed to get the final product out of the door. My role in the team was not UX really, but implementation. After the initial learning curve of Objective C, I got pretty comfortable with it and actually realized that user interface frameworks and technologies are pretty similar even with syntactical differences. I wrote about the whole Xfinity App development experience here. In the last few months, I have returned to prototyping but these days they have all been functional additions to the iPad app itself.

While I didn’t write as much code for it as the iPad, I have also become extremely passionate about the Android platform. While less polished than its i-Cousin, the deeper I look into the architecture the more awesome it seems. I built a couple of apps for internal demos that ran on Android (in Java) and that was fun. I feel less proficient in the Android UI framework than in UIKit, just by virtue of time spent developing on it, but its something I hope to get better at next year. The Android world definitely lacks the sexy factor that is going on with the iDevices, and I am really hoping that changes both with upcoming OS updates and developer community maturity. I also played around with AIR for Android a little and it seems pretty decent. I am working on a project using that now. The biggest thing that has going for it is not just the familiarity of ActionScript but also the tooling of the Flash IDE. As much flak as it gets, the Flash IDE is rather fantastic for dropping visual assets for an app. I really wish AIR for Android played nicer with the core Android framework, though there are ways of doing that as mentioned in this post by Elad Erom.

EspressoReader, my AIR app for consuming news (currently as a Google Reader client) continues to evolve. Just building something like that has made me learn so much about the way we consume information. It has also gotten me hooked on books on collective intelligence and text analysis. I will release a new version in the coming weeks that I am really excited about. So if you haven’t tried the app out yet, give it a try by installing it from this link to the Adobe AIR Marketplace.

I ended up travelling for work quite a bit this year, attending some pretty fantastic conferences like the NCTA Cable Show, the Web 2.0 Summit and TechCrunch Disrupt. This is a change for me, as these were more about the business and strategy than my usual fare of tech conferences. From my schedule in Jan, looks like this will continue. Btw, I am heading over to CES so if you are heading there as well, send me a holler πŸ™‚

Finally, looking ahead, 2011 seems to be at a great start. There are a lot of changes afoot which I’d love to share soon. So stay tuned πŸ™‚

Xfinity TV App is finally in the App Store

Its pretty awesome when the project you have been working on for so long is finally released. Last week, the Xfinity TV App was finally available on the Apple App Store, and has been in the top 10 most downloaded apps for the iPad pretty much since then. The app is a free app and is pretty fantastic, turning your iPad, iPhone and iTouch into a virtual remote control for controlling your Comcast Xfinity Cable box.

If you haven’t used it yet, here is a video walkthrough of the app in all its glory:

Building the app was a huge learning experience for me. Before this project I knew very little about iOS and Objective C, but working with some of the smartest developers on the platform got me to learn iOS app development pretty fast. At this point, I have worked with so many UI technologies and frameworks that I was able to apply a lot of my learnings almost directly (with syntax differences of course). For example, one feature I was responsible for was the OnDemand listings view in the app. To implement the view that was supposed to show the thousands of assets available on Xfinity, I was able to implement a virtualized list that recycles item renderers to effectively manage memory. The api and implementation of my component was very influenced by the Flex and OpenPyro List control (I have previously discussed virtualized list implementation in ActionScript here).

Btw, I have to say, if you are just getting started with iOS, the Stanford University video series on iPhone app development is a great place to start.

The Team

IPad Dev Team

Building the app was quite a fantastic (even if extremely hectic) experience, but I have to say the best part was working with an awesome team. The app definitely had us working late nights on multiple occasions but thats a lot more manageable when you work with people you actually enjoy hanging around. The picture below is the app team but behind the scenes there was a huge number of engineers across the country that handled the network and set-top box updates that allowed the app to work.

The video below has Sean Brown (Sr Director of the Advanced Applications Engineering team) talk about the development process of the app. The video occasionally switches to the co-working space that is set up where Engineering, User Experience and QA teams work together.

The Response

… has been fantastic and thats amazingly gratifying. I have embedded some of the Tweets I just found doing a twitter search for “XFinity Remote”, and its awesome to see how people react to it:

//

For more formal reviews, check out some of the posts mentioned below:

As awesome as the app is, there is a lot more features that are being added to it now. Recently we demo-ed the PlayNow functionality thats being added to the app for an upcoming release at the Web 2.0 Summit. Embedded below Neil Smit, President of Comcast, giving a walkthrough of that version at the event:

If you want to keep up with app updates etc, feel free to follow XfinityTV App on Twitter. Also if you are an Android user (like I am) rest assured that the Android version is well on its way :).

Have you seen the XFinity Social Remote app?

I am a few days late posting about this, lets just say I have been catching up on sleep I had been deprived of for the last few weeks building this app. So in case you haven’t seen it yet, check out the video of the XFinity Social Remote, unveiled at the NCTA Cable Show Conference last week.

To read more about the app, see the official post on Comcast Voices on the app and its future.

More reviews:

Fantastic stuff πŸ™‚

Congratulations to the CIM CrossPlatform team: Comcast’s MyDVRManager gets Gizmodo’d

There is a lot of blood sweat and tears behind this product, but its pretty satisfying when you see how much people like it. CIM’s MyDVRManager application for remotely managing your DVR hit Gizmodo yesterday. The service is being rolled out in phases and a good way to check if you may have access to the application is if your on-screen guide has changed to look like the new one as in the video below:

RDVR was also the biggest JavaScript/HTML based RIA I worked on with Chris, Mat and Bonnie (note: I have since moved from being Software Engineer to User Experience Technologist position but the RDVR remains one of my main projects, now from a user experience prototypes point of view) and these guys have done an awesome job with the codebase. Some of the things we used there were:

  • JQuery
  • ScrewUnit for unit testing
  • LessCSS for CSS rules
  • An internally custom MVC framework that completely decouples UI from the business logic

So once again, congrats to the CIM CrossPlatform team (Design/IA/Dev/Product/PM and QA). Am anxiously waiting for the app to go live where I live so I can be as happy as this guy here (he is using the manager to manage his Comcast Tivo box, but its the last version of the client application with a different color scheme):