Guelph Tech Show and Tell Event


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

We’re hosting our 25th DemoCampGuelph next week. For those unfamiliar, it’s a highly social event where about six folks from our community will have the opportunity to demo some technology to the crowd. It may be something they’re working on or just a cool project they want to share. It’s a very casual event that is a great way to meet some other folks in our local tech scene.

RSVP now if you’re joining us on Wed Nov 19th.

We’ll start the evening off with our invited speaker. Most folks in the Canadian startup scene have heard of Ben Yoskovitz. They likely know him from his days helping to shape and grow the Montreal startup scene, including his role in the incubator Year One Labs. They’re surely heard about his recent tour of duty with GoInstant in Halifax and his new role at VarageSale in Toronto. What they may not know is that Ben was born and bred right here in the Royal City. So it’s a welcome home of sorts.

We’ll then jump into our demo’s for the evening. After our demo’s, we have live local music with AJ Johnson from Cuff the Duke and The Oddyears.

Please register if you’re able to join us. You do NOT have to demo to attend but if you’d like a demo spot, please submit your application asap!

Startup Train Wins $100K!


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

Long time no speak. We took the fall off but now that the NHL is back we figured it’s time to get back to it. I have a great story to share about this summer’s soldout Startup Train. End of day, it sums up what our train is attempting to do.

Last summer, in speaking to the folks at Shopify about sponsoring the train they mentioned that they’d like to sponsor some tickets for startups to attend. They purchased two tickets on our train which we gave away to two local startups.

One of those startups decided to pitch at the conference. By the time the dust settled and the conference was handing out their prizes, Susie Pan from Blynk had walked away with their top prize of $100K towards her startup. Talk about ROI!!

So, no the Startup Train didn’t exactly win $100K but it kinda sorta feels like we did. Honorable mention to another Startup Train company Redtree Robotics who won the FounderFuel Fall 2014 Cohort award.

Free Tickets on Startup Train


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

Thanks for Shopify, we gave away two tickets on next week’s Startup Train to International Startup Festival. We ran a twitter contest to award them. After a random draw from all entrants, our winners are Susie Pan and James Mclean…

Susie is a recent grad from business school and has chosen entrepreneurship over a traditional job. “I want to attend Startup Train to bring the youth perspective into the ecosystem and to engage in a creative non traditional setting of networking (eg. on a train). My current start up is a fashion mobile app that acts as your personal stylist.

James is a local designer who views the trip as a “good opportunity to learn via workshops and other startups that are trying to solve similar problems. We are always recruiting too – so I’ll be on the look out for those who cook and code.

Free Tickets on Ontario @StartupTrain!


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

Thanks to our sponsor Shopify, we’re giving away….

Two free startup tickets on this July’s Startup Train.

These tickets include your first class travel on the Startup Train to Montreal and full access to the International Startup Festival. You will only need a place to stay and a way home after the conference.shopify

We’re giving these tickets away using Twitter. To enter, simply post to twitter what value you would get out of the Startup Train, between now and June 23rd at 5pm. Be sure to include “@startupTrain” in your update or simply finish the twitter update “I’m on @startupTrain to

PS…This year’s train is almost soldout, and could sellout this week before this contest ends. If you can afford a ticket and want to be on the train, you may not wait until next week.

Fine Print

  • These tickets are intended for ‘starving startups’, who otherwise couldn’t afford the trip. If you’ve already purchased a ticket on the train, or to startup festival, then you’re ineligible.
  • The winners will be selected at random from all entries.
  • Contest closes Monday June 23rd at 5pm.
  • To qualify, you must post a meaningful answer for why you should attend. The response must be posted to twitter and include “@startuptrain” in the post.

Why Are You On The Startup Train?


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

We tried something new for last year’s Startup Train aimed at helping our passenger’s avoid the boondoggles. When you attend startup conferences, you can’t simply show up and send a report to your boss after. Unfortunately you’re on your own now and you need to decide what you’re hunting for and go find it!

To that end, we asked our Startup Train passengers to decide what their one metric of success was for coming on Startup Train. Then record and share it with the world. The goal being that by the time you board the train, we all know what you’re after and we can help you achieve it.

To add some fuel to the fire, submitting a video also entered our passengers into a draw for $1500 in travel vouchers from our sponsor VIA Rail. As well, this year our friend’s at Vimeo will be giving away a pro account worth $199 to their favourite video.

You can see some of our video’s from last year here. As this year’s passengers record their videos, we’ll share them on twitter with you.

We’re well over halfway soldout for this year’s train and expect to sellout for the 3rd year so make sure to get your ticket shortly if you’re joining us!

We Need Your Startup Founder Questions?


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

For better or worse, we’re doing this Founder Interview deal tonight at DemoCampGuelph. The event starts at 6:30pm in downtown Guelph at The Ebar. We’ll have three startup founders who are at various stages of startup’iness. What do you want to ask them??

3330166423_c8ee8ee1e1_mPost your questions to the twitterz today and we’ll do our best to work them in. Just click this link, then add your question after the “my founder question @demoCampGuelph…” part. We’ll watch and gather them today and do our best to incorporate them this evening.

Some examples to prime the pump…

“All-in? When do you stop working on other side projects, quit your 9-5, invest 100% into your startup?

when is it over? and how difficult is it to: a) be objective in that assessment and, b) deal with the aftermath from a personal standpoint?

Knowing what you know now, what would you have done differently? What could you have done to have known this beforehand?

Founder Interviews at DemoCampGuelph


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

At previous DemoCampGuelph events, we’ve had some awesome invited speakers. Yes, some name dropping here…Rob Hyndman, Mike Litt, Tara Hunt, Mike McDerment, Jay Goldman and many more have made the trek into the heart of Guelph to speak at our wee event. We’ve been fortunate to hear from experienced heavyweights who’ve been there, done that.

Clearly experience counts but what I’ve learned from our ThreeFortyNine Founders’ Club events is that we can learn as much, or more, from the folks we work with everyday.

So, it’s time to mix things up for this week’s DemoCampGuelph. I’d like to introduce you to…..

Founder Interviews @DemoCampGuelph

1275188911_ebc291d8f4_zHere’s the way this is going to work (I hope). I’m going to interview three people about a startup related theme. Those three people will include:

The Rookie: Someone who is chomping at the bit to launch their first startup.

The Vet: Someone who is currently in the deep end and working away on a startup of their own.

The Retired Vet: They’ve been there, done that and are taking a breather.

To make this work, I need your help in one, or all, of the following ways:

  1. Attend the event this Wed night, please register if you haven’t already.
  2. Apply for a demo spot.
  3. Volunteer to be interviewed. Email me directly, letting me know which of the above you are.
  4. Help us pick a theme for the interviews to focus on.
  5. Oh, and as always, share, share, share! Tell others that DemoCampGuelph is this Wednesday night and help us fill the room!!


Get Your Demo On…In Guelph


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

One week from today is our 24th rendering of DemoCampGuelph. It’s cool that this event is old enough to drink but we’re creeping up on 30 now. I’m not sure how I feel about that. If you haven’t been, here are a few key points about the event….

534872012_e8ccac2459_zFree to Attend

It’s free and you do NOT have to demo to attend. Ultimately this is a chance for all of us in the Guelph, and surrounding, tech scene to get together, meet, share a pint and maybe even work together.


Having said that, you really should apply to demo! You do not have to demo something that you built, it can simply be something that you think the crowd needs to know about.

Stay for music…

Live music is a big part of Guelph. We do our best to have a local musician play some live music after we wrap up. If you have some friends who are not in tech, have them stop by just for the tunes! We’re very luck to have Nathan Coles playing for us next week.

The Rewards of Failure


I work on 20Skaters, ThreeFortyNine, Ontario Startup Train and a few others. My vanity site is

Failure. It seems we talk about it more than success in the startup world. Mark Evans suggested that in “Canada, unfortunately, failure is a four-letter word”. Our fear of failing here prevents us from reaching, from leaping, from succeeding.

Some other guy suggests that safety nets are for failing. The idea that allowing yourself the space for failure becomes a self fulfilling prophecy.

So which is it? We’re too skeered of failing or we’re too prepared to fail?

3564244382_cb57a92511_mHere’s the rub. Until you accept that failure is a possibility, you’ll get nothing started but until you decide that failure is no longer an option, you’ll never succeed.

Step 1: Accept that failure is a likely and very real possibility. Focus on squeezing every last drip of learning out of every misstep.

Step 2: Decide that failure is no longer an option.

Another rub. There are very real rewards to failing that are attractive and appealing. Yes, rewards. Their appeal is strong, Dorthea Brande calls it the Will to Fail. For starters, having tried and failed allows to spend the rest of your days saying you tried…

“I had that idea”…..”Ya I had a startup but the timing wasn’t quite right”…..”I took a shot at it but I had the wrong cofounder”

Trying and failing keeps you from having to see what your idea looks like when executed on. Executing on a idea is ugly. It’s no longer a pretty, puffy dream with dollar signs, friendly customers and investors. It’s a real business that you had to white knuckle into submission. Chances are it was not pretty and it changed you as a person, not always in a good way. The difference between the finished work and that idea you had is often massive. Not having to ever see that difference is appealing. Leave me to my dreams please!

There are other rewards to failing, the point is that failure isn’t necessarily this ugly endpoint that you naturally navigate away from. It’s important that you consider what’s appealing to you in failing and what may actually attract you to it. You will never succeed until you choose that failure is impossible. Yes, it often is just that simple.

Red, Green, Refactor


I work at Boltmade and 20Skaters. I mostly write Ruby, HTML, CSS, and JavaScript. I hate timezones. Find me on Twitter: @eroberts


Ever since DHH’s keynote at Railsconf 2014 and his subsequent blog post TDD is dead. Long live testing., the development world (or at least the Ruby community) has been abuzz with thoughts on Test Driven Development (TDD). Uncle Bob, as well as a number of other influential members of the community, have jumped in to give their thoughts on the topic. I’ve listed some of these other posts at the bottom for further reading. I figured I may as well jump on the bandwagon myself, because hey, bandwagons are fun right?

One thing I’ve noticed about all of these posts, forum discussions, and tweets, is that there is a lot of focus on the speed of testing and the importance of decoupling. I must admit to being confused by this focus. TDD, as it was explained to me, is pretty simple:

  1. Write a failing test
  2. Write some code that passes the test
  3. Refactor

Red, green, refactor. Notice how it doesn’t say anything about speed? Or whether the tests end up hitting the database? It doesn’t talk about loading Rails in order to run your tests, or the difference between stubs, fakes, and mocks. It just says three simple things: write a test for some new functionality, write some code to pass that test, and then refactor that code.

While many discussions have revolved around speed, DHH seems to also not agree with the test-first approach in general, because in Test induced design damage he criticizes BDD for being such an approach:

At this point BDD proponents might well argue that, yes, testing units is not what we should be doing. We should be going outside-in. But as long as that’s also done under the test-first regime, I don’t think it generally help matters much. It still leads down a road of excessive mocking and artificial boundary installations.

I don’t agree that the simple act of testing first needs to lead to excessive mocking. By itself, test-first says nothing about how I write my test, just when I write my test.

The point of testing first is to focus on the task at hand. What functionality am I implementing? Perhaps more importantly, what am I not implementing? Once I’ve figured out what I’m trying to do, I get there the quickest way I know how, and finally, refactor that code to something I’m happy with. It’s not unlike writing. Create an outline, write your first draft, and then polish it until you’re happy with it.

So where did all this preoccupation with speed and decoupling come from? Nothing in the steps I’ve talked about so far says whether 4.5 minutes for your test suite is too long or if times over one second are too slow.

However, Wikipedia does have a fuller outline of the steps than what I’ve presented in theirTest-driven development article. Let’s take a look (emphasis mine):

  1. Add a test
  2. Run all tests and see if the new one fails
  3. Write some code
  4. Run all tests
  5. Refactor code

If you want to run all your tests every time you add a new one, you want them to be fast, otherwise they will just slow you down. But the fixation on what is the right amount of time is damaging the discussion. If DHH is fine with waiting 4.5 minutes for his test suite to run, who cares? I think it’s pretty awesome that he has thousands of assertions; most projects I see don’t have anything close to that.

DHH also makes a point in his post Slow database test fallacy about not running all your tests everytime you add a new one, and it is an approach I find reasonable:

I still wouldn’t want to wait 80 seconds every time I make a single change to my model, and want to test that. Of course not! Why on earth would you run your entire test harness for every single line change in a particular model? If you have so little confidence in the locality of your changes, the tests are indeed telling you that the system has overly high coupling.

Speed is important. If your tests are too slow to be useful, what’s the point of having them? What entails “fast enough” though, is something that is a matter of individual preference. It is also dependent on whether or not you agree with DHH about not running all of your tests all of the time. Faster is better, but I don’t believe in pursuing that at the expense of more important concerns, like writing the code that passes the tests.

Red, green, refactor is, to me, the core of TDD. Decoupled logic in my application is also good idea. If TDD helps me to get there, and decoupling also increases the speed of my tests, those are just bonuses on top of a process I already follow.

So why all the fighting and confusion over TDD? Well, Test Driven Development is just a name. Names are pretty useful things; they help us have discussions about rather complicated topics. If you know what Object Oriented Programming is, and I know what Object Oriented Programming is, we can have a discussion about it without having to stop to define every detail along the way*.

But names can also be harmful. If you “know” what Object Oriented Programming is, and I “know” what Object Oriented Programming is, but our understanding of those two things differs greatly, our discussion will be rather difficult and confusing to follow. We’re both assuming that the other has the same ideas in their head, which makes it hard to communicate effectively.

While reading Sandi Metz’s book Practical Objected Oriented Design in Ruby, I noticed something interesting about the way she writes. She doesn’t tell you what things are called until after she’s already shown you how to do it. You don’t have a chance to let your previous knowledge of those concepts get in the way. It’s a great way of explaining ideas that ensures everyone is on the same page.

So what does this have to do with TDD? Well, Test Driven Development is a name that means a lot of things to a lot of people. To me, it means red, green, refactor. Everything else just helps me do that better.

Maybe when we have discussions about TDD, we should be stating what our definition of TDD is. If we are all arguing about different ideas, perhaps we could find some common understanding and begin our discussion there. Our first test might fail, but we can figure out how to make it pass and refactor from there.

*Growing a language can be fun. If you haven’t already watched Growing a Language by Guy Steele, you should! It’s a great talk.