Oct 02
2014

What I learned working at Groupon

Groupon was my first true programming job. I’d worked briefly at a .com way back in the day, and I’d done a variety of tasks at a start-up in Beijing ranging from running human resources to assisting with business development. But Groupon was the first time my entire job was about producing code. Not coincidentally, it was my first job out of Hack Reactor.

Top Silicon Valley tech companies scour the world’s talent

Upon graduating from Hack Reactor, I was interviewing at Google and had interest and even offers from tech start-ups in San Francisco. One area where Groupon stood out was the phenomenal level of in-house JavaScript talent. Google was somewhat of a strange case, since JavaScript is generally a 2nd class citizen amongst their “big four” languages and their code-style guidelines actually prevent what much of the industry would consider idiomatic JavaScript. I’m sure they have amazingly talented front-end devs, but that doesn’t mean that every interviewer will be one.

At most of the start-ups, I would have actually been their deepest JS dev! Not so at Groupon. I was impressed with literally everyone who interviewed me as well the team I ended up working with. Despite having solid understanding of the prototype chain, the keyword this, lexical scoping and object instantiation patterns, my two teammates basically knew more than I did about everything ranging from CSS quirks to convenient CoffeeScript features to Handlebars.js to git workflow and back again! Our team (including the back-end people) included two Chileans, an Argentinian, an Indian and an Australian. I was the only American software engineer on the team.

Mentorship

I wouldn’t say that Groupon had a formal mentorship program, but did end up receiving a good amount. We generally worked on our own things, but my teammate Rodrigo would pair program with me when I got stuck. Even more importantly, literally every pull request I made had to get two thumbs ups (either from teammates or our manager). Consequently, I received quite a bit of feedback that not only caught bugs but also improved working code into more maintainable code. The version control workflow is one that I’ve since taken with me and continue to use today.

It’s great to be on a small team

I had the fortunately experience of being on a tiny team working almost as a start-up within a larger company. When I started at Groupon, pretty much any merchant who wanted to do a deal—even a tiny deal like a yoga class run out of their basement—had to go through our inbound sales team. No wonder the company wasn’t profitable! It was my team’s job to change that.

We were building a self service tool for the lower-end merchants, so they could just go online and create their deal themselves an get it on the site in a mostly automated way (other than fraud checks, etc). When I started I think we were just doing a few deals a week. Over the weeks it grew to 15, 50 and then hundreds of deals per week. We went from being a crazy experiment to something that got major press. I’m very, very proud to have been a part of it. I was clearly the most junior of the three of us working on the front-end, but I still got to see my work make its way to our highly trafficked portal and got to see real results of my efforts.

It’s hard to keep learning as quickly when you stay on one project

The one really hard thing for me at Groupon was that I wasn’t really working on the thing I wanted to be working on. My first choice of roles would have been data engineering, followed by working on their Node.js team and then front-end work would have been third. While studying at Hack Reactor, I certainly had more of an affinity for back-end and algorithm-heavy assignments than I did for those based on front-end frameworks. But, whatever their reasons, Groupon felt the front-end was the best spot for me. I thought Groupon was the best company for me and role was of secondary concern.

In retrospect, this was both right and wrong. Working at Groupon taught me a lot. My team was amazing. But, I was also a bit torn. After many months of working there, I realized moving to a different role would be very difficult and started spending increasing amounts of time at home studying computer science MOOCs. At the peak it was about 25 hours per week. Since the time spent studying MOOCs wasn’t directly related to my day job, there were only occasional synergies from what I learned. It’s possible I’d have been better off working hard to find a company that would let me work on what I wanted to, even at a lower salary. That way I’d have been spending hours a day studying things that directly made me better at my day job.

It will never again be a serious problem that I don’t have a CS degree

At the time I joined Groupon, I had a really hard time getting taken seriously by tech companies. People were always interested in my experience starting and building non tech businesses, in my study of various Asian languages, and so on. But they felt it was a bit much of a gamble to try a thirty-something guy with a degree in Japanese language and literature. I basically got all of my leads from demoing personal projects at tech meet-ups and from showing my then active Github profile to people.

After being hired by Groupon, everything changed. I started getting crazy traffic on my LinkedIn from recruiters all over the country and some outside the country. Pretty much all the huge famous US tech companies reached out to me. I started getting more senior offers from non-famous companies. The difference was truly shocking. Yes, I’ve continued to learn and invest in my skills but there is undeniably herd behavior.

Hackathons are great for tech companies

Groupon’s engineering culture seemed to be in the process of changing for the better when I arrived. The cafeteria quit charging us. The game room seemed to be fuller. And best of all, we started getting to do quarterly hackathons, during which we could work on whatever new Groupon project we wanted. I found the experience a fun change of pace, a good educational experience and a good community building experience. In fact, I formed a friendship from the first company hackathon that extended until I resigned this May. It was good for the company in a shorter-term concrete sense, too. Groupon got useful tools started in every hackathon I saw.

This entry was tagged , , , .
Bookmark the permalink.

3 Responses to What I learned working at Groupon

  1. Vitaly says:

    Well, when employees leave company after such short period of time it also says something about the company. How long your teammates have been working at Groupon?

  2. admin says:

    I don’t think a bit over a year is that short for an ambitious software engineer early in their career in this day and age. I was there long enough to make a positive impact and there long enough to realize that there were other ways outside the company I could have a bigger impact in the future. You’re actually the first person who’s made this kind of comment to me!

    One of my teammates was there before me. Actually, he was one of my interviewers. The other joined the two of us to make Deal Builder a few months into my employment at Groupon. As far as I know, they’re both still there.

  3. Jess Telford says:

    Hurray! I’m the token Australian! :P

    Great write up, and I agree that the rate of learning slows down the longer you’re on one project. It turns from “This is super exciting + major R&D!” to “This is monotonous maintenance”. For thought workers like ourselves, that’s one of the worst outcomes, and it makes me so happy that you DID quit to keep that passion alive instead of getting burnt out just for another number on your resume :D

    Personally I’ve bounced from team to team, multiple times per year at some points, and feel it has constantly improved my quality of work, and satisfaction in the work I’m doing. Honestly, yourself and Rodrigo are two of the main reasons I’ve stayed on the same team at Groupon for so long :)

Leave a Reply

Your email address will not be published. Required fields are marked *