I volunteered for UniHack again this year, although not as a volunteer but as a mentor. That meant I was supposed to go around to the teams and chat to them about their ideas, how to make it better, and potentially help troubleshoot some issues (although not actually write any code for them). I was actually pretty hestitant about being a mentor, because I've never actually participated in a hackathon before, and I don't consider myself a strong programmer, so I wasn't sure how much help I'd be - especially when web and mobile applications are pretty popular in hackathons due to how simple it is to whip one up in a short amount of time.
A bit of background. What is a hackathon? It's where a bunch of people are (usually) in a team, and (usually) locked in a venue for a short period of time (24-72 hours), where they need to come up with an idea, implement it, and present it to some judges. Given the short time period for the event, it's not expected that the idea is 100% polished, and part of the judging process is asking what they'd add to their idea if given more time, but I think part of the point, similar to NaNoWriMo, is just to build something. A lot of people sit around and have "great ideas", but then get bogged down with the implementation details, and never actually get around to building anything. It's also a chance to see how viable an idea is. Someone explained to me that there are generally 3 types at a hackathon. The "hacker", which is the person who does the coding and all the technical things. The "designer" who makes it look usable. The "salesperson" who may be the person who came up with the idea, but is also the person who is great at selling the idea to judges. Since hackathons generally have small teams, most of the team members will usually take on more than one role, but it is a good chance for someone who has a great idea, but no technical knowledge, to see the viability of their idea. After all, it's not until you try to build the house of your dreams that you realise how impractical it might be.
UniHack is a 24 hour event, and is held for university students. It started Saturday afternoon, with the actual coding cut off Sunday afternoon, and judging and presentations in the afternoon to evening. I haven't actually attended any other hackathons, but at this one, they also had some talks from their industry sponsors on things like gender diversity in IT, how to get a job, hackathon tips and tricks, user interface design. So I definitely got a lot out of it!
I got to see a lot of the ideas from the participants this year, and some of them were very innovative. I won't write any of them here, because I'm not sure how intellectual property works with hackathons, but some of them seemed impossible to finish in 24 hours, but by the end of the coding part of the event, every team had a workable demo to show. Some of them even looked as polished as existing applications out there, which I think is very impressive.
Admittedly, that's part of what I find so intimidating. I don't think I could write an entire application overnight. But then I have to ask myself, have I ever tried? A lot of the stuff I write at work has to be maintainable. It has to have a lot of testing around it to show that it's bug-free and viable to be deployed onto live systems where it needs to be reliable. I need to write code that other people are going to be able to understand, in case they need to take over some day. With a hackathon, none of those things are requirements. Even in your demo, nobody is going to test that your system can handle weird inputs, or whether it can handle one of your servers suddenly going down. You get to show it off in its best state, and any little bugs will just be explained by the fact that you had so little time to develop it. The idea is to show your idea, and that's all you really need to do (though you do have to submit your code, so it's not like you could just do a Duke Nukem Forever and produce some flashy smoke and mirrors for something that's not actually possible).
I really enjoyed my time as a mentor. Surprisingly, I even managed to help one of the team solve an issue they were having, and at last check, they ended up using my idea in their final product. Not a lot of the teams were after technical help. I spent most of my time trying to help them think through some of the issues their app might have, or to narrow down their target audience. Many teams already had a pretty good idea of what they wanted to achieve, and had already thought through the issues, in which case I was mainly just someone for them to practice their pitch to. Lastly, I like to think that, at 9am, I was that annoying cheerful person trying to perk up their mood after they had gotten little to no sleep because they were trying to debug an issue.
It was an amazing event, they had improved a lot on the issues they had last year. Some of the other industry mentors were really fascinating. I met someone from PWC who said that she goes to a lot of Capture the Flag events, which is similar to a hackathon, but is more security based. So there are a bunch of machines set up, with pre-configured vulnerabilities, and you get points for breaking into them. I think that it's something I'd like to try doing in the future, so I got her contact details, and I'm going to follow her blog, and ask her for advice in getting started. Perhaps that will be my goal for next year. I've also decided that I'm going to try and go through Troy Hunt's Ethical Hacking series on Pluralsight, in the meantime, because I feel like forensics is a bit of a bust right now, and I don't really know where I want to go with that.
Oh, I forgot that I havevn't written about that yet. Julian introduced me to someone who works in computer forensics with the police force. He basically told me that a lot of it involves finding child pornography, and that not everyone is able to handle that. I think that I might be able to, although I've never actually seen any, so I can't be sure. I spoke to MrFodder about it, and he's worried that it might ruin me. I've seen enough episodes of The Wire to see that being in the police force can ruin relationships. And although I wouldn't be a sworn officer, MrFodder said he thinks I'm one of the most empathetic people he has ever met, and that seeing that kind of thing would probably crush me as a person.
It is a little tough, to hear that the thing that you've dream of doing for a while now is not a possibility, and I've really been tossing it over in my mind. I know that there are other avenues where you can do forensic computing, and all the big four consulting firms have a computer forensics arm for auditing purposes, but I've always liked the idea of catching criminals.
Oh, wow, this has really devolved from a discussion on UniHack.
Well, anyway, I really enjoyed my time there. Even though it meant pretty much giving up a weekend, it's something that I think is great for university students, and the IT industry itself. It's a great opportunity for students to get some practical experience, and I think that building something you thought of yourself, in comparison to building something because your lecturer set it as a project is a completely different experience. With university projects, you are coding to a very strict specification. You know what your end goal looks like, you know that you've been given the resources to get there, and if you get stuck along the way, you know that you can always ask your lecturer, tutor or lab demonstrator for help. When you're coding something for yourself, sometimes you don't even know what the problem is, or the shape of the solution changes so much, that the thing you started building no longer resembles the final product at the end (scope creep: you end up thinking, "Hey, wouldn't it be great if....?" and suddenly your program has eight tentacles and can spit acid goo).
The access to industry mentors was also one of the huge benefits of the event (even for me). Some of the mentors who came along were just so passionate about what they do. I won't mention which company, as they're a competing bank (which bank?), but the two mentors that came to the event from that company were just so enthusiastic, it was amazing. I'm actually quite jealous, as it sounds like the culture they have there is amazing, but even at the event, which is outside of work, it was so contagious how happy they were to be at something like this, where they were just discussing technical ideas with other developers and gushing happily about developments in the industry. There were a few recruiters there, and it was nice to listen to the tips they gave to other students about being employable. I wonder if any of them will get job offers at the end of the event.
Overall, if you are reading this, and you are an IT student, I would highly recommend attending an event like this. For me, there's a bit of an, "I'm too old for this" kinda feeling, with the staying up all night thing. I couldn't even do that for The International. But maybe it's something I'll participate in in the future. Or maybe a CTF event. Who knows? I feel so hyped up right now, all the energy in the room is so contagious!