Creating awareness and connections between people is a big part of community development. I normally blog about other people to help to do that – their startups, initiatives, interviews, events, etc. Honest sharing and dialog is another fundamental element to developing a community. I don’t normally blog about myself and what I’m doing for a bunch of reasons, but mostly because I’m a private person in general, it’s a bit scary to open up, and this website is really supposed to be a community platform. But honestly sharing personal stories, especially fears and challenges you face, like “what if I fail?” or some of the DemoCamp keynotes, can provide real value to others who may be going though something similar. And it’s about that time of year when I’ve got my feet up and a glass of egg nog in my hand. So here goes some overly long end of the year introspection that’s cathartic to me if nothing else…
I love making software! It’s one of my favourite things to do. You often start from nothing and then gradually build this living, breathing, interactive thing. It feels awesome. I got into it at a very young age by writing programs in QBASIC, a free IDE that shipped with DOS. For my Grade 8 BASEF science project I wrote a program that would generate a website (i.e. HTML files) based on input from the user. Sort of like how Geocities or Angelfire would generate websites for users. Back then the Internet, and computers in general really, were more mysterious to the general public, and the idea of creating a personal website by just typing in information instead of understanding code was a solution to a real problem. I always knew “computers” were my thing but it felt particularly great to solve a problem that was meaningful to people. The problem solving also involved “making a connection” on my part – nobody told me to do this or that I even could do this, it was just something I came up with on my own and built. I also used two tools, QBASIC and HTML, that were in “my toolbox” but not everybody else’s – it wasn’t that challenging of a problem, but not everybody out there knew how to do this. It was a really big thing for me in terms of setting a direction. The feedback I got from teachers, parents and others really encouraged me to keep going and think bigger.
I’ve spent the last 10 years at McMaster studying computer science through a bachelors, masters and now PhD. During that time I tried all kinds of things like teaching assistantships, a sessional lectureship, research assistantships and summer programming jobs. I also took breaks to do a 16-month internship at NCR in Waterloo during undergrad, and a few 4 month research terms at IBM’s Centre for Advanced studies in Markham during my masters. I had some great options in terms of working in the private sector along the way but for a few good reasons I chose to keep going with grad school at McMaster. I fell in love with research more than anything else that I tried because it’s what was closest to that great feeling of building something new. I also fell in love with teaching and education as a field more generally. As most good teachers will tell you, it’s a very fulfilling thing to teach others.
Graduate school can be a wonderful time in your life. You have time to read papers and attend conferences that put you at the frontier of some area of human knowledge, and then you get to expand that area in small ways. You often get to work at the level of ideas and theory. Instead of applying existing solutions to new problems, you’re often exploring what problems and questions exist, and then solving them using new techniques built up from existing techniques. You also take courses in areas that are far less broad than undergrad, sometimes specific to a professor’s area of research, with only a handful of bright and motivated students in each course. Along the way you get to teach others how to solve problems as well. Teaching assistantships are fun, but teaching a course was an immensely rewarding experience. Overall graduate school has been an amazing experience that I wouldn’t trade for anything.
As much as I’m passionate about building software, I’m dead set on doing it in Hamilton. I had to leave temporarily for internships and research terms because that’s the only place they were available and I knew I would be coming back. But I’m not going to be leaving Hamilton ever.
At the same time I’ve had to watch all the friends I’ve made at McMaster leave town every single year. Many of them actually enjoy living in Hamilton despite what some people might say or think. For instance students that come from small towns across Ontario in particular find that Hamilton has a lively downtown art, music and restaurant scene compared to the more suburban feel of Waterloo, and they actually enjoy that it’s not as big or as pricey as Toronto. It’s a great place. Sometimes it’s the outsiders that can recognize that even better than people who live here. But the problem is when it comes time to find a job, at best the opportunities are available in Toronto or Waterloo, but often times as far away as New York or California. And truthfully there’s nothing wrong at all with Waterloo or Toronto, they’re great places in their own right. Waterloo seems like a really great place to raise a family, and there is something fun to do every night in Toronto. The fact that Waterloo and Toronto have done an amazing job building startup cultures and tech industries is only beneficial to us in Hamilton; it’s not a competition, we’re actually part of a broader Ontario community. But the jobs problem in Hamilton, and in particular the software jobs problem really, really frustrates me.
As a result I’ve taken up community building in Hamilton as a hobby. I started organizing events at McMaster years ago, and 2 years ago I began organizing and co-organizing events for the broader community as part of Software Hamilton. DemoCamp, Startup Drinks, Startup Weekend. These events are meant to act as a catalyst to help grow a stronger software industry. They facilitate connections between people which can create synergies or informal mentor relationships, they are educational, they are motivational, and they play a PR / showcase role. As part of Software Hamilton I’ve maintained this blog that’s updated Monday-Friday, with an events calendar and newsletter, job board, and a community directory of local firms and blogs. It’s about building a team in Hamilton.
And mind you Software Hamilton is far, far from the only initiative working to do this. No initiative, individual or organization can build a community or make change happen – it’s a collective effort. Innovation Factory, AppsForHealth, Cobalt Connects, and CIPS-GH in particular are all very active in building a tech and startup community in Hamilton. TechTalk4HamOnt is showcasing Hamilton tech and startups online. Initiatives like BASEF and McMaster’s outreach program are reaching out to the next generation. Others like Hamilton Hive, Hamilton Economic Development and the Hamilton Chamber of Commerce are working on the broader jobs and prosperity problem in Hamilton. There’s many other community-building contributions of course but I’m just listing these to make a point.
I’ve loved every single minute of Software Hamilton. Some people build model rockets, ski or skate as hobbies. This is mine, and it’s honestly the best hobby I’ve ever had. I’m also very happy with the role it’s been playing in terms of a catalyst. It was great seeing well over 200 people at DemoCampHamilton9, and I enjoyed reading what Gavin Schulz got out of the events. Over the last 2 years I’ve seen connections and friendships form and it’s been very rewarding. It also helps to ease my frustration about the software jobs problem. It’s really the only thing I’ve found that makes that frustration go away. It’s been worth doing it for that alone.
About a month ago I did something that reminded me of an important point. As part of my grad studies I’ve spent years now taking courses, reading papers, attending conferences, doing comprehensive exams, writing a thesis proposal – studying, training, and analyzing. As part of my hobby I’ve spent years organizing events, publicizing software startups, making connections between people – cheerleading, reviewing the game film together and pep rallying. But a month ago I sat down and built a product and tested it with users. It brought me back to what motivated me about this industry in the first place – solving a meaningful problem with software. And it was a nice refresher about how you ultimately win a software industry.
There’s a saying that “code wins arguments”. It means a lot of things in practice. For instance it recognizes that there’s a very objective aspect to software. You can’t just politic or manage your way to great software, even though these aspects may play an equally important but supportive role. It ultimately needs to built.
A software industry is much the same way. You can’t analyze, study, train, cheerlead or pep rally a software industry. These catalyst aspects are very important mind you, somebody I really respect recently told me “not to ever downplay what I do”, and that’s not what I’m doing. I love what I do and I believe in what I do. But just as code wins arguments, it’s ultimately great products and companies that win software industries.
That’s why it felt amazing to build software again. I spent 2 weeks working non-stop in a caffeine fuelled coding session building educational software for a target demographic. The target demographic was more challenging to build solutions for than most I’ve dealt with in the past. I tried to use everything I learned from academia and industry in the process of building the apps. The overall design came mostly from a mixture of academic theory and talking to the customer. But also little things I’ve picked up along the way; the fonts and colours of the app actually came from graphic design theories I used when learning to make better posters for DemoCamp.
I did the usability test. A user picked up the tablet and launched the app. They looked at the screen and asked me, frustrated, “what do I do??”. At first, yes, ouch. But then, bliss. This was real. When you’re out on the actual field with real users using your product, you’re going to take hits. You’re going to learn more from those than anything else. And I did learn.
Thankfully most experiences with the app were more positive than negative. Much of the theory worked like a charm in practice. But I learned from the negatives, I made adjustments both to my own theory and the software. More non-stop caffeine fuelled coding sessions followed. I did more tests which brought much more positive feedback and less negative feedback, and I confirmed my adjustments to the theory. Touchdown! I know it’s only an exhibition game. But still, after spending much time recently in other roles on the sideline, even a small victory out in the field felt like a million dollars.
If we want to stem the tide in Hamilton and fix the jobs problem, we have to look at every new job created as a first down, every successful product as a touchdown, and every successful company as a game won. There’s a lot of people doing exactly that and have been for years now. FluidMedia, Factor[e], Mabel’s Labels, Trip Central, MRX, amongst others. Now there’s more like Weever Apps, REfficient, Peapod Studios, Brave New Code, ISIS, Viziya, and many others. Recognizing that these startups and products are the end goal is important. Successful products and companies means more research, more students, more marketing, legal and accounting work, more money to invest in the next generation of startups, and more interest from the next generation of potential builders to work in the software industry. The success, sustainability and long-term growth of the entire ecosystem flows from the success of products and companies. Creating enough high quality products, companies and jobs is what will bring home the championship and win Hamilton a world class software industry.
Hamilton as a whole has been winning more lately – more on that in a blog post over the next week. But the force of gravity coming from outside is still powerful enough to pull away many of our best and brightest. And it’s not just a McMaster student thing. Over the last year I’ve seen many of the top developers at firms in Hamilton pulled away to better jobs elsewhere. Mostly to Toronto. A sort of delayed brain drain. A software developer training ground? Almost like a farm team. Shudder. Collectively we still have a long way to go.
If we’re not acting in a role where we are doing the building ourselves, it’s not that the role is less important. The role is just as important. But it is different in that it should ultimately be viewed through the lens of supporting the building of great products and companies. So when we research, teach, lawyer, account, market, fund, mentor, publicize, or cheerlead it should be done with a view of supporting products and companies. I think I’m preaching to the converted. It’s kind of an obvious point I suppose. Most people seem to get this already. Brad Feld makes much the same point in his startup communities book. But building and testing a product really brought it to the fore for me personally.
Though graduate school has been amazing, there’s been challenges too. It’s easy to feel impostor syndrome when you’re surrounded by so many bright people. When you get to the dissertation stage of your PhD, or all-but-dissertation (ABD), there’s a bit of a “valley of despair” as I’ve heard it called when you try to get it done. Mental health issues are prevalent in grad students. People quit their PhD all the time. It probably doesn’t help that many graduate students don’t talk about this stuff either.
The tech and startup worlds are amazing, but present huge challenges. Building a successful product or a successful company are two of the most difficult things you can ever do. And yet so many people in our own community are doing both at the same time. Products and startups quit and/or fail all the time too.
I’m way too stubborn to stop doing something when I start it, whether it’s grad school or community activities. But doubtful questions can creep in. Is grad school really the right thing to do when my friends are buying houses and having kids? Am I doing community building, or am I part of a strange startup world bandwagon like these guys? How much does the catalyst role really matter? I’ve talked about making my own products for awhile now but I wasn’t at a point in my grad school career where building a product related to my research was possible. Or is that just an excuse? If you haven’t built a product in years, have you lost a step? Are my skills obsolete? Especially given how much time I’ve spent focused on languages like Haskell used within academia instead of more widely used tools like say PhoneGap? I’ve never been curled up in the fetal position with a thumb in my mouth mind you. But I’ve felt the pressure and I’ve been challenged by having to ask myself these doubtful questions. Doubt can slow you down and make it difficult to find traction.
I’m not doubting anymore. I love to teach, research, and community build. And I love to solve problems by building great software. I’m going to keep doing these things in Hamilton. Whatever individual successes or failures that may come, and come they will, I know what I’m doing. And if I’ve been coy as to what I’ve been building, it’s only because you’ll be able read about it in a research paper and download it on the app store next year.