Engineering Series: Keeping Upverter Up

We’ve been pretty cagey in the past about a lot of our engineering efforts at Upverter.  Today, we want to start lifting the veil a bit and talk about some of the things we’ve done under the hood to keep the Upverter platform stable, despite huge feature pushes.

Stability starts in culture.  We enforce a pretty stringent engineering culture, augmented by a handful of software systems: all code changes get (quite brutally) code reviewed by two other engineers using our custom-modded version of Rietveld, before buildbot runs it against a battery of tests and packages everything for deployment.


We generally avoid big deployments or “release management” since they basically act as risk capacitors.  Instead, everyone on the team can deploy any code that has passed code review and the test suite at any time – and they do.  We usually deploy several times a day.

Overwhelmingly, our stability stems from these kinds of ‘best practices’.  However, we have over 120,000 lines of Javascript running client-side on people’s browser, and that means there’s a huge surface area for client-side stability problems to arise, despite any amount of testing.  Furthermore, it can be a harrowing experience for a hardware engineer if their editor keeps running into errors.

The good news is that instead of having to wait for your software distributor to send you a new version, at Upverter we’re able to deploy fixes to our servers as soon as we see them happen.  To keep an eye on the stability of connected clients, we have a big dashboard in the main engineering space:


The dashboard displays all the key data for managing live errors on the site.  It shows us how many times the error has occurred (based on a hash of the stack trace), what users are affected, and what part of the code base is responsible.  We also see times of first and last occurrence.  Since our last revision, all new errors are automatically posted to our our task management tool, Asana, and the engineer tasked with the fix is sync’d back to the dash using the Asana API.


In order to track down complex bugs, we send a lot of data back with every error.  Client-side, we take advantage of Google Closure’s global error handler, and add a bunch of extra contextual information to the stacktrace, including the entire history of the client session: what tools were used, what shapes were placed, and when.  Additionally, users are given the opportunity to submit reproduction steps after their design reloads.

Here’s what our engineers see:


Finally, we can also browse the connection history to ensure there wasn’t any kind of network problem that contributed to the error:


We’re able to re-use the session history information to track how long into sessions errors typically occur, and whether there are significant disconnect/reconnects prior to the crash.

Once the problem is diagnosed, the patch goes into code review, and it’s wash-rinse-repeat!

Sure beats waiting for the next version.

Celebrating the Last 12 Months at Upverter

Here at Upverter, we pride ourselves in continuously evolving our tool to better-fit the way engineers do hardware. We’re constantly getting into conversations with our users, figuring out your pain points and building solutions to optimize every step of the design process. We’re in the middle of rolling out a whopping collection of new features, which got us looking back at the work we’ve done in the last 12 months. Upverter celebrated its 4th birthday last month and we couldn’t be prouder of where it is today.

Here’s an infographic to give you an overview of what we’ve been up to (with bonus behind-the-scenes figures!). Share with your friends and colleague to introduce them to the most intuitive EDA software for rapidly designing next-generation electronics!

Celebrating the last 12 months

3-Years of Hardware, Hacking and Running Out of Money

A couple weeks ago Upverter turned 3 years old. In startup years I think that means we’re 21 now. So, I’m going to write the rest of this with a beer…

Phew, what a year!

Back in August 2012 Upverter was just Steve, Mike, Alex, Francesca, Carmen and me. We ran low on money in the winter of 2012 and slimmed down to just Steve, Mike and me to keep the lights on. But by August we were starting to staff back up and by October we would hire Ryan and then stay at 7 people for almost the rest of the year.


In August 2012 the big focus was on getting Upverter v1.0 out the door. We had launched our alpha in September 2011, and then spent the next year polishing, grinding, and hacking away at something actually useful. We had built component management, layout, manufacturing, import, export and simulation, and we were in the final throes of connecting the dots together before launching it publicly. I can remember being super-duper heads down on development, doing our first hackathon to get a bit of user feedback, and scrambling to “launch” before American Thanksgiving.


In November 2012 we were finally ready to go. And all fully exhausted and crazy burnt out we pulled the trigger on V1.0. The response was slow for the first few days, but it built into a very solid press-launch, and more importantly some very real reactivation and acquisition of our users. By the end of the year we had broken 10K users, up from approximately zero actives in October.


In December and January we went on a very aggressive sales push to try and figure out how to sell what we had built. We got decently good at converting free users into awesome accounts, but it was far from efficient, and we were still sucking at enterprise conversions. At the same time we were getting a ton of inbound to raise a bit more money, and even offers to sell the company. Needless to say we were a bit distracted by all of this, but by February we had gotten our heads straight, scrapped our previous thoughts on sales, turned down the acquisition offers, and set out to raise our seed round. We had also gotten a ton of good focus on what v2.0 of Upverter needed to look like, (huge focus on data and interoperability) and the engineering team was hard at work bringing it to life.


Maybe a bit ironically after all the energy and excitement around Upverter in January and February, March was a pretty scary month for us. The fundraise was going slow, we weren’t getting any better at sales, and at the end of the month we ran out of money. There were a couple gut checks, and we mumbled a bit about making the wrong choices in February. But in the end we made a call to keep going, threw a couple hail marys, and found enough money for April. We continued slogging through April and May, threw a few more hail marys, and through sheer force of will, a ton of trust from our employees, and the generosity of our friends and families, we pulled through.


In late May we closed our seed round (to be announced soon!) from an amazing list of VCs and Angel investors. We got a brand new lease on life. And by June we were back at full speed, still launching a major feature a week, pushing the metrics up, and closing more sales than ever before.


It’s now August 2013, and we have 6 new employees, a couple of very exciting enterprise trials, and a very clear vision of what the next 6 months is going to look like.


Today, Upverter is the best way to do multiplayer engineering. We host the world’s most sophisticated in-browser CAD tool, the world’s largest open-source electrical parts library, the largest collection of engineering designs on the internet, and we are one of very, very few ways for engineers to work together.

Tomorrow, Upverter will be where engineering happens. We are trying to grow the library and the repository orders of magnitude over the next couple months. We are building converters for every CAD and EDA file format we know of. But we are also growing the community. We want Upverter to be a place you can go to interact with your engineering peers, a place to learn from them, and a place to share with them. We are continuing to improve our tools – they are our special sauce and they make the rest of it possible – but expect to see much more glue over the next little bit: just because you use a legacy tool, doesn’t mean you don’t need collaboration too.


Thanks for being part of this. Thanks for rooting us on. Thanks for using Upverter. And thanks for being an engineer – the world needs you more than they know.

BBQ time @Upverter

Upverter BBQ

Last weekend was a long one and we decided to throw some steaks on the grill to celebrate Canada Day. A small number of interesting people ate a large amount of delicious food.That means the BBQ was a success!

Key Facts:

  • Zak and Zach spent 6 hours trying to conquer the world / playing board games in the afternoon.
  • Steve did a pre-dinner nap.
  • Bad faith: the conversation suddenly drifted from Zak’s cooking skills to defining what the absolute zero was. But everyone enjoyed the meat.
  • George thought about quitting smoking after raccoons almost attacked him when he was back outside for his bedtime cigarette.
  • Cheese leftovers survived for a few hours as Francesca came early in the morning.

Week end is over by now and everyone is back to hard work building the best cloud-based CAD software on the market!

A big thanks to Zach for these awesome pictures!


How to Disrupt Engineering

How to Disrupt Engineering

image by 

Stefano Di Chiara

At Upverter our mission is to make innovation in hardware as painless as innovation in software. We have a very simple “business plan”. It consists of 3 milestones, of which we have hit one so far. It will take us about 5 years to build the technology behind hitting all 3.

We belive this is how you go about disrupting enigneering.

First, develop low-end, but high-performance and collaborative tools to prove that cloud-based engineering is both faster and feasible.

Accomplished: November 6th, 2012

Second, reach feature parity and blur the lines between disciplines to compete with professional desktop tools.

On Track: Late 2013

Third, build the rosetta stone of engineering, unlock 30 years of design data and become the platform of engineering.

On Track: 2015

Upverter’s 2nd Birthday


Image by Laura Sch

We build pickaxes for engineers that design hardware.

We passionately believe three things:

  • Better tools will result in thousands upon thousands of better products.
  • Collaboration matters; Great products don’t get built through isolation, but through community.
  • Engineering, like all professions, is moving to the cloud.

And we just had our second birthday!

We spent our first year building the worlds first cad tools in a web browser. It was awesome. And so I thought I should write a little bit about how we spent our second.

We spent most of our second year building the worlds first collaborative layout tools. But we also built the first cloud simulation, the first integrated cloud PLM & CE, and the first insanely accessible electronics prototyping. We stretched the boundaries of our original product into what are very likely the best ideation, collaboration, and logical design tools ever created. We grew the community and we enabled them to start dozens of new companies, and thousands of new products.

And in the last 6 months, we’ve also launched our second product. Grown the team. Sold copies into the enterprise world. Doubled the community. And hosted epic hackathons, with some pretty epic results.

Its still early days for us. We think we’ve built some of the best tools in the world for designing hardware, but as long as people are engineering products we’re going to be trying to make it easier.

If you engineer hardware you should give our tools a try. They will probably do most of what you need, and we’ll cut your design cycle in half. And if they don’t do what you need, just let us know – you’ll help us decide what to work on next.

Mmmmmm Cupcakes!!

What a cool day!
Out of the blue we got a surprise visit from a cupcake delivery guy (I didn’t even know they had those!). Anyway, true to his form this cupcake delivery guy gave us a whole stack of the most awesomely decorated and delicious cupcakes I have had in a damn long time. Well, make that ever… I don’t think I’ve ever had a inductor cupcake before – but were about to start the trend, so watch out!
Turns out the cupcakes were care of our great friends, the rockstars over at iFixit. Thanks guys! What a cool treat!

3 Months In. So Far, So Good.

So it’s been 3 months now, and it’s fall. Hell, it’s pretty much winter. And it continues to be a wild ride here at Upverter. We’ve seen great growth, wonderful feedback, and some remarkable hardware beginning to be designed. It’s pretty exciting. So, what’s next? What’s on the horizon and what do we still need to figure out?


It’s real. It’s a thing. It’s powerful. It’s transformative. And it’s still very, very scary to most of our users. There was a time when the cloud, source control, and merging, were just as scary to the software world. And it’s ok. We’ll get through it. Together. Deep breath. There is no doubt collaboration is the way of the future. No doubt that design tools are moving to the cloud. And no doubt that we remain the best positioned to make this happen. So let’s all just take a deep breath, clench our ass cheeks and get this show started.


So far so good. You’re a small but magical community. You are doing incredible things. I’m very proud of you, and I couldn’t be happier.


You have spent an absolutely fuzzy amount of time designing. We love you. Stop reading this and get back to work.

Whats Next

Answers. We still have a few open questions. We are still getting great information from the community, and we still have a bit of product left to build (can anyone say layout?). We’re going to get to the other side of these questions, and then we’re going to add a few zeros.