Month: January 2012

  • GrowLab on tour

    GrowLab DemoDay 2011 - Some rights reserved by miketippett
    AttributionShare Alike Some rights reserved by miketippett

    Ok, it makes me laugh every time I read GrowLab. The only way it could be better is when someone describes the GrowLab companies as “GrowOps”. They really did a great job in creating a corporate name that has a set of nuanced meanings (well maybe it’s not so nuanced).

    Our friends from GrowLab are heading out on tour to find their next cohort. They are coming to:

    • Toronto – February 13, 2012 Register
    • Waterloo – February 14, 2012 Register
    • Montreal – February 15, 2012 Register
    • Edmonton – February 22, 2012 Register
    • Calgary – February 23, 2012 Register

    Sounds like an interesting night with Daniel Debow (LinkedIn, @ddebow), Debbie Landa (LinkedIn, @deblanda) and Jason Bailey (LinkedIn, @YVRJason) talking about startups, entrepreneurship, building companies in Canada, getting connected in the Valley, GrowConf, incubators and other fun things. The panel conversation is:

    Are you an Entrepreneur or a Wantrepreneur?

    What makes you different from other entrepreneurs trying to build start-ups? You are competing with thousands of entrepreneurs for the same resources, talent, and capital. How are you going to make sure that you attract the best people and funding? Is it about who you know or is it about how great your product is or the reach you have in the community?

    In Toronto that I get to host the above conversation, it means that I’m going to have to represent for the “Wantrepreneur” side. Because there is too much awesomeness with Daniel, Jason and Debbie representing the “Entrepreneur” side. It should be a fun event and a great time for entrepreneurs to get or stay connected with each other. This is a great group to provide deep insight into the experience of building companies in Canada and selling them to Silicon Valley powerhouses.

    Given the tour includes stops in Bucharest and Budapest, I can guarantee that someone will mention Summify (congrats guys).Also excited that Debbie and Jason will be joining us on Feb 16 for Founders & Funders.

  • Extreme Startups

    Extreme Startups

    Rob Lewis and TechVibes is reporting that ExtremeU (you can read our past coverage 2009, 2010, 2011) has launched a new Toronto based incubator that leverages their experience over the past 3 years. Mark Evans provides additional details that includes “$7-million in funding from Extreme Venture PartnersOMERS VenturesRho Canada VenturesBlackBerry Partners Fund and BDC.”

    Extreme Startups includes a who’s who of  the Toronto startup scene as mentors:

    • David Ossip
    • Daniel Debow
    • Anand Agarwala
    • Michael McDermentt
    • Ameet Shah
    • Albert Lai
    • Leila Boujnane
    • Ali Asaria
    • Noah Godfrey
    • Ray Reddy
    • Rick Segal
    • Salim Teja
    • Derek Seto
    • Nick Koudas

    Congrats to Andy Yang, Sunil Sharma and Amar Varma in getting this thing launched. Plus how can this not be awesome with Andy Yang as Harold and Sunil Sharma as Kumar in Extreme Startupping.

    Andy Yang and Sunil Sharma go EXTREME STARTUPPING

     

  • An incubator for grownups…

    CC-BY-NC-ND Some rights reserved by mallix
    AttributionNoncommercialNo Derivative Works Some rights reserved by mallix

    David Crow and others (Huffington Post, TechCrunch) have suggested we’re experiencing an incubator bubble?

    Incubators are built for the young. Students exiting school are already living the ramen lifestyle. That means they’re cheap, they have no kids, no meaningful obligations and there’s a good chance they’ll work close to 24/7. It sounds dreamy, if you’re an investor.

    I’m old. I have kids. I’m not moving to Boulder or California for 12 weeks. I don’t play games in the office or do busy work. Why aren’t there incubators for me? I look at the incubators like 500Startups, YCombinator and TechStars and that is what I want. I just can’t participate. I can’t do the work and change my family life the way they’ve structured it.

    What I need from a incubator is…

    To Pay My Own Way

    While new graduates come cheap, grownups are capable of paying their own way. I’d rather work with someone who has some skin in the game over so-called low-cost labour. I’m willing to make an investment in a startup as a career choice.

    While most incubators offer low, bordering on zero, salaries that barely cover living expenses for someone living on the ramen diet. This doesn’t work for me. I need to be able plan for my family and my kids. What I need is something closer to an executive MBA program or a sabbatical. Continuing education programs are interesting because current employers and banks will let you borrow against your assets to get started. It requires larger savings or a working spouse to be able to fund my family during the initial startup experience. I’m willing to buy in to make this happen.

    Hunger, Drive

    Many new graduates will compare working in a startup with a plain old job. This startup thing is cool and all but it’s a ton of work and my buddy working at AcmeTech is already done work for the day and playing XBox online. Building a business offers you freedom. Freedom from what? Corporate politics, busy work, crappy work, basically the standard boredom of the 9 to 5. How can you value that if you’ve never had a shitty boss?

    I work for more than myself. My family and their future is what drives me forward everyday. I work hard when I’m working. When I’m not, I’m with my family and friends, I’m taking my kids to hockey, piano etc. What I’m not doing is placating my boss with more busy work.

    I want to build a successful business for me.

    Access to Mentors

    Tell me if you’ve seen this. You’re sitting around a table discussing your projects and companies. Someone leaves the table early. One of the people remaining at the table proceeds to lay out in detail why that guys venture is going to fail. Why didn’t you tell him that when he was here?

    The solution is for the guy who left early to get a cheque from the remaining person. As soon as she writes that cheque, she’ll sit that guy down and tear him apart and he’ll be better for it. Startups can drown themselves in mentors and advisors. I want to be at the table everyday with people truly invested in my project. Failure for no reason is not an option.

    Learning The Right Skills

    If you have a job today in technology and aspire to be an entrepreneur, typically the first step is to quityour crappy day job. You don’t have a team and project for your new business so you start consulting to pay the bills. You’ll be a great consultant, you’ll learn how to sell your hours, how to find clients, how to deliver services well. Skills that have almost nothing to do with taking a product to market. Once you head down this path, the likely destination is lamenting over some pints how “I was going to do product back when I left my job”.

    Startupify Me

    STartupify.me

    Startupify certainly wasn’t conceived as an incubator for grown ups, however, it does fill a lot of these gaps. While it likely constitutes a pay cut, we pay you to work on startup projects learning new technologies and the startup game. We partner you with established businesses who have a proven track record of creating sustainable businesses that deliver value to their customers. Everyone at the table has skin in the game. We go into our client companies, find and develop opportunities to build differentiated software to grow the stand alone value of their business.

    If you have work experience as software developer and are ready to join the entrepreneurial revolution, we should talk.

     

  • Hiring for Lean Startups: The First Few Hires

    Editor’s note: This is a cross post from Flow Ventures written by Raymond Luk (LinkedIn, @rayluk). Follow him on Twitter @rayluk. This post was originally published in January 12, 2012 on Flow Ventures.

    CC-BY  Some rights reserved by Maximus_W
    Attribution Some rights reserved by Maximus_W

    I was having coffee with a founder the other day and we started talking about his hiring plans. Since he’s a non-technical founder (which Ben Yoskovitz claims is a dead-end to begin with) he had several top coders in mind, all of whom were earning big bucks with larger companies.

    “I’m paying them a little bit of money but they’ll join full time once I can raise money,” said the founder. It’s something I hear a lot, especially from non-techie founders.

    I went back to review some blog posts on Lean hiring, and I came across Eric’s post “Lean Hiring Tips” and Mark MacLeod’s “Fat Hiring for Lean Startups“. Both are worth your time. But I think they’re also written for startups that are already up and running and need to expand. I’m interested in very early stage hiring, e.g. when you’re one person looking for a co-founder or you’re two people looking for your core team.

    Companies always take on the characteristics of their founders and in the rush to scale, I find many startups don’t stop to consider how they’re establishing the DNA of their company. The first few hires are the most important ones you’ll make.

    • Hire for an experimental mindset – Look for people who enjoy encountering problems, designing ways to solve them, and finding proof of success or failure. Skill at building, whether it’s software or a marketing plan or a sales funnel, is irrelevant at this point. You need people who will volunteer to scrap their plans, not fight you when you want to change course.

    How? Join a hackathon, Lean Machine or just create your own (laptop + Starbucks = hackathon). Give your (potential) team a crazy challenge and see who exhibits the right behaviours.

    • Hire generalists – A lot of people will disagree with this advice. If you can find the best Python developer in the country go for it. But only if she’s also willing to cold call customers, crank out some Web site copy and help you whiteboard the business model. Your #1 focus is to find a business model that works. The latent technical talent on your bench won’t help you unless you graduate from this first phase

    How? Again, hackathons are great practical tests. No matter what their skillset, look for passion about your business model and solving customer problems.

    • Prioritize UX over development – This is easier said than done since there’s a shortage of UX talent. But it’s better to have a kick-ass UX person and a mediocre developer than the other way around. UX will help you find your business model and most (good) UX people already have an experimental mindset and generalist attitude

    How? Actively seek out UX people, not just developers. You may need to work at a distance if you can’t find local talent. Consider working with less experienced people if they can prove themselves through testing.

    • Get skin in the game – Leaving a six figure job to join your startup for a paycut is not skin in the game, or not enough in my books. Hire those people later when you’ve found your business model, have money in the bank, and need to scale. Skin in the game means working full time, just like you are. It means putting their reputation on the line, raising Ramen funding from friends/family/spouses and saying “I’m going to see this through until we fail.”

    How? Stop feeling like you’re a poor startup that can’t afford to pay top salaries. Those aren’t the droids you’re looking for. Think of finding your co-founders like raising your first round. You need to get them excited to invest in your business.

    I know this advice seems to apply better to “Web” startups than general technology startups, which is a common criticism of Lean startups in general. But I think it applies more broadly. If you hire for the right attitude, you not only solve the critical product-market fit problem, but you set the DNA of your business right from the start. I guess I haven’t seen too many examples of startups failing because they lacked a specific technical skill. They probably think they failed because of it though.

    In the end, I guess “hiring” is the wrong word to begin with. You’re looking for people to co-found a business with you. You aren’t buying their skills, you’re asking them to invest in helping you shape the course of your business from the very beginning. Maybe not all of them (including yourself) will be able to scale up with the business. That’s a problem for another day.

    Editor’s note: This is a cross post from Flow Ventures written by Raymond Luk (LinkedIn, @rayluk). Follow him on Twitter @rayluk. This post was originally published in January 12, 2012 on Flow Ventures.

  • Founders and Funders Toronto – February 16th, 2012

    The last Founders and Funders dinner in Toronto was almost exactly two years ago. A lot has happened in that time and we thought it was time to sit down and break bread together again.

    The Founders and Funders dinners are a series of invitation-only dinners that are held across Canada several times a year. They are a sort of summit on the state of each community and we do our best to make sure that the best startups possible have a chance to meet the most respected and active investors who are doing deals in those cities. There is always a mix of locals and people who come in for the event as a way to get connected.

    We believe that if you cannot sit down and have dinner with someone, then you probably shouldn’t invest in or take investment from them. This is a great chance to apply a social filter to the dealflow in any one place.

    What is it?: An invitation-only 3 course dinner. Cocktails before, cocktails after….

    Who is coming?: The top investment-ready startups and active investors in Canada.

    Where is it?: Downtown Toronto

    When?: February 16th, 2012 at 6:30pm

    How much is it?: Tickets range from $125 (startups) to $500 (service providers)

    We are now accepting requests for invitations and the first round of invitations will go out this week.

    To apply please use this form >>

    We have also decided to include a brief fireside chat with Daniel Debow at this dinner. We rarely do this sort of thing at a Founders and Funders but 2011 was such a great year we thought it would be fun to look back on the ups and downs of Rypple through the years and how they got to their eventual exit, some of which was written about in Forbes this week.

    Daniel and Rypple have also been a big part of the Canadian startup community and he has also been an active angel investor recently.

    We are excited to hear what he has to say about how we can help build more great Canadian companies and how to build awareness in Silicon Valley when your HQ is back here in Canada.

    We hope you will join us as we kick off another great year for the Toronto and Canadian startup community.

    We will be announcing Founders and Funders dinners in other cities soon as well.

     

  • While startup CEOs are scrubbing toilets, CTOs are building things

    Editor’s Note: Gavin Uhma is the CTO of GoInstant.com, a Halifax, NS based startup. 


    Technical Co-Founders need to find their voice.

    I’ve been in the fray of building a startup for over a year now and normally I don’t think to write publicly. I usually feel like I am already too busy communicating with the team, programming, and planning. In that year I’ve come to the realization that there are not many resources out there for technical co-founders.

    We are constantly wrestling with make-or-break decisions: What should you be doing at each stage in your company? How do your responsibilities change as the team grows from the founders to the first hires? What about at a team of 10? Of 50? Of 100?

    I can’t help with 50 or 100 yet, but I can help you get from the idea to a founding team, to a team of 10, and I will continue to blog at each stage of growth as I learn what I need to do next.

    This is my second time growing a team to this size and I know for certain that we’ve created more value this time.

    Why are CEOs toilet scrubbers?
    Jevon is more qualified to answer that than me, but in the early stages a CEO needs to keep the fridge stocked and the bathroom clean (a job description Jevon reluctantly accepts as true). They create a cool office environment. They are the Janitor, Caterer, Secretary, Executive Assistant, and more. A startup CEO handles PR, HR, product management, recruiting, marketing, investor relations, accounting, and anything else that needs to be done to keep the gears of a startup moving smoothly.

    There are plenty of resources out there for early stage Business Co-Founders. Everyone loves and appreciates CEOs already. They are by default, the face of the company.

    I’m starting to blog so we can all learn more about the responsibilities of startup CTOs.

    Why are CTOs so awesome?
    Technical Co-Founders are building the product. We’re pulling late nights so that demos run smoothly the next day. We’re building what will be bought and sold. Investors are attracted to our efforts. Customers find value in what we build. We are the VP Engineering, Project Manager, Product Manager, QA Engineer, DevOps, UX Designer, UI Designer, DB Engineer, Recruiter, etc. We’re responsible for performance, security, stability, front-end, back-end, training, technology roadmaps, patent filings, and more.

    How do CTOs create assets?

    1. We solve difficult problems with new technology to fulfill a big vision.
    2. We attract engineers who are better than us to accelerate the roadmap to that vision.
    3. We secure the intellectual property and data of our applications and users.

    The end result is an asset of true value — An elegant and novel solution developed by a team who have grown to be absolute experts in the problem domain.

    Yin and Yang
    The truth is I can’t talk about what our technical team does at GoInstant without constantly being reminded of what Jevon, Dave and Ben do. One side is just not effective without the other.

    It’s important to emphasize that none of the assets matter if you never find your customers, investors, partners and potential acquirers. You might build a beautiful technology, but without a product focus and real customers, technology rarely wins. Business Co-Founders, do your thing.

    Value
    There needs to be substance behind popularity or you’ll wash up quickly. You create value by packaging up and presenting the collection of assets in a meaningful way.

    If you want to build a valuable company you need people to care about what you’re doing. You need customers who value your vision, but ultimately there needs to be something impressive under the hood.

    There are many startups that are solving incredible technical challenges but without a compelling go to market, they get lost in time. If you’re in this position the best advice I can give you is to find an awesome Business Co-Founder. “Build it and they will come” does not apply.

    There are also many startups with popularity and flair but no substance. At the end of the day, if you don’t have a big vision and a technology to back it up you’re going to come off as a poser. Find an awesome Technical Co-Founder. Be an awesome Technical Co-Founder.

  • Call us when you have traction

    Editor’s note: This is a guest post by Kevin Swan (LinkedIn@kevin_swan). Kevin has cut his chops doing product management at Nexopia.com before becoming it’s CEO. He moved to the dark side with Cardinal Venture Partners and is now a Principal at iNovia Capital.   Thankfully he is an MBA dropout and that’s why we like him. Follow him on Twitter @kevin_swan or OnceABeekeeper.com. This post was originally published on January 12, 2012 on OnceABeekeeper.com.

    CC-BY-NC-ND  Some rights reserved by Raymond Larose
    AttributionNoncommercialNo Derivative Works Some rights reserved by Raymond Larose

    This is probably one of the most common phrases you hear from venture capitalists. It has become the de facto phrase from an investor that really isn’t interested in your startup, but wants to let you down easy. I make a conscious effort to avoid taking this backdoor, but I know that I have been guilty of it as well.

    Recently, I was digging into a company and providing the entrepreneur with some feedback. After sharing a few thoughts I used the traction excuse – in this case it was legit. We liked the space, the entrepreneur and what he had accomplished so far. However, he didn’t have enough traction for it to be attractive as an investment yet. He quickly emailed me back with the question – “What do you mean by traction, specifically?”

    Then it hit me – I have never actually been asked that! I think that investors are so used to using the term that they never put any quantifiable information behind it. I thought that it would be a good exercise to provide a quick overview of what traction looks like. Note that what follows is completely a generalization and their are many other factors that come into play in an investment decision. Also, traction looks very different depending on the type of company you are building and the market you are targeting. I will tackle three common ones in this post and try to estimate some figures that would be required for a Series A investment.

    In consumer internet or mobile startups that does not have a transactional revenue model attached to it traction is all about the audience. The bar for what traction looks like in these companies has been significantly raised from 5-7 years ago when everyone was starting social networking and digital media companies. To be compelling to a VC you will need to show early signs of growth, 30%-50%+ month-over-month (MoM), and start to build an active user base of 100K+. Some VCs I have talked to say not to get your hopes up for a Series A investment unless you are around the 1,000,000 mark.

    uvs-to-pinterestLets take a look at one of the hottest companies in this space that just recently closed a round of financing, Pinterest. Don’t focus so much on the incredible growth they have recently experienced, but rather notice that they had it even when their user base was small.

    SaaS company will not experience the same kind of growth as a consumer internet company. It is, however, generally able to produce revenues from day one. The definition of traction for these companies looks more at the signs (or specifically, data) that the company is moving to a scalable and profitable model. In simple terms, the separation between the cost of customer acquisition (CCA) and the lifetime value of a customer (LTV) is shrinking and repeatable. This combined with a growth of 10%-30% MoM shows signs of traction.

    An e-commerce company takes a longer time to show signs of traction that is attractive to investors. This stems from the fact that it requires a considerable scale to make an e-commerce company profitable in light of low margins and expensive infrastructure. The same key performance indicators (KPIs) apply – CCA and LTV. However, unlike SaaS companies there are going to be considerable capital and fixed costs in an e-commerce company to consider. In general, growth rates of 10%-30% MoM and a 12-month run rate of over $1 million are signs that the company has traction.

    I want to re-iterate that this is a generalization and their are many other factors that come into play in an investment decision. However, I wanted to try and provide some quantitative numbers for context.

    Another question that I know will come up is in relation to what kind of traction is required for seed/angel investments. That is a whole other post, but I will share a great comment from my colleague Karam. While a Series A is all about traction, seed investment is all about momentum. This momentum can take a lot of forms – traffic, sales, product development, recruitment of a team or even investors who have already stepped up to the plate.

    Don’t wait until you have hit these metrics to reach out to investors either. In every case, an investment starts with a relationship that has to be built and investors want to see lines not dots. If you are moving in the right the direction and building traction make sure you reach out!

    Editor’s note: This is a guest post by Kevin Swan (LinkedIn@kevin_swan). Kevin has cut his chops doing product management at Nexopia.com before becoming it’s CEO. He moved to the dark side with Cardinal Venture Partners and is now a Principal at iNovia Capital.   Thankfully he is an MBA dropout and that’s why we like him. Follow him on Twitter @kevin_swan or OnceABeekeeper.com. This post was originally published on January 12, 2012 on OnceABeekeeper.com.

  • When Does a Startup Stop Being a Startup?

    Editor’s note: This is a cross post from Mark Evans Tech written by Mark Evans of ME Consulting. Follow him on Twitter @markevans or MarkEvansTech.com. This post was originally published in January 11, 2012 on MarkEvansTech.com.

    Anakin Transformation -  CC-BY-NC Some rights reserved by Tiggywinkle
    AttributionNoncommercial Some rights reserved by Tiggywinkle

    This may be a question of semantics but here’s a question for you: When does a startup stop being a startup? At what point does a startup become a small company or a plain and simple company?

    It’s an interesting question because it’s easy – and probably lazy – to describe less established high-tech companies as startups. As well, the word “startup” is lot sexier and appealing than “small business”.

    So how should a startup be defined? Does it have to do with the evolution and life-cycle of its product? Is it the number of employees? Is it linked to revenue? Does it have to do with how long a company has been around? Can a startup have 10s of thousands of customers even if none of them actually pay for a service?

    For example, is Freshbooks a startup despite the fact it has been around for several years, it has 80 employees and sales of about $10-million give or take a few million dollars? It’s sometimes called a startup but it’s more accurate to call it a small company.

    For the sake of argument, here are some possible criteria for startups:

    1. Less than 20 employees. Once you get more  than this number of employees, a company starts to have “departments”
    2. A product still in development (pre-launch) or in market as a beta for less than six months.
    3. No sales or sales of less than $1-million, which means it’s a mini-business as opposed to a small business.
    4. It’s less than a year old, although there are companies that do go from zero to sixty in less than 364 days.
    5. No customers or only a handful of customers, who may or may not be significant clients dollars-wise.
    6. It has raised more than $5-million in venture capital. With this kind of cash, a company can support having a large team.

    For more thoughts, check out this Q&A on Quora, as well as a recent blog post on Business Insider.

    Editor’s note: This is a cross post from Mark Evans Tech written by Mark Evans of ME Consulting. Follow him on Twitter @markevans or MarkEvansTech.com. This post was originally published in January 11, 2012 on MarkEvansTech.com.

  • It’s people, people!

    Soylent Green - Tastes just like Chicken - CC-BY-NC-SA  Some rights reserved by vj_pdx
     AttributionNoncommercialShare Alike Some rights reserved by vj_pdx

    How do I know that emerging technology is still booming? It is incredibly difficult and competitive to recruit, hire and retain people with startup experience across Canada. Just look at the number of jobs posted on the StartupNorth Job postings:

    The number one budget item for startups is headcount. For most companies, the people costs far exceed the costs associated with hosting, etc. I don’t know about you but we’re not designing our own servers or opening data centers near the Arctic to reduce the cost of computing and power consumption. It means that the people are the biggest cost for a startup as they grow.

    This is different during the initial creation of many of the startups in the bootstrapping phase. We’ve seen a lot of startups get to Minimum Viable Product and start the process of finding a scaleable business model keeping their headcount costs low or close to zero. You might infer that the experience at YCombinator or TechStars or 500Startups is designed to give entrepreneurs the bare minimum of capital and put them in a focused, competitive environment with a deadline (Demo Day) to do the customer development and build the connections necessary for the next stage. Upon exit, many of these companies raise a significant amount of capital. Have you asked yourself why?

    Soylent Green is People - CC-BY-NC-SA Some rights reserved by tjdewey
    AttributionNoncommercialShare Alike Some rights reserved by tjdewey

    It’s to hire the best people. And it turns out that hiring the best people is not something that can be easily solved with a job posting, or a tweet, or free iPad. Recruiting is Hard! And at startups, it can be difficult to step away from fund raising, product development and customer engagement to focus on the thing that can make or break your business. Ben Yoskovitz wrote a great summary post of his efforts to Recruit and Hire Top People for a Startup that every founder should read:

    The war for talent across Canada is just beginning. During my time at VeloCity at UWaterloo, I was impressed at the number of US companies and startups that were actively recruiting on campus. And the established companies aren’t alone, we have seen an increase in the amount of US investments (looking at you GoInstant, Vidyard, TribeHR, Kik, Playerize, Enflick, Shopify, Hootsuite, A Thinking Ape, and others). This will undoubtedly lead to increasing salaries (see @byosko’s # 4 prediction for 2012 in Montreal). It doesn’t even take into consider the continuing recruiting efforts that companies like Rypple, Radian6, Dayforce. For startups, we are going to need to improve our culture and game to keep talent. And getting your startup to a point to raise enough money to pay competitive salaries is going to be the baseline to play in 2012.

    If you are designer, marketer or developer and you are curious at who is hiring or if you want an introduction, drop me a note with a resume (david at davidcrow dot ca) and I’ll do my best to match you with companies I know are looking.

     

  • Under the Hood: The Technical Setup of Upverter

    Editor’s note: This is a cross post from the Upverter blog written by Zak Homuth (LinkedIn, @zakhomuth, Github). Follow him on Twitter @zakhomuth. This post was originally published on August 1, 2011, I was just negligent in posting it.

    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.

    http://en.wikipedia.org/wiki/Apache_Wave
    http://code.google.com/p/etherpad/
    http://techblog.gomockingbird.com/archive/5/2010

     

    Apache-wave

    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 (http://nginx.org/) for our reverse proxy, load balancing and SSL termination.
    • We use Flask (http://flask.pocoo.org/) (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 (www.zeromq.org) on top of Google Protocol Buffers
    • Our external communication is also done through our custom RPC javascript again mapped onto Protocol Buffers. http://code.google.com/apis/protocolbuffers/docs/overview.html/
    • 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.

    Reference

    Editor’s note: This is a cross post from the Upverter blog written by Zak Homuth (LinkedIn, @zakhomuthGithub). Follow him on Twitter @zakhomuth. This post was originally published on August 1, 2011, I was just negligent in posting it.