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):

So long Engineering, hello User Experience

Today was my last day as Lead Software Engineer at Comcast Interactive Media (CIM), and tomorrow I start my new role as a User Experience Technologist / Principal Application Developer for CIM. Its been an awesome 5 years in engineering but its time to move to newer domains.

The decision to move to UX was definitely not something I just woke up to. I have always considered myself an engineer, and have a Masters in Computer Engineering to back that up. Heck, this blog is a testament to my love for programming. I love learning new technology, and am fascinated by programming concepts and domains. However for me programming is the means to an end. My end goal has always been to get ideas down to working apps and getting them out there in front of the huge user base Comcast has. That was the most gratifying part of working on different projects like the Fan, the Comcast.net portal and more recently microchannels within Comcast.net and Fancast.com.

A while back I wrote a post on the need for creative technologists, and that feeling is something that has steadily grown over the last couple of years. The new technologies are enabling a much richer experience for an end user but there is a lack of experience designers who investigate the new platforms. And these platforms are more than just pure technology, they include things Facebook, OpenSocial, Yahoo Homepage, etc. It is something I hope I can bring to the table in my new role. And just for effect, I will re-insert Grant Skinner’s Venn diagram on where UX fits in the engineering/design world:


Thankfully it feels like the perfect time to be at this position. Off the shelf technology and instant on solutions like Google App Engine promise to reduce the temporal gap between ideation and functional prototypes. And with a strong initiative within CIM to encourage grassroots innovation, it seems like the perfect storm of awesomeness :). Personally this position also will help me grow in areas I have traditionally not dabbled in, be it more middleware/backend programming or business and finance. I am very thankful to CIM for enabling me to explore this direction.

I am a little emotional about no longer being called an Engineer, but hopefully I wont be an outcast from the engineering team, even if I do wear a beret and occasionally talk about shades of teal ;). This blog will still be called Code Zen, and I will continue to release open source libraries (the 0.6 release of OpenPyro is coming up btw), but I think now I can be a little less bashful about commenting about user experiences and methodologies. I will be learning a lot in the next few months and as always, will share it all here.

Color me excited 😉 !

On Innovation in big companies

These notes are from BarcampPhilly ’08 that were lost in the depths of my computer’s hard disk and I only just found again. At the event, a few of us from CIM held a round table discussion on innovation, especially developer led innovation in big companies. Here are the points that people mentioned:

  • Innovation only comes from free cycles, even the best ideas need time to be thought through
  • Leverage something thats existing rather than a brand new idea
  • Agile development can actually hurt innovation with too much transparency. Its hard to justify something that you may feel has a long term win
  • Technical managers should whet the ideas of their team members
  • Innovation comes from bottom almost never from top
  • Innovation = Risk
  • True story: At AOL, the AOL IM service was declared a risk
  • Constraints actually push innovation
  • Innovation wont happen without proper incentives/rewards.
  • How about cross team innovation. How do designers/developers collaborate to innovate?

So this has only taken almost a year to put up, with BarcampPhilly ’09 coming up soon. Since then there has been a few opportunities within CIM to push bottom-up innovation, including a labweek for all of engineering.

Personal landmark moment: My first patent: On the design of Comcast’s Fan Player

I joined Comcast four years ago, fresh out of graduate school with a Masters in Computer Engineering and a passion for the Flash programming language. Back then, Comcast was one of the rare companies that had invested heavily in Flash and getting the opportunity to develop applications in Flash that would be seen by a huge number of users was an exciting opportunity.

One of the first apps I got involved in and was my main project till about a year ago was the Fan. Originally conceived by my then boss and later friend and mentor Jeremy Landis, the Fan was a unique application. Comcast was probably one of the first companies who invested in Flash video back when it had just about come out.


  • When I joined, the Fan version 1, was written with all the goodness of Flash 6: code in frames, gotoAndPlays, etc etc. That was not too easy to work with.
  • The app was ported to the goodness of ActionScript2 soon after the release of Flash Player 7.
  • Version 3 of the application added some amazing redesign by our new design lead, Alfredo Silva and some amazing interaction models by Gabo (of Gabocorp fame).
  • The 3.5 version of the player introduced the ability to switch to a more conventional square view. There was a sentiment that adding a more conventional interface would lower the barrier to users actually interacting with the application more.
  • The square view was extended even further in Fan 4 which was also written from ground up in Flex 2. Porting the circular view to Flex 2 was an interesting challenge and I think we did an amazing job with Flex custom components.
  • The circular view was discontinued early this year as was the monolithic Fan application with the Comcast.net portal moving to a more conventional single-video-on-page experience.

Its kind of ironic that today the original team responsible for the Fan was awarded the patent by the United States Patent office on the design of the application. My first patent! How f-ing awesome is that !!!

The Fan was always unique if anything, and there was always the debate whether a circular interface was indeed the best to watch rectangular video. But the people loved it for sure, so much so that it even won the Flash Forward People’s Choice award in Sept 2006, and yes, that was for the circular interface. I remember a lot of stories from friends who had parents/relatives who loved the circular interface, and it was perplexing to the usability folk, after all it was clearly breaking all rules of application design. But that was where the magic was. It was different, iconic and had a long history with the Comcast customers who used it to catch up on daily news, events, gossip, etc. Heck, it was cool! Cool enough for even Philebrity to run a post titled The Only Thing Comcast Ever Contributed To The Internet: “The Fan” (Philebrity posts are not usually the most Comcast friendly).

But anyway, this is a moment to celebrate. I have one more fond memory of the Fan now, and believe me, this one is hard to forget :). Special thanks to all who went towards making the Fan a successful product, the editors, content video team, the design,dev and QA teams, etc. This was a fun ride.

Fan 1, 2

Fan 3

Fan 4