Tag Archive for 'technical'

Engineering Team Communication: Using Mailing Lists Effectively

SAN FRANCISCO - JANUARY 24:  A stack of vote-b...
Image by Getty Images via Daylife

Most teams in business today rely on email.  Though imperfect it is ubiquitous for electronic communication.  It has proven the lowest-common denominator for communication between team members.

The question of how to organize email is often left to each team member.  I think this approach is lacking – it leaves folks with good organization skills at an advantage to keeping up with information.  As a team we should all be committed to keeping everyone in the loop.  A little effort up front can pay big dividends in team productivity.

Mailing lists allow team members to easily filter email and keep track of emails as appropriate to their role on the team.  In larger teams they also allow for managers in the team to manage the email lists appropriate for their team members.

From my experience (which is assisted by my last team at Microsoft – the former Max team) the following list of mailing lists should be created for a product team.  Assume each one is started with a short description of the product/team (for example: gizmo-dev is the developer mailing list).

-dev: developer mailing list.  Only developers on this list.
-test: test mailing list.  Only testers on this list.
-bus: business analyst, program manager mailing list.
-team (aggregate of -dev, -test, -bus): entire team, sometimes includes upper management
-commit (aggregates team): all checkin emails related to software development
-deploy (aggregate of team): deployment announcements for software deployments
-chat (aggregate of team): non-work related chatter – like new joke site, xkcd comic, etc
-oof (aggregate of team): out of facility announcements – like at the dentist for the next two hours, out for a week next week etc

Continue reading ‘Engineering Team Communication: Using Mailing Lists Effectively’

Model-View Controller Design Pattern Presentation

Quick post with a couple attachments. Recently I put together a couple presentations to present to a working group inside University of Washington.

If you are on a team or in an organization that has not heard of model-view controller, hopefully you can use this presentation to bring your team on-board with the simplicity and power of the pattern.  There is lots of information on Model-View controller all over the web but I couldn’t find a presentation that tied it all together like I wanted.  Feel free to let me know about other such presentations in the comments.

Model View Controller

The second presentation is an introduction to ASP.NET MVC – the new Microsoft web framework that substitutes Web Forms for web development. Luckily this framework released very recently and we have been using it at work. It is a pleasure to use instead of Web Forms.

Introduction to ASP .NET MVC

MVC is everywhere, let me know your thoughts on these slides and on good online resources for design patterns in general.

Download them here, or check them out on Scribd:

Reality Check: There is No Perfect Job

This is the first in a series of posts about the realities of life as I have found them.

“Find a job you love and never work again” – This quote is completely wrong.  The truth is that every career, every job, almost everything in life, has both good and bad parts mixed together.  There is no job that will make you feel like you are not working all the time. This post explores how to come to terms with this reality and helps identify how to choose a job that is maximally rewarding and enjoyable.

Continue reading ‘Reality Check: There is No Perfect Job’

2008: Year in Review

Editorial Update: Removed a couple of unnecessary stories from this post – they served no purpose and I decided I didn’t need them to get my point across.

Though it is past April 15th and I missed my “taxes” deadline for this post, I still wanted a chance to share some of the events from 2008.  It was another big year, so I’m sticking to the ordered/chronological list like last year.

  1. Continue working for Clearspring
    The job had me working day and night, with frenetic pace that only a startup can impose.  Back then I thought I was thriving in it – somehow having convinced myself that the “world” would end if I didn’t crank out whatever feature I was working on.  Unfortunately it was wreaking my health.  My weight has skyrocketed and I was eating badly.  I also developed a lesion on my face, around my chin.  More on that later.
  2. Shaily arrives on March 20th
    We waited for four long months after our marriage for Shaily’s visa to come through (it was 11 months after we filed for it).  In many ways our marriage didn’t really start until Shaily got here and we were living under one roof for the first time.
  3. Clearspring gets more funding (read more here and here)
    My life and my work are inextricably connected.  I somehow feel like “I” got more funding when Clearspring did.  Again, only the koolaid a startup can offer. My health is still in decline but I’m gung-ho about the company, my future, and our lives in Arlington VA.  When I am at work I am feeling guilty about not being at home with Shaily; when I am at home I feel guilty I am not working harder at work.  This is a recipe for disaster, I just didn’t know it then.
  4. Wedding Reception in Portland OR
    My parents throw us a wedding reception in Portland.  It was a great ceremony and we were so happy so many family members could attend. Took one week off from work (the maximum allowed at one time – yay startups) for the reception and for a really fun road trip down the west coast from Portland to LA with my cousins.  I had to leave from LA to get back to work, but Shaily got to enjoy LA, Las Vegas, and more.
  5. The Bit Flipped
    If you know me then you’ve probably heard of me talk about this moment before – it has happened to me before in other teams, at other jobs, in relationships.  It is the moment of clarity that has been brewing in your subconscious for weeks or months that finally comes to the conscious. The picture becomes clear. I no longer want to work for Clearspring.The new funding had raised my hopes for a chance at more equity in the company – especially considering what it was taking out of me.  For twelve Tuesdays in a row during the summer I was at work at 4am to deploy software.  For example, on my birthday, I worked from 4am to 9pm. It had become increasingly clear that more stock options were not being issued to anyone in light of the new funding.

    The work environment that once seemed electric seemed strained and unnecessary.  The constant “fire drill” of chasing after immature web 2.0 APIs with hopefully slightly less immature technology seemed like a cruel joke.  Though in my first professional leadership role I was struggling to find vision/direction/focus in the engineering organization.  I felt strongly that the executive engineering management was not providing  leadership to the organization and was not nurturing the growth of the team.

    Before finalizing my desire to leave I asked to be moved to a different team in engineering – to work on the advertising platform work Clearspring was doing.  I have a lot of respect for the lead of the advertising team and felt I could learn a lot by being on his team – both technically and from him.  My request was not granted with an explanation from my boss (the VP of engineering – not the one that hired me – Clearspring was on its 3rd VP of engineering during my tenure at this point) that my knowledge in my current team was too valuable to be lost.  I was done learning new things on the current team, tired of the work environment and the lack of leadership, and disappointed that no more stock options were going to be available. I decided it was time to leave.

  6. Clearspring Acquires AddThis (read more here and here)
    Another opportunity for Hooman and the Board to issue options comes and goes.  No options are issued.  My mind is already made up about leaving.  I ask to no longer lead a team and am quietly being a developer that works much closer to 50 hours a week instead of what I was doing earlier in the year.  This gives me the time I need to begin the job search and do phone interviews.  Shaily and I decide to relocate back to Seattle WA.  My parents had decided at the same time to spend more time in Portland OR so Shaily and I moving back to Seattle seems natural (moving back for me, moving for the first time for Shaily).
  7. Accepted a position at University of Washington
    To my pleasant surprise the university worked very quickly from cover letter to phone screen to phone interview.  I had already scheduled a trip to interview with other companies in the area and my team was able to work me into a spare day I had on that trip to interview me in person.  I accepted the day the offer was presented.  Since we had an open workspace in Clearspring where very few of us had office phones I had to walk out to my car to negotiate my offer. I wanted to make sure Shaily and I got a break between jobs (something I didn’t do between Microsoft and Clearspring) so I asked for a start date of December 1.  This gave Shaily and me the month of November to drive cross country.
  8. Road Trip Cross Country in November 2008
    I will write separately about the road trip – here I’ll just mention that it was memorable, enjoyable, and worth doing. We got to see: Philadelphia, New York, relatives in Zanesville OH, Kent State, UMich Ann Arbor, Chicago, Minneapolis (well really Mall of America), Bend SD, Mt Rushmore, got stuck in a snow storm and spent the night at a rest area in Chugwater WY, Park City UT, and finally Salt Lake City UT.
  9. Started work at University of Washington
    I’m a senior software systems engineer working on migrating a paper certification process to an electronic one (read more here and here).  This means retiring the mainframe that has been used since 1970s and building a new enterprise system.  The team is just finishing the first major milestone of the project – migrating folks off of the mainframe.  Part of an excited team that is nothing like the stereotypical professional staff team at a university.  Ramp up in ASP .NET development and designing the next major milestone of the project. Lots of learning, and 40 hour weeks. I am visibly more relaxed every day – Shaily notices immediately.

    As a note, Cleaspring had their first major layoffs in December (see here).  I was sad to hear this happened because many of the guys I worked with there were underutilized and overall I felt the team could have produced so much more under the right leadership.  I was glad to find out that many of the team members I knew who were laid off landed okay, some in situations far better for them than Clearspring.

  10. Relocated to Capitol Hill neighborhood of Seattle
    Shaily and I rented an apartment below our friends Brian and Miriam (and Cam) in Capitol Hill.  Brian and Miriam were scheduled to move to Hawaii in January so being right next door meant we got to hang out every day in December and until they left.  The snow storms in Seattle around Christmas were fun – everyone’s travel plans changed and we all spent Christmas together.  Brian and Cam made a turkey. (Shaily and I made ginger cookies from scratch.)  We all partied on New Years together, ringing in 2009 with fake confetti while watching fireworks and dancing till 3am on tunes spun by Cam.

The year brought several significant changes to my life. I changed jobs and moved cross country – AGAIN.  I started living with my wife.  I learned first hand what it was like to work at a startup.  The year ended with me in a very different mental place than when it started.  Maybe it’s maturing, maybe it’s living a married life, whatever it is I am glad it happened.

A site reborn. rajatarya.com v2 is public

rajatarya website

This website, my website, is finally rebuilt and I’m happy with how it is built now and for the most part with how it looks.  There are always improvements to be made, but I am most happy with how I put this site together – like a software product – which should enable me to make a lot more changes rapidly in the future.  Please let me know what you think about the redesign in the comments.

In this post I will talk about what changes specifically have been made to the site, how it is reborn, and what plans I envision for it in the future.

Continue reading ‘A site reborn. rajatarya.com v2 is public’

boxee Installed on Apple TV – the little box comes to life

boxee

Problem Description: Crappy interface for playing .avi files with .srt files for subtitles on Media Center PC.  This interface is what I predominantly use My Media Center PC for these days – simply to play movies sitting on my home network, with subtitles.  Since Windows Media Player itself can’t handle .srt files for subtitles, I am using a VLC Player plugin on Media Center to play these movies.

Proposed Solution: Install boxee on my Apple TV and have it discover my networked movies/music.

I got boxee Alpha installed on my Apple TV this morning and the little Apple TV has been reborn.  After getting onto the Alpha earlier this week I followed the instructions on the Google Code project for atvusb-creator and got a USB pen drive formatted and installed with the additional XMBC and boxee applications.  After watching “how-to video: boxee on Apple TV” I realized that the installation process wouldn’t be too tough, and put it on my list for the weekend. 

Sunday morning: I dug up an old 512Mb USB Flash drive and, after reading the Google Code project notes, got started on my Mac Book Pro.  The patchstick created I rebooted my Apple TV with the patchstick and watched the Linux boot kick up.  Then it hung.  After groaning I went to the bug list for the Google Code project and found out that SanDisk 512Mb USB Flash drives have been reported not to work.  Found another USB Flash drive (1Gb Verbatim one this time).  Went through the process again, and this time the patchstick loaded completely and installed boxee and XMBC.

First I needed to tune boxee to display correctly on my DLP television (which was painless and obvious with a great settings interface for manipulating the display properties) and then the full interface was accessible to me.  The interface is beautiful.  In no time I had it discover by shared movies on my local network and my shared music.  My .avi movie files with .srt subtitles played without a hitch, and the interface is perfect for watching movies.  Later I’ll walk my wife through it and see if it passes the wife test.

Solution Analysis: boxee is clearly in alpha, but I’m already hooked to it (crashes and all).  Hopefully once it becomes more stable I can officially retire my Media Center PC (which is on its last legs) and just use boxee for my movie / music playback.  Kudos to the boxee team and thanks for creating such a polished alpha.  I can’t wait to see what the team puts into this product next.

Backlog of Reading Posts and Updated Site

Finally got around to cleaning things up on my website.  Upgraded Gallery2 and Wordpress.  I also started separating my Twitter Tweets as a separate category so the daily digests will keep from cluttering the main page and my RSS feeds.  Thanks to this article for explaining how.

Though I haven’t made it all the way through my reading from 2007, I will finish it off soon enough.  In 2008 I haven’t been reading as much so there is less to write about.  The backlog of posts published today are:

  1. "Men are from Mars, Women are from Venus" by Jim Gray
  2. "Founders at Work" by Jessica Livingston
  3. "The Myths of Innovation" by Scott Berkun
  4. "A Thousand Splendid Suns" by Khaled Hosseini
  5. "The Namesake" by Jhumpa Lahiri

It feels good to be blogging again, even if it is mostly for my own archival purposes.  Lots of pictures to upload, there are a handful of draft posts that I really want to get back to and finish off – some actual content from inside my head.  I realized recently that the reason for my lack of blogging was the lack of free offline blogging tools on Mac OS X.  This sounds strange, but I feel most compelled to write new content when I am not online.  Once I’m online there is always other stuff to do.  Introspection time is often reserved to offline time.  Now that I have a new Windows box I use everyday again (Lenovo ThinkCentre M-Series) I installed Windows Live Writer and have been using it more and more.

The look and feel of the site is totally stale, no rounded edges and fixed width are annoying me.  One of these weekends I’ll revamp the theme for the site.

Thanks to everyone for putting up with my daily Twitter posts in RSS etc – won’t have to worry about that anymore.

2007 In Review – The Briefest of catch up posts

My website has become remarkably stale. And honestly I don’t have the time to document all the changes that have gone on in my life since the last time I’ve posted. But I also cannot just ignore this past year and pretend nothing has happened.

So, in classic, boring, corporate style, here is an ordered list of events in my life since my last post (maybe someday I will get to expand on any of these items, but we’ll see):

  1. Worked on Windows Live FolderShare
    Worked on some infrastructure to facilitate refactoring the backend FolderShare code – still waiting to hear an official announcement from my old team regarding a release of FolderShare.
  2. Worked on Windows Live Messenger (my work released in v8.5 and whatever next version turns out to be)
    Worked on the existing Sharing Folders feature, worked on implementing major changes for the next version of Messenger, hopefully this will be released soon. My v8.5 changes were mostly bug fixes.
  3. Resigned from Microsoft
    So this might seem like a shock, but it fell quite cleanly into my five year plan. Yep, I had one when I graduated from college. Having never imagined I would work for Microsoft when I was in college and after getting a lot of flack from my classmates for accepting a job at Microsoft I made up a five year plan in terms of things I wanted to learn from Microsoft before leaving. Aw hell I’m just left-brained like that anyway, I make goals for just about everything (ask me how long my car is supposed to last before I consider it a good “reasonable” purchase).Over the summer I started evaluated where I was against my goals, and I realized I had accomplished everything I had set out to learn from Microsoft. The decision to leave was made doubly difficult since I could not imagine a better team to be a part of anywhere. Written another way, I loved my team. There were so many competent, talented, smart, and experienced people who I could learn from and had learned from. My lead was my advocate, knowledgeable, and fully-focused on unblocking me from my goals.

    The team’s philosophy on quality was completely inline with how I believe software should be engineered, and the process and focus on infrastructure in place is truly enviable, in any commercial environment. An incredibly small example – my team was able to go from 0 to shipping at scale (at Microsoft scale that is – meaning localized, distributed data centers, redundancy, etc) a storage-in-the-sky solution in 3 months.

    However, even though everything at my team in Microsoft was going so well, I realized I was at a critical junction in my young career. Knowing that I would be getting married over Thanksgiving (see point 6 later on) I realized that I may not have another opportunity to dramatically change my career without impacting at least one other person. Not that my fiance was not a part of my decision to resign, but at least I wasn’t asking her to change jobs and/or relocate with me. And I also realized that if I stayed at Microsoft I may never leave. Many people would love to be in that situation, but having never worked in another company full-time I felt it would be remiss to limit my entire professional experience in software to one company. Plus there was an element of me wanting to keep my word with my own personal goals.

    And finally, things don’t happen in a vacuum. A couple recruiters called me, coincidentally, at the same time. I was not overly excited by the kool-aid they were trying to preach (I had been drinking large public-company kool-aid for five years already). Far more importantly my friend Hooman Radfar called me to catch up.

    My last day with Microsoft was my five year anniversary exactly, September 17, 2007. Take that five year plan.

  4. Accepted a position at Clearspring Technologies
    So Hooman started talking to me about what Clearspring has been up to (one could argue that he had been trying to recruit me to join him since when I visited Clearspring in 2004 when it as two guys in one office). Well, as I always told him I had a five year plan at Microsoft. Except this time, my five years was up and the things Hooman was telling me about sounded really exciting. I think the salient quote from that first call, “If you want things to be neat at clean don’t join us, but if you want to bring order to the chaos of a startup then we could use your help”. Or something close to that – at least that is how I remember it, so that is how it happened.Within three weeks I had: spoken with the VP of Engineering, gone to VA to interview, negotiated the offer, and accepted the offer. So the fun of the speed of a startup had begun even from before starting full-time.
  5. Relocated to Washington DC area
    Moved to Arlington VA and found a sublet on craigslist for three months while I was trying to sell my townhouse in Redmond. Realized that there are worse rental markets than Seattle (namely around DC). I also first-hand got to experience why they say moving is one the ten more stressful things in a person’s life. My advice from the situation – live simply until you get married so you don’t have to do something like a cross-country relocation by yourself, or negotiate a personal assistant into your new job’s contract to help with the relocation part.
  6. Started working at Clearspring
    Rapid-dynamic team going through lots of changes – like any startup. I was immediately impressed with the quality of the folks around me, and the changes we were making were highly needed and smart decisions. The ramp up was rough, as it always is, but the fun and satisfaction was immediate. Still is.

  7. Shipped my first product at Clearspring – Launchpad
    Within two months of starting at Clearspring I shipped my first product there. I joined part way into this project and helped guide it to through release. In the interim I had become a lead at Clearspring. I’m trying my best to follow my lead’s example from Microsoft in how I operate at Clearspring, and I guess time will tell how well I am doing.I am incredibly proud of our first release in this space, providing an embeddable HTML/JS menu to facilitate sharing widgets using Clearspring’s platform. There is still lots of work ahead of us, but it is overwhelmingly exciting and I can’t wait to dig in further.

  8. Sold my townhouse in Redmond
    With a great sigh of relief my townhouse in Redmond finally sold. The realization of paying mortgage in WA and rent in VA was starting to creep in and in the knick of time a great offer came in with a very accommodating closing date. I was able to close and settle the sale the week before I left to get married – a giant burden removed from my shoulders.

  9. Traveled to India to get married and enjoyed a brief honeymoon
    Had a very enjoyable wedding and honeymoon over a three week trip to India. I have not gotten or seen many pictures from the trip yet (apparently when you are the groom you don’t get to take or see many pictures) – as soon as I have them they will be published here.A group of close friends came to India to participate in the celebrations along with Shaily, myself, and our families. I am pretty sure they all had a great trip and I certainly loved introducing them to Shaily and sharing my wedding with them.

    Went to an awesome lake resort in Kerala for a short four day honeymoon. It really was a unique experience – nothing like anything I have seen in India, US, Jamaica, or any other tropical place I’ve been to. Really something special. If you are looking for a way to vacation at the end of your vacation, you want to stay in a resort like this one (check out slh.com for the listing of similar small luxury hotels).

    Unfortunately my wife’s visa isn’t ready yet, so I had to return to the US without her. Hopefully she will be joining me soon.

If you’ve made it this far then I think you understand why I have not been able to post more often. 2007 has brought more dramatic changes in my life than any other since I turned eighteen (it is hard to quantify the magnitude of each change before that). This year I tackled three of the ten most stressful life events at the same time, and I triumphed: switching jobs, relocating cities, and getting married.

(If anyone is wondering how come I made time to write this post, it is entirely because I am at the JetBlue free WiFi zone in JFK on a long layover and the wifi connection isn’t strong enough for VPN support – so after catching up on Google Reader this was next on the list.)

“Founders at Work” by Jessica Livingston

Founders at Work: Stories of Startups' Early Days (Recipes: a Problem-Solution Ap)

Read from April to May 2007.

This is a collection of 32 interviews with founders from recent technology startups.  The book is well written and Livingston speaks enough of the technical language to ask the right questions.  This book fules the entrepreneurial spirit of the reader and makes clear that startups have their ups and downs – even though this particular story is about 32 startups that were successful, at least for a while.

The most engaging part of the story for me was how patterns emerged between the founders and common experiences they all shared.  It became clear that tech startups have to be ready for anything and be willing to alter the original plan again and again as development continues.  This flexibility plus a commitment to the customer regardless of the circumstances was also novel to me.  Often times you think of a startup running as fast as it can without regard for the customer, hoping the customer will understand the product.  The people interviewed in this book were the opposite – they only cared about the customer and constantly made changes accordingly.

It was also really interesting that many (of those interviewed over half) were established engineers with families and prior careers.  These interviews were particularly insightful to me, since the media glamorizes the phenomenon of a college drop-out success story.  For example, can you name the founder of Tivo?  Turns out they all were established middle-aged engineers.  That doesn’t make for a great scoup but certainly makes for more interesting reading.  The perspective these seasoned engineers provide on their experiences in leaving a steady job, steady salary, and steady lifestyle for the 24-hour pace of a startup fills the reader with confidence that he too can be successful in the startup.  And, even if not successful, that the experience was worth the effort.

I highly recommend this book if you have the desire to enter the tech industry at any level.  The interviews are short and sweet and you get a sense of each of the founders from their own words.  I hope Jessica Livingston continues to write about tech startups – I will keep reading what she writes.

Read more about it and buy it here.

Setting up an Orkut Google Talk account in Gaim

I have recently been using Orkut more and more. Turns out most of my Indian friends are on Orkut far before any other social networking site. When using it today I noticed that they offer a Google Talk connection so you can chat with your friends. This is the link that most social networking sites are lacking (one of the things they are lacking). Figures that Google would solve this. It has been very interesting to watch how Google has created more and more integrated products (or properties if you wish) in the last six months.

I went through the steps of hooking up my Google Account to a Google Talk account. This was painless. Then I decided I didn’t want another IM client running on my machine, so I wanted to get my newly created Orkut Google Talk working in Gaim (my IM client of choice).

In the effort of brute force attempts, I stumbled upon what appears to be the correct configuration for getting your Orkut Google Talk account working in Gaim. It seems these steps are very similar to setting up Gaim with someone using Google Apps, see the references section below for those instructions.

(Note: These dialogs are described from Gaim 2.0 Beta 6 – the same content has existed since the latest released version Gaim 1.5 but the order/location of the info might be changed. So just read the content here and scour the Gaim settings area for the appropriate field to fill in.)

Setting up an Orkut Google Talk account in Gaim:

  1. Create an Google Talk screen name, this is linked to the Google Account associated with the Orkut user.
  2. In Gaim, create a new account (Ctrl+A)
  3. Fill in the following settings:
    Basic Tab
        Protocol: Jabber
        Screen name: (Fill in Google Talk Screen Name
                     created in Step 1)
        Server: gmail.com
        Resource: Orkut
    
    Advanced Tab
        Connect Server: talk.google.com
  4. Click Save

To Add Orkut Friends to your Gaim friend list: 

  1. Add Buddy (Ctrl+B)
  2. Screen name: Google Talk Screen name (in your friend’s profile page, it is after the Google Talk:) @gmail.com – for example if your Google Talk Screen name is bob then the Screen name here is: b...@gmail.com)
  3. Pick your newly created Jabber account from the list, and click Add

References:

Give it a try, let me know if my steps are confusing.