One Year Anniversary

So it was the spring of 1984 and it was beginning to feel like summer was just around the corner… I mean the birds were chirping, the air was warm, the flowers were growing, Barry White was playing… Wait… Maybe that’s a little too far back…

Let me try again.

So, it’s the fall of 2004, early September to be exact, and I’m jam-packed into a car with my brothers and my Dad. Were on our way to the University of Waterloo to get me moved into residence. I’m the first in our family of six sons to leave home – so it’s kind of a big day. Anyway, I get all moved in, unpacked, and pretty loaded at dinner with Dad and the boys. Afterwards, safely ensconsed in my new “home” I start setting up my computers (yes, plural). So there I am in my underwear, a beer in hand, crawling under my desk when someone knocks on my door. I figure its gotta be that cute third year girl that helped me carry some of my stuff to my room, so I take my sweeeet time crawling back out, and I’m not gonna lie, I put on a bit of a show. And all this only to turn around to see none other than, Steve.

We were neighbors. He seemed like a pretty good guy too. He was my first new friend. Turns out he was even in my class, in my frosh group, and willing to electrocute me at the lab (a story for another time!). We must have chatted for like an hour or two. Meeting all the people coming and going, everyone nervous and excited all at the same time. It was kinda cool. Then a little bit later that same night Steve and I wound up on the third floor of the dorm. Exploring I think. Where, among the many other characters on the third floor, (another story, sorry) we met Mike. Mike was also in our class, also totally game to geek out and chat, and another really great guy – my second new friend.

Suffice it to say, time went on and we all became partners in crime, study buddies and drinking pals. We ended up living together and it wasn’t more than a few days before that arrangement turned into start-up boot-camp. We discovered that we were each dreaming of some kind of start-up for when we finished school, and that none of us thought we should get a real job. So we began discussing how we would do it. How we would manage, promote culture, hire the best, follow PG, or Joel, or Brooks, what we would work on, how we would fund it. It was crazy and inspiring and the worst excuse for avoiding schoolwork ever!

I can remember building white boards, and taping paper to the walls. I remember Mike and Steve brainstorming something like DropBox before it existed. I remember designing a router with an embedded cell tower chip way before Femto cells where revolutionary. I remember keeping lists of ideas, and problems that I wish someone would figure out how to solve. I remember I just couldn’t wait for school to be over so I could go and chase my real passion.

About a year later, the working world called. A few years later Steve finished school and moved to San Francisco to work for a startup. And then a year or so after that Mike finished and went to work in Toronto (also for a startup). We were all but split up. We had lived and worked together for almost six years. I can remember it was pretty sad watching Steve leave, and then Mike too. Not so much because we hadn’t yet chased our dreams, or started the business we had always planned to, but quite simply because we were family.

So fast forward again to July of 2010. It was my first summer alone in our Waterloo townhouse, and with Mike and Steve gone it just wasn’t ever going to be the same. But ignoring that, it was about to become a pretty great summer, and it all started with Shakespeare. That is to say, I went to a play in Stratford with my Mom. It’s a tradition that we have. Every summer we meet in Stratford, we watch a play at the festival, go out for a nice dinner, talk about my terrible choice in women and basically just spend some time together. When I was growing up there was zero alone time with mom, six boys remember, it just didn’t happen, and since we’ve grown up and left home we have each developed that certain little thing we do with Mom – and this is mine.

Anyway, on this particular evening we spent the bulk of the conversation just talking about my job, what was next, what I wanted, and sure enough somewhere in the conversation she encouraged me to quit. So as the night goes, I get to thinking… Why not? What if? Is it time? It was that kind of guilty, flirty, daydreaming that is both enticing and terrifying all at the same time. The night ends, and I make it back to Waterloo only to spend the next week totally entranced. Sleeplessly hacking on ideas, financials, fundraising. Setting up issue trackers (officially now known as Feature Finders within Upverter), websites and ways for me to brainstorm with whoever else I could con into the adventure. And at the end of that week I knew it was real. I called Mike and Steve in a panic and I told them the news: I was quitting, it was time, they should come play!

Oh, and that I had no idea what we were gonna do! Chaos!

So you’ve quit your only full-time job, no money, and your lease runs out in two weeks so what do you do? Well, if you’re me – you throw an epic BBQ, you invite the whole world and you announce that you’re leaving not only your job, but the town too. Oh, and all your stuff is for sale, preferably for cash, but offers of sleeping couches and Wifi would be seriously considered.


The next day Steve, Mike and I woke up, we sat down together and we came up with an idea. And looking back it is probably the best official first day we could give to the company. But let me tell you about the idea! At the time it was pretty fuzzy. In fact it was terrible! It was the combination of an idea that came to me one morning a week earlier, and the idea Steve thought I was talking about when I tried to explain it to him. There was no path to money. No defensibility. No market. I’m pretty sure no one really cared. But it was a start. And what it lacked in polish and style it made up for in personal pain – the idea tackled a problem that we had all been on the other side of. We knew the space. We had been the end user and if we could ever figure out how to target us… And that was it really, we had a couple beers, rolled the idea around, came up with our first tasks, and we got to work.

About two weeks later I moved home and started working full-time from my parents basement. I had sold everything that I owned and put everything I couldn’t sell into storage. I had my PC, my laptop, some clothes, and a desk in my parents’ basement. In a lot of ways it was perfect. It was back to the basics. I had one job – to find a way to make Upverter work, no distractions, no accessories, just hustle, fail, repeat. It’s important for me to say that while a lot of this is coming from my personal point of view I wasn’t alone. I am incredibly fortunate to have had Mike and Steve right beside me through it all. They jumped at the chance to be a part of Upverter. They are just as responsible for all that we’ve accomplished. They also quit their full-time jobs. And they also disrupted their lives.

We had a somewhat eclectic process early on. Fueled both by our incredible rate of change and our new again working relationship. It was neat. We learned a lot about what we each wanted, and who we were in this new enterprise. We were back together. Our early process was very largely exploratory – trying to figure out how the puzzle fit together, the tech we needed, if there was a market, and the scope of our problem. It was Skype filled architecture, and the kind of conversations that come from writing software together without a whiteboard. But by the end of October we had defined most of the architecture that we still use today, we knew what we needed to build first, and we had a pretty good grasp on just how many holes we had in our vision/ market/ product/ idea. Looking back it was incredibly productive – just not in the way any of us thought it would be.

Early November brought our next big change with Steve joining Upverter full-time and moving into the basement of my parents’ house with me. Unsurprisingly this started the most epic code throw-out/ refactor/ architecture/ infrastructure/ rehash in our history. We got lean. Focused. Our development tools began working together, our code started to get comments, and we started posting real tangible progress towards our technology goals. We refined the idea, filled a lot of voids, and answered a lot of questions. We got into prototype mode and began building for a target user, and trying to solve a specific problem. It was no longer quite so nebulous.

Towards the end of the month Steve and I took a trip down to San Francisco together. At the time Steve was making a lot of trips back and fourth. I don’t think he minded too bad, and I’m glad he didn’t, because it made it possible for us to work together while he was wrapping up at his other job. But with him finished his job, this trip was different. This time it was to pack up and move the last of Steve’s stuff to his parents’ house, to meet a few potential advisors, and to see if anyone gave two shits about what we were working on. And it turned out to be a pretty great trip. We got some incredible advise, saw a little bit of excitement over our idea, and among other things were heavily encouraged to apply for YCombinator. Now don’t get me wrong, we knew about YC, and it was a dream of ours to participate in it someday, but in November last year that just seemed like a distance which was forever away. We were tackling a giant project, with a super raw prototype and we were still a world away from useful. We were gonna apply but maybe not until next spring, when we had a working prototype and some traction. But we got pushed pretty hard not to wait. To do it sooner than later. And so sure enough we hacked out a last minute application and applied. We finished getting Steve moved, and we got back to work.

And then it got cold! I mean really, really cold.

We got about four feet of snow in dear old Exeter. It was even to the point that half of the windows in the basement were covered by it. Steve has never forgiven me. But who the hell moves back to Canada from California in November?!?! Sorry Steve… But most of the time (coffee and walks aside) the snow wasn’t really an issue. We were heads-down, in the basement, hacking away and building our prototype. We were starting to realize how wide our solution could be. Our vision and product, as refined as we had gotten them, were still very, very large. We are all ambitious people. And scope creep was an incredibly real problem for us. We mitigated as best we could, and we tried to keep things slim, but in hindsight it seems to have been inevitable. To be honest I’m still not sure we could have gotten away with a narrower product, but I’ll be the first to admit I have no idea. We worked right up until Christmas, when we got to spend a much needed week or so syncing up with Mike in Toronto. Like the pevious three, our fourth month in business was very different. It was exponentially more productive, and at the same time also leaner and more refined.

But then big news came in. We got an email from Harj inviting us down to Mountain View for a last minute, post-Christmas interview. We all started giggling. I’m not sure if it was nervousness, or excitement, or exhaustion, or maybe just some combo of the above. I don’t know. But we giggled together, high-fived, and wondered what-if for what seemed like hours. And then we clued in… This was less than a week away. We needed flights. We needed a place to stay. We needed to polish the prototype. We needed to figure out how to get in, and to make it happen. The following week was a blur. I’m pretty sure I had my laptop out during the Christmas morning madness. And I’m 100% sure I didn’t sleep much between getting the email and getting on the plane. But, in the end we flew down, we talk our story, we furiously brainstormed for about 12 minutes, we played with Segway-Style avatars, and we got into YC.


And then I got kicked-out of the US. Well kind-of. Really it was more that they wouldn’t let me back in. I won’t go into it here, but we had some pretty horrible immigration problems, which I’m happy to say were really only speed bumps – they could have killed us. They would have killed a weaker startup. But we found a way to make it work and pushed on. More on those stories here…

Anyway, my issues aside Steve made it back down to the Valley just fine. He couch-surfed for a couple of weeks, but ended up finding up a great little two bedroom place by the end of the month. I struggle to put into words how badly I wished I was there with him for the start of YC. How much I regret missing out on start of that experience. And how grateful I am to Steve and our many, many new friends for keeping me in the loop. But it is what it is. A lot changed getting into YC, but a lot stayed the same. YC gave us our first ever external deadline (which is a really, really good thing). It forced us to put our heads back down, way down, and to hustle like never before. We had resources like never before that both wanted to help us and wanted us to succeed. And we were back to being a distributed team. But on the flip-side we were already incredibly focused. We had done distributed before. And we knew where we needed to take our prototype for our first MVP test.

I’m not gonna lie. Of the last year, these three months are the blurriest. It was a whirlwind of hackery and advice. But what I do remember are our first two soft launches. Our first was towards the end of January when we started to open Upverter up. We “alpha-ed” and we invited our friends to test Upverter and give us feedback. At the time the hope was to see actual usage. To see people building real things. And to be able to quickly transition to an open launch by demo day. We were wrong. Upverter sucked. It just wasn’t there yet. It was a toy, with incredible potential, that no one ever used more than once. We were frustrated and a little heart-broken but we went back to the drawing board.

Mike joined Upverter full-time during the first week of February, and brought with him a huge boost to our development. But we were now six months in. And it was starting to weigh on all of us that we needed to release something capable of traction. It was a common conflict in our early days but it stemmed from our misunderstanding about our product and our market. We were trying to build Upverter like it was us monetizing a weekend project, like it was something we should have prototyped in 48 hours. And it took us a really long time to come to terms with the fact that we weren’t like everyone else. That we were building new and different tech. That we weren’t mobile, or social, or game mechanics. That we were a completely unsexy problem, with real technological hurdles, that required actual R&D, but standing in front of five billion dollars a year in money already being spent. We weren’t an overnight HackerNews sensation. We were doing a lot of things that very simply had never been done before. And that took time. The caveat to this is I would think pretty hard before doing it like this again. It lacks nothing in ambition and it’s right up there was affecting great change through great risk. And it may even be one of our biggest assets today (our tech is hard to build, necessary and defensible, we are solving a real problem, there is lots of money all around us. etc, etc). But in the world of lean startups and overnight launches we just felt like we were doing alot wrong.

February continued the blur, but at the end of the month I made one final attempt to overcome the Immiugration misunderstanding and enter the US, to join my co-founders, and to meet my class – and, for whatever, reason it happened. I’ll leave my personal ramblings about YC and what I got out of it for another time. But I will say that I made it down just in time. Only days later were our Angel Day presentations. Followed by our first bit of fundraising, a mad scramble for a Demo Day launch (which we aborted), and our Demo Day presentations.

All in just a few weeks. Chaos!

At the end of the month Mike and Steve headed back home to Toronto, while I stayed in the Valley to raise our seed round. We were split up again. But at this point I was thankfully disconnected enough from development that it was all okay. So while I was fundraising, Mike and Steve were preparing for our second soft launch, this time at Maker Faire Bay Area. By May we had the money we needed and what we thought was a worthy launch candidate. We also hired our first full-timer and three interns making Upverter again a very different place. We scrambled through the start of May and were reunited at Maker Faire, where we pushed code from our booth, and generally just showed off. It was a pretty incredible experience for us and a ton of fun. In the end we gave a ton of swag too and talked with nearly five thousand potential users.

The Maker Faire launch was a much bigger success, but we still held off on going official. We were beginning to see retention and our users were beginning to do real designs, but their feedback and behaviour told us we still had work to do before we turned on the flood. And so the seven of us got back to work – leading to a mostly uneventful summer. It was heads-down, it was polish and refinement. It was focus on our funnel, and on the things our users needed, and it was seeing things beginning to really gel.

We are now a Toronto startup, and early in the summer, mostly through serendipity, we were offered a scholarship to represent Toronto and attend and present at DEMO in September. Now we didn’t really know what DEMO was, or the value in the offer, but we figured it couldn’t hurt, and in the very least it was an external deadline to work towards. Beyond that I’m not sure what the experience will be like – I’ll keep you posted though!

That about brings us to today. It was on the 27th of August last year, that I officially finished my full-time computer engineering job. And sometime in that month between the theatre and my last day of work Upverter was born. It was born through the simple restlessness that came from spending seven years of my life with the most gifted and talented people I know, and the belief that we could do it better. What started as an idea, and a bad one at that, is now a business. and we are hell-bent on changing the world. We are now just weeks away from our official launch.

We have built a platform for rapidly designing hardware, that will quickly become the fastest way to design hardware; if it isn’t already. We are going to change the way electronics are designed and the rate of hardware innovation;

You should really give it a try.

Technical Setup of Upverter

Who doesn’t love tech porn? And what’s better than an inside look at the architecture and tools that power a startup? That’s right, nothing. So we thought, why not put up our own little behind the scenes, and try and share a little bit about how we do what we do?At Upverter, we’ve built the first ever web-based, the first ever collaborative, and the first ever community and reuse focused EDA tools. This meant re-thinking a lot of assumptions that went into building the existing tools. For example, clients and servers weren’t an afterthought, but instead a core part of our architecture. Collaboration was baked in from the start which also meant a whole new stack – borrowed heavily from guys like Google Wave, and Etherpad.


On the front-end, our pride and joy is what we call the sketch tool. Its more or less where we have spent the bulk of our development time over the last year – a large compiled javascript application that uses long polling to communicate with the API and Design Servers. When we started out to move these tools to the web, we knew that we would be building a big Javascript app. But we didn’t quite know what the app itself would look like and our choice of tech for the app itself has changed quite a bit over time… more on this later!

On the back-end, we run a slew of servers. When it comes to our servers, there was a bit of a grand plan when we started, but in reality they all came about very organically. As we needed to solve new problems and fill voids, we built new servers into the architecture. As it stands right now, we have the following:

  • Front-end web servers, which serve most of our pages and community content;
  • API & Design servers, which do most of the heavy lifting and allow for collaboration;
  • DB servers, which hold the datums; and
  • Background workers, which handle our background processing and batch jobs.

So let’s talk tech…

  • We use a lot of Linux (ub) (arch), both on our development workstations and all over our servers.
  • We use Python on the server side; but when we started out we did take a serious look at using Node.js () and Javascript. But at the time both Node and javascript just wern’t ready yet… But things have come a tremendously long way, and we might have made a different choice if we were beginning today.
  • We use nginx ( for our reverse proxy, load balancing and SSL termination.
  • We use Flask ( (which is a like Sinatra) for our Community and Front-end web servers. We started with Django, but it was just too full blown and we found ourselves rewriting it enough that it made sense to step a rung lower.
  • We use Tornado () for our API and design servers. We chose Tornado because it is amazingly good at serving these type of requests at break neck speed.
  • We built our background workers on Node.js so that we can run copies of the javascript client in the cloud saving us a ton of code duplication.
  • We do our internal communication through ZMQ ( on top of Google Protocol Buffers
  • Our external communication is also done through our custom RPC javascript again mapped onto Protocol Buffers.
  • We used MySQL () for both relational and KV data through a set of abstracted custom datastore procedures until very recently, when we switched our KV data over to Kyoto Tycoon ().
  • Our primary client the sketch tool is built in Javascript with the Google Closure Library () and Compiler ().
  • The client communicates with the servers via long polling through custom built RPC functions and server-side protocol buffers.
  • We draw the user interface with HTML5 and canvas (), through a custom drawing library which handles collisions and does damage based redrawing.
  • And we use soy templates for all of our DOM UI dialogs, prompts, pop-ups, etc.
  • We host on EC2 and handle our deployment through puppet master ().
  • Monitoring is done through a collection of OpsView/nagios, PingDom and Collectd.

Our development environment is very much a point of pride for us. We have a spent a lot of time making it possible for us to do some of the things we are trying to do from both the client and server sides and putting together a dev environment that allows our team to work efficiently within our architecture. We value testing, and we are fascists about clean and maintainable code.

  • We use git (obviously).
  • We have a headless Javascript unit test infrastructure built on top of QUnit () and Node.js
  • We have python unit tests built on top of nose ().
  • We run closure linting () and compiling set to the “CODE FACIEST” mode
  • We run a full suite of checks within buildbot () on every push to master
  • We also do code reviews on every push using Rietveld ().
  • We are 4-3-1 VIM vs. Text Edit vs. Text Mate.
  • We are 4-2-2 Linux vs. OSX vs. Windows 7.
  • We are 5-2-1 Android vs. iPhone vs. dumb phone.

If any of this sounds like we are on the right path, you should drop us a line. We are in Toronto, we’re solving very real-world, wicked problems, and we’re always hiring smart developers.


Release Notes

This last couple of weeks has been busy at Upverter, cumulating in a great release! When you login this is what you should be looking at in the new and shiny release.


  • Project Fork and Admin dialogs
  • User profile upgrade
  • Password Reset
  • Design Rollback
  • User and Design explore
  • Deleting of designs
  • Fixed various bugs

Let me tell you a little bit about some of these features.
Continue reading “Release Notes”

Sketching in Hardware – 2011

I just got back from a transformational weekend with some of the coolest and most influential hackers I have ever had the pleasure to meet. It was an event call Sketching in Hardware, and I’m incredibly honoured to have been invited.

For starters, you probably want to know what Sketching is, so I’m going to steal Mike’s words:

“The sixth annual summit on the design and use of physical computing toolkits. Attendance by invitation only. Presentations by every attendee. Sketching is a three-day meeting to discuss tools for physical computing prototyping: how to make them, how to make them better, how to use them, and how to teach with them.”

Cool right?!?!

For Upverter, Sketching presented itself as a tremendous opportunity to start a dialogue on what we have been working on, what collaboration on hardware means, what answers we think we have and the questions we still have yet to figure out. There will probably be more to come on this with the upcoming Open Source Hardware Summit too…

But in the meantime I’m going to ask some questions:

* Why are there no large or distributed open source hardware projects?
* What does collaborating on a hardware project mean?

* How important is ownership?

* What is the most painful part of your design workflow?

* Could it be crowd-sourced?

If you have an opinion on any of these, let me know… I’ll buy you a beer and we can chat about it!

It’s our mission to someday have answers for as many of these questions as makes sense. We want to make Hardware easier and faster to develop. We want to see people sharing and working together, especially on the non-core bits. We think we are started on the right path, but we are also humble enough to know nothing good comes from building without feedback. So speak up, and help us build the tools of tomorrow.

For more info see my presentation below…