Daddy Becomes CEO

Wednesday, December 24th, 2008

I am super proud my dad has become CEO of Moser Baer Photovoltaic (MBPV).  Though I don’t get to see him as much with his job primarily being in India, I am really happy he is bringing his expertise in Thin Film solar cell manufacturing to India.  He is putting together a team of engineers from India that would have probably had to travel abroad to pursue their solar careers just a few years ago (much like my dad had to 30+ years ago).  I haven’t written in a long time, but wanted to make sure this news spread as quickly as possible.

Here is the press release from Business Standard and Solar Industry Magazine.  Also, the Google News results.

Proud of you dad!

2007 In Review - The Briefest of catch up posts

Thursday, December 6th, 2007

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

An old Desk with a new Twist (add a shelf to make your workspace fabulous)

Wednesday, February 28th, 2007

I got this idea from my former office mate (or cabin-mate).  However, when we shared an office I never followed his advice with creating a shelf on a workstation desk for the computer monitor(s).

After we got moved I decided to try this system out.  At work I blatantly copied what Roger (my former office mate) had in place.  He used a shelf from one of our hanging shelf units (all MS in Redmond has the same hanging shelf units) and raised it by using two reams of paper.  On top of this I put my speakers and my 24″ Dell monitor.

At my house I put off trying this configuration even longer.  It was not until yesterday when I realized that my docking station has both a VGA and a DVI output.  I had only been using the DVI output to one of my Dell monitors and using the screen on my laptop as my other desktop.  This was inconvenient because my laptop’s 1900×1200 resolution was difficult to see when the laptop was placed next to the monitor.

So I decided to attempt shelf at home, with both my monitors in the mix.  I found a plank of wood from my garage (long story how it got there) and found some VHS movies for height raising.  After a couple hours of re-arranging furniture, reorganizing all my wiring I finally had the shelf, monitors, and machine in order.

The benefits I experienced by this setup at work were immediately evident to me at home as well.  This small and subtle modification has had a dramatic improvement on my posture, productivity, and usefulness of my desk.

The benefits:

  • Doubles as a reading area (or an area to eat lunch) by sliding keyboard under the shelf (notice the space is left deliberately empty)
  • Speakers and knick-knacks always dominated the entire desk, getting pushed around with other items on the desk.  Now they do not impact anything since they are raised and untouched
  • Inability to spill coffee or other liquids on the monitor or speakers (or rather, much much more difficult)
  • Aesthetically more pleasing workspace (even with a ghetto shelf like the one I am using at home)
  • People can see the skin applied to my laptop

Try this at your home or work and let me know if you find it beneficial.  Roger and I both believe there is a market for high quality desk-shelf material like this.

Arrival in India for my wedding – November 2006

Tuesday, November 14th, 2006

Image: Delhi Indira Gandhi International (DEL)

Note: Wrote this on the trip in November 2007, never bothered to post it.  Originally written to be an email to my friends, but makes perfect sense as a blog post instead.

My arrival in India was eventful and annoying.  Since I was lazy about packing on Tuesday night, I didn’t actually get to start packing until about midnight, so I didn’t get a chance to fall asleep.  That seemed fine to me, since I could sleep on the flight to DC (first leg of my journey).

After boarding the plane around 7am for a 7:30am departure, I promptly fell asleep.  The next time I woke up was 9am, and the captain was announcing a hydraulic problem on the plane that was being worked on (we were still on the ground in Seattle), and update in 15-20m.  20m later (another short siesta for me) the captain announced that the problem could not be fixed, we had to deplane (what a great word, btw) and make other arrangements.  Fast forward another two hours, and I have a boarding pass for a flight from Seattle to San Francisco that then leaves from SFO to get me to Frankfurt Germany two hours before my connection to India.  Yay, this is good because I met up with my mom in Germany and we flew together to India.  I could help carry her luggage etc this way.

Bad news, my flight to SFO was a middle seat.  I was seated between two military folks, both heading to the middle east.  That made things fun as I was reading “The New Yorker” (hardcore antiwar) and the Gandhi biography.  The plane turned out to be mostly empty so my neighbors spread out and I got the aisle seat I like with plenty of legroom.  I slept the majority of the flight, catching up from the night before.

Land in SFO, get some lunch, get on my international flight to Frankfurt (have to love how in SFO for United you have to take a shuttle to the International terminal, go up and down all these ghetto looking stairs and such - very classy).  Get on my plane to Frankfurt.  Get my aisle seat.  On this flight I watch “Cinderella Man” (really is Ron Howard’s best work), almost cried twice (somehow I am on a VERY heightened state of emotions here), and finished the Gandhi biography (almost cried several times while reading this).

Meet up with my mom in Frankfurt, go to get my boarding pass for my Lufthansa flight (United couldn’t issue me a boarding pass from Seattle - go figure).  Find out my ticket is now considered on STANDBY, and I need to go to the Destination Gate before I can be issued a boarding pass.  Weirded out, I walk to the destination gate, and when I get there I am told that the flight is overbooked and I won’t get a seat.  I try to keep my calm and explain that I have already been traveling for 20 hours, so it makes limited sense to consider me a standby passenger since my itinerary is already in motion, etc etc.  In my explaining the woman checks again, and suddenly I have a seat.  Not the reserved seat I had before, but an aisle seat nonetheless.  My thinking is that when my flight in Seattle was cancelled, my entire itinerary was cancelled, and the new itinerary had me on standby for everything since it was made last minute.  Don’t know how I suddenly got a seat, but I wasn’t complaining.

After switching seats with this kid traveling that got the seat next to my mom, I got my aisle seat and the flight was reasonably smooth.  Lots of sleeping, reading, music, reading, sleeping - rinse, lather, repeat.  Ten plus hours later (around 32-34 total hours of travel later) my mom and I wait for ALL luggage to be delivered in the International Baggage Terminal in Bangalore.  My mom gets her suitcases, though they take forever.  Customs and Immigration was breezy, but my luggage didn’t show up.  Great.  Two hours wasted in the airport waiting for my luggage.  Filled out the missing luggage paperwork, borrowed cell phones from folks there to call my cousins that were picking us up - and got them to know what the situation was.  So, my hunch is that my luggage probably never left Seattle.  Finally met up with my cousins and drove home, getting home at 3:30am.  We had a flight at 6am, so took a shower and repacked slightly, and then left.  I am still wearing the same clothes I started my travels on, over 30 hours ago.

Our flight from Bangalore to Delhi was delayed by two hours, more time to kill in the airport.  After finally flying, our flight from Delhi to Lucknow was delayed by three hours.  So, we made the flight, but more waiting in the airport.  Finally got to Lucknow, and found my uncle, we got into the big rented car, and drove the two hours to Kanpur.  Goodness, didn’t finally get to Kanpur until 8pm.  Now, I had no clothing, whatsoever, so immediately after saying hello to everyone, went with my cousin to the mall nearby and bought a few pairs of underwear and sleeping clothes, so I could get through the night.

That was my arrival to India.  In a nutshell.

How Cheating in college Helps Me Every Day

Saturday, May 27th, 2006

Academic integrity has always been the cornerstone of an ivy league education. Nothing gets you in trouble at my college like getting caught cheating. Yet it is rampant. For example, if you get in a fight with a cop on campus (PENN has real Philadelphia police officers patrolling the school) every week nothing will happen to you. You can get so drunk and piss in hotel lobbies of the fanciest hotels in Philly, and the school will take no action. But, if you are caught cheating during an exam, depending on the professor, you can fail the exam or be suspended for a year (I’ve seen both happen).

In my department, cheating was also monitored when turning in electronic assigments. This is common now for all coding assignments at most schools. Apparently there is some software developed at UC Berkeley that can analyze code turned in and flags submissions that are similar. Teaching assistants and professors ran this code automatically after the submission deadline had passed on all code turned in, and then reviewed the flagged submissions.

Considering the consequences for cheating were so severe, it is surprising how many students still cheated regularly. It is often harder to explain how a problem is solved than it is to show the solution (or simply the student was lazy and underprepared), so this led some students to emailing around completed assigments to each other (the kids today are probably IMing or texting them, but its the same concept).  The smarter cheater (read: the ones that got away with it) would take the completed solution and view it, but would still write his/her own solution using the provided solution as a guide. This process of digesting another person’s code and transcribing it, with heavy modifications, became a skill. At the tail end of an all-nighter, the faster you could understand another person’s code and use it complete your task, the faster you could sleep.

Fast forward to my job today, writing commercial software. What I have found about writing application-level commercial software is that it is often a repeated 3-step process:

  1. Find software library to provide necessary functionality.
  2. Learn how to use this software library.
  3. Incorporate this software library into the product.

A software library is software written by others that provides functionality that can be incorporated into your product. Most software libraries are used as building blocks in producing a finished product. The documentation provided with a software library is the easiest way to learn it, and often times this documentation is littered with sample code on how to use the library. Just to clear, you usually don’t want to have the actual source code to the library because you are using it to provide some functionality for you - not to learn how they wrote it.

When learning how to use a new software library, I have realized that I am very good at digesting code from others and incorporating it into my work. It is a very natural process for me to look at sample code, or code from another place in our codebase and understand how I can use it. Often when developing a new product there is not adequate documentation for how parts of the product work. It is at these times that having the ability to digest code rapidly is truly beneficial.

The realization that the speed in which I can learn how to use code by looking at samples was surprising to me at first. But after some thought on it, I have simply be added to the list of accidentally invaluable skills college taught me that I didn’t realize until later in life.