With students heading back to class, it's an excellent time to reflect on the experiences of one of our most active student members, Nathan Doraty. Nathan is a third-year student in Computer Engineering at the University of Alberta. We see Nathan on a regular basis; at Hack Days, DemoCamp, meetups, and the Student Summer Program. He's one of our biggest champions, and we're thrilled to have him as part of the community.
To say the past few months have been busy for Nathan would be an understatement! With a little under a year in hackathon experience under his belt, Nathan and his friends won the prestigious Hack the North contest at the University of Waterloo and then were invited to the Facebook campus in Palo Alto to compete alongside some of the brightest students on the continent. We had the chance to sit down with Nathan and chat about why he makes time for hackathons and how the local startup community has impacted his approach to school.
Q: Why are you studying Computer Engineering?
I'm studying it because I enjoy the idea of being able to make something that other people can use. I've always enjoyed robotics and that kind of stuff from a young age. I found out about it through an elementary teacher who did something called First Lego League that was all about robotics and using Lego Mindstorms kits to build a robot that can do different challenges. Then the other part was doing a research project on different topics each year. The first year I participated the theme was Ocean Odyssey - all about how to preserve the oceans ecosystem. This was in Grade 6! So of course, the ideas aren't super flushed out, but it's still encouraging students to think from small scale to large scale. We have problems and now how do we fix them.
I enjoyed that idea of being able to go from thinking about an idea of "how can I fix a problem" to being able to fix it. Computer engineering has enabled me to do that to some scale.
Q: When did you make the jump from tinkering to building viable projects and products?
Those experiences sparked my interests. Unfortunately, I kind of let that lay dormant for a few years and then I got into programming a few years ago through a high school class. From that point on, I got hooked on the idea of "Oh wait - I can spend a few hours, read a few docs, write some code, and release it to everyone. Wow, people are actually using it. "This is cool; maybe I should learn some more." It snowballed after that.
Q: Were you nervous or excited the first time you released something for people to use?
The first time I released something for people to use, I didn't release it. I gave it to a friend, and he wrote a post and people started to use it. He did it while I was sleeping and I didn't actually know it had happened. I woke up the next morning, checked the website, and there it was.
I got started with a Minecraft mod. Wrote it, spend two days and had no idea how to write java very well. I spend those two days hitting my head against the docs trying to figure it out: read and reverse engineered someone else's project at the time. And then I got the simplest event to work. It worked, I was ecstatic! I told my friend: "here it is, play around, test it, tell me if anything breaks." I then woke up the next morning, and it was on the website and people were using it.
I actually kept working on that project for two years until now. It's one of the biggest mods that people use for their servers. It's ranked 55 in the most used Minecraft mods in the world.
Q: It sounds like you like building and have always liked the process of building. Is there a part of the building process that frustrates you or challenges you?
When things don't work, and you think they should! That's always been a frustrating element. When you want this thing to work and it just won't. That element never goes away, but it's rewarding when it works.
It wouldn't be fun if it were easy.
Q: You recently won Hack the North and were at Facebook HQ for the Prototype Finals 2016 Hackathon. Can you share the value of participating in these awesome experiences?
Hack the North was a crazy experience. I actually didn't know about Hack the North until about a year ago when a friend said: "OK there is a big hackathon, it's the largest in Canada and it looks like a lot of fun." The only hackathon experience I had before was the CompE Club HackED at Startup. So, I wanted to do it & I didn't know who to do it with. At the previous hackathon, our team got third place with the idea for Copy Everything, a cross-platform clipboard. We signed up and thought let's just see where this takes us. We've done a hackathon before, we're all reasonably experienced, done student projects, and we know how to code, so let's apply.
We applied and were ecstatic when we got accepted. Now we're going to Canada's largest hackathon & they're paying for us to go down - what do we do that will try to beat out every other student group in Canada? We have to build something new in 36 hours, no sleep. How do we somehow stand out from the pack amongst some of the best student programmers in Canada?
We looked at previous winners, and we decided that hardware was the best shot. It was interesting because most of our team consisted of software engineers - I have some more in-depth experience in hardware from being on EcoCar. Also, pulling on my summer experience working on VR Cave, we thought we have a lot of VR stuff, and VR is pretty cool. Beyond the locomotive issue is touch, you can't touch anything inside of VR. I wanted something big and crazy and to solve something like that.
We decided to do that and see how practical it is. We did some research and discovered we could work with cell phone vibration motors - the element that lets you tell the difference between a text message, calendar notification or an email. Three different vibrations. Why couldn't we apply that to the various muscle groups and try to have those same motors, which don't cost very much, make a similar impact as touch?
We thought it might work. Then we started looking at circuits and the design side of things and discovered it was possible to make it work. We researched if we could attach it to a vest and found that we probably could. We snowballed from a tiny "maybe" idea to a crazy behemoth of a project that spanned hardware, software, embedded design, game design, and tried to pull it all together in 36 hours.
We knew the project was a glass cannon - it was either going to work or spectacularly crash and burn. We knew it was possible; we just didn't know if it was possible in 36 hours. We were somehow able to put it together in 36 hours using all this hardware, a big mess of wires that would make a seasoned electrical engineer just cry. We plugged it into the power and everything turned on in the first go! The feeling went from “The might not work” to "Oh my gosh the lights turned on! This might actually work."
Q: Did someone wear the vest or was it just lying on the table?
We had the other Nathan wear the vest during all the tests and demos. It looked cool, super slick. It was cool.
Q: I liked that you hacked Hack the North. Looking at past winners, mapping out your way to the greatest chance of winning.
We figured they are paying for us to come out, we should put on a good show or at least try. We got the cheapest motorcycle armour we could find because we wanted to mount it to different contact points. We wanted to eliminate things that could hang us up, like rigging solutions. So, what's the thing that is easily adjustable and fit almost everyone? Motorcycle armour because it's cheap, has hard things for us to vibrate the motors off of like the front plates, but we can also hide wires underneath the plates to target softer muscle groups or things we wanted to more fine tune, like forearms.
Then we added the Kinect. It's one thing to stimulate feeling; it's another thing to stimulate feeling accurately. Despite the fact that we have this thing plugged into a computer, we don't actually know where the arm is. We used the Kinect to figure that out. We were able to find out where your arm was and translate that to the in-game avatar and then when something hit you on the arm, you would actually feel it hit you on the arm. If you raised your arm up to dodge a dodgeball, you would feel it bounce off your arm.
This is everything you probably shouldn't do in a hackathon.
Q: Going into Hack the North, it sounds like the whole team was cool with it failing. That the experience was going to be equally valuable if you got it to work or not work.
We knew at any point any possible component could fail. That's why we split our team into hardware and software. We had people working on the game and the software part. If that part failed, we at least had a cool VR hardware project. If the hardware failed, we at least had a software project to go with. The fact that they both worked was unheard of. We caught ourselves off guard. We had people coming up to us in the hardware lab and telling us "Oh - this is going to be best-in-show." and we were so nervous about it not working we had to tell people "it doesn't work, please don't say that." At that point, we had a lot of sketchy looking electronics on a table and hoping that they all plug in and turn on.
Q: What was it like when someone other than Nathan had to try on the vest?
It was scary. At this point, even I hadn't tried on the vest. Nathan said it was awesome, but it was terrifying putting it on to someone else: will it break when they put it on? will they notice any super big issues? Of course, having your teammate put it on and they say "yeah, this is fine" is one thing, but having it go on someone who is subjectively judging it is like "oh boy - this needs to work." I think the first person to try it on was one of the guys from Facebook. They told us "We want to try it on!" and we're in the middle of a crowded area, people are standing around looking at it, pointing at it. I remember the guy trying it on and thinking "Oh shit, this better work. If this doesn't work, we are in trouble." He tried it on and fortunately he loved it. He told us "this is insane and I've never seen anything like this before." It was fantastic. You're only supposed to have 10 minutes for judging, and they spent over 20 minutes because they all wanted to try it on.
So many things had to go right, and they all went right.
Q: What's happening with the vest now?
What we want to do is get a pretty proper circuit printed for it, rather than the sketchy breadboard we currently have going on. There might be a market for it, but we're not too sure. It's pretty specialized. All the code is open source, so if anyone wants to go through the pain and suffering of rebuilding it they can. All the projects at Hack the North need to have a public GitHub repo, and we were happy with it.
Nathan along with his teammates Nathan Liebrecht, James Hyniw and Nicholas Westbury.
Q: We had a Fall HackED a few months ago, I noticed you chose not to build. Why did you decide not to work on a project?
I wanted to take a step back and help run the hackathon. I wanted to focus on mentoring rather than just building. It was interesting looking at people's problems, hop around and try to help solve them. I noticed lots of teams would run into issues but would refuse to ask for help.
Q: After HackED, you had a chance to go down to Facebook. What was the experience there like?
I got an email one afternoon saying "Congratulations! You're invited..." At Hack the North, we won the Facebook/Oculus API prize for best VR project. We each won an Oculus Rift, and we thought "that's awesome - thank you so much!" What we didn't realize was Facebook also runs a hackathon where they take the winners from all these different hackathons and bring them to Palo Alto and have them compete in a finalist hackathon. Because we won the Facebook prize at Hack the North we got to be part of that finalist group.
They pull out all the stops. It was one of the best hackathons I've been to because they took such good care of us. They had mentors from Facebook to help you and a dedicated person, Bambi; she was so upbeat and helpful. It was an incredible experience.
We were asked to bring the vest and show it off. So we did & it was a lot of fun. The other students were from Harvard, University of Toronto, all these mecca tech institutes and then us. They were impressed with the vest and thought it was really neat. That was very rewarding that have the other teams go off and say "that's cool." Immediately, the next question was "what are you doing to top it?"
Our Facebook project went ok; it didn't go 100%. We had some unforeseen issues - we had two great working parts, but the server in between them didn't quite hook up correctly. We got a bit ambitious and couldn't get everything to work the way we wanted to. It happens.
Q: Did the stakes feel different at Facebook then they did at Hack the North?
For us, just being there was incredible. Somehow we got invited to Facebook; they want us to come down and try and impress them in a battle of the-best-of-the-best. I think we walked in and felt so out of our league.
We were really good about asking for help from the mentors, but we were in a bit of an odd situation. The Facebook teams onsite were great but focused on the making of the apps. We quickly outpaced their specialization because of the project we decided to tackle and some of the stuff we were poking around in. It was a surprise; Facebook is such a big company, and they knew most of the teams would be working on mobile applications, so they brought in mentors to help with that. It shows that we're on the right path pushing the technical bounds, but we might have out scoped ourselves. We got most of it working, minus the middleman server.
It was amazing. It was really small - only 70 students. We had access to the entire campus. It looked like every other hackathon, a ridiculous amount of stuff on tables. We were so happy to be there and just exhausted. We keep in touch with the other teams, on Facebook. They encourage us to come out to other hackathons in the States. It's kind of weird to be part of this bigger community now.
Q: How has your perception of the value of school changed through these experiences? Has it changed how you approach your schooling?
I approach school the same. It's the same amount of school work, but now it's more of a balancing act. School is great for building relations and learning general concepts. Going to hackathons and designating a specific amount of time to do something is inherently a lot more valuable in finding a job or new experiences vs. just going getting your degree. The value is getting the base and having the opportunity to build upon the base on your own. A lot of people who have success in finding work, they do side projects, personal development, and that stuff. School gives you the foundation, but you need to have the initiative on your own to do the hackathons, develop side projects, and get involved in the community. Otherwise, you're just "Student 27" with the same skills as everyone else with a degree.
Everyone gets the same sheet of paper, but it's your reputation that counts. If you're seen going to a lot of hackathons and events, you get noticed.
Q: With so much on your plate, why is participating in the startup community so valuable to you?
I like the idea of just being able to go and do something, go and make something. I've always loved making things. Business is important in startups, but the core of the community is building something new, cool, and ridiculous that no one has ever done and I love that. That's where the value comes.
You can go to lots of places, and they can teach you the business parts, but at the end of the day, you need to build something. The startup community is super supportive of that - it's all builders, it's all creators. I love that.
Q: What would you tell students just getting started?
Sleep is important, but so is going out and coding. I wouldn't be here unless people had said to me "hey, you should come out to this..." I had no idea going to my first hackathon what to expect; I knew a little java and had only tinkered before. I tried it out, and I learned that I could actually do it. Put yourself out there, see how you stack up against the community and improve off of that. You're going to find out you don't know this, that or whatever, but you need to make things.