Microsoft, WPC and Entrepreneurs in Toronto

Microsoft <3 Entrepreneurs - WPC Party

Did you know that 15,000 global players in the Microsoft ecosystem are descending on Toronto in July? Microsoft Worldwide Partner Conference (WPC) is happening July 8-12, 2012 at the ACC and the MTCC. That’s a lot of people building on the stack. The BizSpark One program was one that I championed during my time at the Microsoft, and there are a lot of Canadian companies that are building on the Microsoft stack:

Mark Relph (LinkedIn, @mrelph) and the Redmond and Silicon Valley crews will be in Toronto. Mark used to be my boss at Microsoft Canada, and has subsequently caught the startup bug. He’s helping startups through BizSpark and BizSpark One programs. Along with the folks from a far, Christian Beauclair (LinkedIn, @cbeauclair) and Shane Davies (LinkedIn) will also be around to support Canadian startups.

And whether you love or hate the Microsoft stack, they are trying to move to greater independence to enable developers. Microsoft is looking for ways to help startups, BizSpark, Azure and other programs like Kinect Accelerator make it easier to understand why.

Why not join WPC attendees and other startups on July 10 at MaRS?


Why I’m a Founder

Dave says we can’t all be founders.

He’s probably right. At some point though, I decided that I wanted to be a founder. Lately I’ve been thinking about why it has been so important to me over the last 10+ years to keep at it, even when it didn’t make a lot of sense.

A lot of different things have driven me to be a founder, I’ll try to be as honest about them as I can.

A need for control: Don’t get me wrong on this one. I don’t need to control others. I think you could ask any of my current co-founders and they would tell you that I don’t need to control, I just need results. What I do need control over however is my own life. Every morning I wake up that I am ploughing my own path I am happy and ready to take on the day. The moment I sense I have lost that control I am anxious and ineffective.

A desire to make a lasting difference: There are few things I can do to make a difference, but I feel strongly that providing awesome opportunities for other people to fulfill their own dreams can make a huge difference. I want nothing more than for those who come to work in my startups to see it as a place they can achieve their dreams. Watching people buy homes, raise families and pursue their own passions is probably the most rewarding result of all the work you pour in to your startup.

Watching people grow: The first feeling of failure when a startup is going sideways is always the sense that you are letting these people down. Startups are demanding and gruelling for everyone. It’s inspiring when these early employees suffer through long hours and low wages with you, but it is the never ending belief that you can make their lives truly better in the end that drives you to keep pushing and often asking for more when you know they have little to give.

When a startup is going well you get to give people new opportunities and the great thing about people is that they seem to thrive in new situations. Hard problem? Tough decision? If you’ve hired the right people then you never think twice about letting them dive in to the thick of it.

Working with the best: Simply put: I never have to work with anyone other than those who I think are the smartest, most honest, diligent and incredible people I could meet. Every single one of them amazes me in some way every day and I am a better person because of the example they set.

Constant learning: There are brilliant people everywhere in the startup world. I think they are more varied, interesting and available than any other community I have been a part of. I love it. I leave every coffee meeting, late night drinks and impromptu meetup feeling like I have learned something new. I love that feeling and I love being a part of a community that provides it.

Never knowing what’s next: I have no idea what my future holds. I really don’t. I know I am married to a woman I love dearly and who loves me back. I know I have a family I love and can rely on. Those are just about my only constants. Some people call it “instability”, but the founders I know thrive on it. You aren’t going in to the darkness, you are hurtling towards some future you have dreamt up on your own and which you will achieve for yourself, no matter what. Whatever that might be.


We can’t all be founders, but what drives YOU to break out and become one?

Is Code Written To Be Read?

The other day I attended a tech talk hosted by Facebook. Their internal platform team was talking about how they manage the Facebook framework and code base.

The presentation was titled “Code Is Written To Be Read”.

Immediately my gag reflex kicked in. Code is written to be read??? Really??? I literally can’t remember the last time I sat there and thought “hmmm, how readable is this code, I wonder if so and so will be able to understand this”. Having said that, I think I was the only person from a startup in attendance, most were from Google, Zynga, and other larger tech firms. So perhaps I was the wrong audience for this topic.

Whatever their problem is, it is not mine. In my world I have one reason to write code – TO SHIP.

“Code is Written for Users to Use It” (i.e. just ship or shipping is a feature) – that is the startup equivalent mission statement.

And this is where all the “maintainability” coding trolls come in and leave comments like “yeah, but it’ll be huge advantage if we can iterate quickly and get a v2 out and so on and so forth, thus we need code thats easy to maintain”.


Here’s the reality – your product is likely going to fail, so if you wasted time and money making fancy abstractions, doing code golf, and focusing on elite coding craftsmanship… you blew it. You failed. You should have finished it 2-4 weeks earlier instead.

You have to EARN maintenance as a problem. You have to EARN v2. You have to EARN the right to practice expert craftsmanship. If you get there, if you really get to the point where maintaining your code base is a problem for you where many other developers are reading your code… congrats! You’ve succeeded. Go nuts, rewrite everything. You deserve it!! Forget every word I am writing, and go attend the Facebook tech talk and take diligent notes.

But for most of us, we are not going to earn that right. We are going to fail or pivot or leave or get acqui-hired or whatever. That code is going to get thrown in the trash never to be touched again. So how’s that clever FactoryOfTaskFactories abstraction feel now?

And that’s why you probably don’t want to hire Facebook or Google engineers for your startup. And more so, if you are a new grad engineer who aspires to be a startup founder one day, that’s why you don’t want to join Facebook or Google.

Look, it’s not that there is something wrong with those developers. I’m sure working at Facebook or Google is fantastic. It is the closest thing to a tenured prof position you can get in this field. The problem is that they operate under significantly different operating conditions than you do (unlimited money, unlimited time, lots of technical resources, working across massive teams, etc + MASSIVE scale problems, huge performance requirements,petabytes of data, etc). They learn a very different craft than you do.

Your craft, the startup developer craft, is simple – “get things done”. The other parts of the craft, you have to earn.

(caveat – if you are building a startup focused on platform or tools being used by other developers, your craftsmanship should be excellent)
(disclaimer – I have nothing against facebook or google, they are full of friends of mine and other wonderful and smart ppl)