1. 17 hours later, first successful overnight print!

    17 hours later, first successful overnight print!

  2. Christmas comes early! #yolo #typeamachines

    Christmas comes early! #yolo #typeamachines

  3. Lets go #kiwis

    Lets go #kiwis

  4. Everything I Ever Did at LivingSocial - Part 1

    This past weekend I had the good fortune to spend a few hours with Trevor, a good friend and former intern at LivingSocial. He came to SF with his girlfriend and promised her we’d keep startup talk to a minimum; we had completely broken that commitment half way into our first beer at the Tempest.

    Trevor started rattling off a list of things he learned while working at LivingSocial and he wasn’t far through it before I realized that I had forgotten a good percentage of the stuff he mentioned. In hindsight, LivingSocial is a blur; when so much activity is compressed into such a short space, it’s hard to recall all of the details.

    Someone suggested to me that I write down all the lessons I learned at LS before leaving. I haven’t done that yet, but I figure a good place to start is to just write down everything I did in each of the roles I held. So, without further ado, here is everything I did in three years at LivingSocial. I’m going to divide this into three separate posts, as there is a lot more to share here than I can write (or anyone would like to read) in one sitting.

    Act One - Business Analyst

    Jake Maas and Wagish Bhartiya hired me to be the first Business Analyst at LivingSocial. At that point, the company was under thirty people in DC, selling deals in fewer than eight markets, and Jake M headed up both the business development and finance functions of the company. Here are some of the cool things I got to do working for him:

    • with Maas’s guidance I built a ‘Key Metrics’ spreadsheet that aggregated data from across the company to provide executives a snapshot of overall health. From April 2010 on, the senior team had a document that tracked marketing spend, efficiency, revenues, email click through rates, deals signed and run, etc. That set of KPIs was the dashboard that the executive team used to run the business and, as far as I know, it still is today.

    • After not too long, Jake M. and I built up a rapport such that he could hand off a problem to me and trust that a) I would solve it and b) I’d surface any important decisions to him. That led to a whole class of fun projects:

      • Problem: We had markets ready to go live in Canada and the UK but no viable solution for accepting payment from customers. We were paying out salaries, but couldn’t generate any cash. Solution: I called every major global payment processor and, after settling on Braintree and Chase PaymentTech, managed to get the UK and Canada online in < 3 weeks. Later on, we switched all of our business over to Chase as the service provided substantial savings compared to our previous provider.
      • Problem: We needed to figure out how to compensate our sales reps. At first we tried just giving them revenue targets but that didn’t work; our email lists were growing so fast that reps would murder their targets one month and then miss them by a mile the next. Solution: I setup and modeled out the comp plan that we used for all sales. Before we hired a team of people to do this, I was individually responsible for calcing and managing commissions for a 200+ person team with quarterly payouts exceeding the $5MM mark.
      • Problem: Sales for our legacy FB apps had fallen off a cliff out of sheer neglect on our part. Everyone was focused on Deals, although we knew there was meaningful revenue potential in publisher sales for Visual Bookshelf. Solution: I started selling ad placements to publishers and authors whenever I got a free moment. A little attention to inbound leads yielded >$75K in sales over a three month window, before Deals got so hot that we sunset VB for good.
    • I spent a huge amount of time just running numbers on the company and providing analyses that ultimately went into Board materials and investor diligence requests. Want to know comparative performance in Chicago vs. New York? What about the individual capital outlay / payback period for every city in North America? Those are all questions I helped answer. One week in particular I got swamped with data requests - they wanted everything from market-level P&Ls to marketing efficiency by channel by city. At the time, I had no idea where it was going although a month later, after we closed a $175MM round led by Amazon, I had a pretty good idea.

    Next up, Manager - Market Strategy…

  5. 57 startup lessons →

    A pretty impressive list to help guide your startup towards success.

  6. Euler Problem 16 in JavaScript

    One of my favorite things about Hack Reactor is that every day starts with a technical problem. Within the school, we refer to these problems as ‘toy problems.’

    Since graduation, I’ve been devoting a few minutes every day to working through a comprehensive set of toy problems available at project euler. Over the weekend I encountered problem 16 and found it to be particularly interesting.

    As it turns out, math, in JavaScript, is weird. Take, for instance, the following code:

    var sum = 0;
    for(var i = 0;  i < 100; i++){
       sum += 1/100
    }
    

    So, after running that code, what might sum === 1 evaluate to?

    I kid you not, it is false. sum is equal to 1.0000000000000007.

    In trying to solve euler 16 (sum all digits in 2^1000) I similarly assumed that JavaScript would be free of quirks. In my initial attempt, I thought I could simply raise two to the thousandth power, convert it to a string, and then loop through each character and it to a sum. Easy, right?

    Unfortunately, that didn’t work. The following code: Math.pow(2,100)+'' yields '1.0715086071862673e+301'. This is not anywhere near an exact representation of 2^1000. The precise value is:

    10715086071862673209484250490600018105614048117055336074437 
    50388370351051124936122493198378815695858127594672917553146 
    82518714528569231404359845775746985748039345677748242309854 
    21074605062371141877954182153046474983581941267398767559165 
    54394607706291457119647768654216766042983165262438683720566 
    8069376.
    

    To get around the precision hurdle I found the largest power of two that Chrome represents without using scientific notation. Aha! If I just punch in Math.pow(2,69) that yields 590295810358705700000. Solution found; now that I have the precise representation I can just multiply each place by 2 until I raise the exponent from 69 to 1000. Wrong. 2^69 isn’t 590295810358705700000; it’s really 590295810358705651712.

    The real solution, as it turns out, is a rather mundane one; you just set up an array of integers and perform sequential arithmetic operations on those integers (multiplying by two, specifically) 999 times.

    The sum of all digits that comprise 2^1000 is 1366. The full solution is available on github. Toy problem accomplished. JavaScript arithmetic lessons learned.

  7. The Man Who Thinks He can

    Whether You Think You Can Or You Can’t… You’re Probably Right. If you think you’re beaten, you are; If you think that you dare not, you don’t; If you’d like to win, but think you can’t, It’s almost certain you won’t.

    If you think you’ll lose, you’ve lost; For out in the world you’ll find Success begins with a fellows will. It’s all in the state of mind.

    If you think you are outclassed, you are; You’ve got to think high to rise; You’ve got to be sure of yourself before You can ever win a prize.

    Life’s battles don’t always go To the stronger or faster man; But sooner or later the man who wins Is the man who thinks he can.

    —Author unknown

  8. Leonardo Da Vinci needs a job →

    Letter from Leonardo Da Vinci
    to the Duke of Milan Applying for a Position

    Having, most illustrious lord, seen and considered the experiments of all those who pose as masters in the art of inventing instruments of war, and finding that their inventions differ in no way from those in common…

  9. Hack Reactor In Review

    San Francisco coding bootcamp

    Background

    This past April I left LivingSocial and came to Hack Reactor (a coding bootcamp in San Francisco) to learn the web development skills I had always wanted. Previously, I tried teaching myself web development by reading books and taking online courses before coming to the realization that the self-taught approach was missing a few key things: First, I didn’t really know what I needed to know in order to be a great developer. Which skills are essential vs. ‘nice to haves’? Second, even if I could hone in on a subset of languages, frameworks, and concepts, I didn’t know the most efficient way to learn those. Should I read the O’Reilly Javascript book cover-to-cover or repeat Codecademy courses ad-infinitum? Finally, if I was going to get really, really good at building web applications I probably wasn’t going to do so a) in a part time capacity and b) in isolation, without the support or camaraderie of like-minded peers. So, I resolved to go the web-development immersion school route and settled on Hack Reactor for a number of reasons, all of which are covered in this Quora post.

    Graduation

    After 12 intense weeks, I graduated Hack Reactor with all of the skills I had hoped to learn going in, and then some. Incredibly, almost all of my classmates now have jobs with average salaries above the six figure mark.

    Rather than jump right back into the job market, a handful of my peers and I chose to stay on at Hack Reactor in a newly created “Hacker in Residence” role. In this capacity we spend half of our time working for the school and the other half building personal projects, allowing us to both hone existing skills and expand into new areas of software development. Over the next few months, for instance, I’ll be working to launch a full-fledged product that will afford me exposure to a new client-side framework (Angular.js) and native mobile application development (iOS / Objective-C).

    A few things to bear in mind before you take the plunge

    Below are a few key takeaways from my experience at Hack Reactor, reflections on the journey, and my perspective on what’s to come. You’ll have to forgive me that these aren’t organized into any particular theme; they are, instead, a snapshot of my thinking at the present moment.

    • Hack Reactor was an incredible learning experience. The amount of information I absorbed in such a short time makes this one of the most efficient learning experience I’ve ever had.

    • I can’t place enough emphasis on the importance of a) preparing as much as possible before you enter the course and b) arriving with a strong sense of what you want to accomplish during the program. Hack Reactor’s slogan that “education is two parts motivation and one part content” is spot on. The first half of the course is so densely packed with information that if you’re not immensely motivated to study and learn the material, you’ll miss out. Similarly, students who get the most out of second half of the course, which is almost entirely project based, are guided by a strong need to accomplish something. I don’t think it’s possible to become a great developer just by checking items of the the curriculum’s to-do list; you have to be really motivated at a personal level to build things.

    • Leaving a successful career for an unknown one was, and still is, a scary thing. When I chose to leave my former post at LivingSocial I didn’t think that the company’s future prospects were bright (and I still don’t) but that doesn’t really make it any easier to leave behind a track record of success in a given field for a new field in which I don’t have nearly as many successes to point to. Moreover, in the software development world, my former accomplishements don’t distinguish me from other candidates; within this new domain, I’m on equal footing with someone with equivalent experience which, in some cases, is a bright developer who hasn’t yet graduated college. Bottom line: when you choose to leave an established career for a new one, you’d better be prepared to check your credentials at the door and compete on even ground, on the merits of your abilities alone. Fortunately, Hack Reactor does a really good job of preparing its graduates for this.

    Conclusion

    Ultimately, by choosing to attend Hack Reactor I’ve expanded the ways in which I can meaningfully contribute to an early-stage startup. And that is, after all, the single thing I value most. It’s not about my title, it’s not about my salary; it’s about my ability to help startups succeed.

    Over the next two months I will continue to work on my development skills while seeking out companies with a strong team, a big vision, and the belief and work-ethic needed to get the job done. I’ll keep you posted on where I end up. :)

  10. CHMOD vs. CHOWN?

    As I spend more and more time in the console I’m constantly adding new shell commands to my vocabulary. chown and chmod are two that I sometimes use but always get mixed up. Here is a (very brief) explanation of the differences between the two, in case the same happens to you.

    chown changes the ownership of a given file or directory. Which user does this belong to: your personal account, root, or someone else?

    chmod changes the modulus of a file or directory. That is, it alters read and write permissions.

    It’s easy to get these two mixed up because both impact accessibility. Each command, however, is distinct.