This week I’m going to do something a bit different. This blog has two target audiences: people who are not from the tech world who want to get insight into what it’s like to try to break in to this strange and wonderful universe, and people who might hire me in the future. The number of people following this blog who are from the first category is increasing, so I figured that instead of talking about the different things I did this week, I’m going to talk about one specific thing I did, which also happens to be one of the strange phenomena that takes place in the tech universe, and pretty much nowhere else. I’m going to talk about hackathons.
The term “hacking” means something very different in the tech world than it does in the human world. Yes, I just defined tech folks as non-human. But am not the first person to do this, and after you’ve seen these people work 168 hour weeks and live off nothing but caffeinated soylent, you might agree with me. Non tech people think of hackers as people who get blamed when their credit card numbers are stolen or websites get defaced. But the reality is, the majority of people who do those actions are not really hackers – they are people who take advantage of code that real hackers put out and are some of the most hated people in the tech community, just after patent trolls. Here’s a handy diagram:
So hopefully that clears things up. Many of the good-guy hackers make their money by hacking into company websites, and then telling the company about the vulnerability in exchange for a ‘bounty’ that is usually around several thousand. Others make their money by working on cybersecurity for companies, building up safe and secure websites. They could steal your credit card number if they wanted to, but that would be mean and the repercussions would be serious if they were caught, so they don’t. I’ve talked to some of these people, and it’s quite scary how much they could do if they wanted to. They are generally called “white hat hackers” and are paid quite a bit. The annoying hackers are typically called “scriptkiddies” or ****hat hackers. The very few people who are both skilled and evil are called “black hat hackers” and they are the people who write the viruses and such that people use to cause havoc. Now you may be wondering why there is so much hacking in the world if there are very few people to make the scripts. The answer to that is twofold. First, it is the nature of the internet that knowledge is spread extremely fast. One brilliant person writes a script and posts it online, every other human being in the world with a computer and internet (roughly four billion people) have access to it. And sometimes, scriptkiddies will utilize software typically used for cyber defense, such as Metasploit or Kali Linux. We could stop designing them but that would make it even more impossible to keep systems secure. Secondly, the internet is a terribly constructed mess and it’s a wonder that it’s holding up so well. You can read more about that on one of my favorite medium articles of all time.
I’m not a hacker yet, but I would like to learn how to perform penetration tests. So I decided to learn how to make an http server in C++! In order to do this I’ve been roughly following these instructions, with a bit of my own stuff mixed in. I’ve got it working and the two scripts can now talk to each other, and the ‘sever side’ script can talk to the browser.
Since the term ‘hacker’ has a very positive meaning in the tech world, it has also developed a different meaning over time, that is completely separate from any form of cybersecurity. A hacker is somebody who can throw together messy code in a short period of time and make it work. There is more to code than just function: the code has to work quickly, and be readable by other people so that they can edit it later on. Code that successfully does this is called ‘maintainable code’, and some code is actually quite beautiful. But occasionally, another skill is warranted. Sometimes you have to get out code quickly, and when that happens, it’s usually not very good but it does the job. This behavior is called ‘hacking’ and is glorified in Silicon Valley, as it should be. It’s an incredibly valuable skill. This has given rise to one of the most fun, bizarre, and glorious activities on the planet: the hackathon.
If you’re going to talk about hackathons, you first need to bring up Major League Hacking. The one I attended Wednesday/Thursday at the lab was not sponsored by them, but it’s the only one I’ve been to that hasn’t been. I have no idea who founded MLH, but someday I need to meet them and personally thank them. Take all the stereotypes about Silicon Valley. The inhuman amount of work expected of everybody, the brilliance of everybody everywhere, the companies throwing vast amounts of money money and free stuff at you to get you to work for them, youthful idealism wrestling with unrestrained capitalism, the skewed race/gender ratios that I hope to god we fix sometime soon, and then distill that five thousand times. Then add caffeine. That’s an MLH hackathon.
Basically, hackathons are free events put on by companies or universities for programmers and designers to come and code for a weekend. At an MLH event you can usually follow a few ‘tracks’ such as game design, social good, VR, AR, etc and here are sometimes prizes given out at the end for those who did the best in each category! These prizes can range from stickers, to 1,500$ drones, to job offers depending on the event’s funding. The lab’s hackathon didn’t have tracks, which makes sense because there are enough professionals coming that most people have ideas what they want to work on. My team, which consisted of me and two other interns, worked on machine learning. Companies usually attend to give out free swag and API keys to people there, with the intention of getting developers to buy their stuff, and possibly apply to them. One time I got to try on a VR headset, and accidentally shot a nerf bullet at somebody wearing one! I almost got kicked out, but managed to convince them it was an accident (truthfully I had no idea the thing was loaded). For whatever weird reasons Macy’s keeps showing up saying that they really want to hire developers, and at a high level function like a tech company. Also, the swag is awesome. I’ve gotten some credits on Google Cloud, access to more APIs than I can count, a guide to GitHub in the form of a comic book, a free URL, 5 tshirts, and much more. At hackdavis they gave out mouthwash, which I feel was more of a favor to the judges.
Aside from the company tables, MLH has a couple of tables that it uses to loan out hardware. Some of the stuff arduinos, breadboards, cameras, and much more! One time I built a vital signs monitor out of that hardware that could measure heartbeat, and I though for sure I would win! But our team didn’t that time. Full disclosure: I have never won a hackathon.
They generally provide you with free food and snacks throughout the weekend. At nicer events the food is better, but it can range from mediocre pizza to freakin delicious Mexican food. LLNL gave us some pretty good Chinese food. And I honestly have to say, any job that results in you hanging out with a bunch of friends in the eventing eating Chinese food and playing with a Coral TPU is a pretty great job. The food is generally highly caffeinated. Forget energy drinks — at hackathons there’s caffeinated chocolate, caffeinated liquid food replacements (this is a real thing), caffeinated granola bars, even coffee shots. One time at Sachacks I took five coffee shots, and my hands wouldn’t stop shaking all night. It was AWESOME!
There are almost always events and workshops going on. Sometimes they’re completely unrelated to the topics they give you, but I like to go to them anyways, and I always learn something. I’ve gone to ones about cryptocurrency, venture capital, Google API, and how to program a self driving car. Sometimes they have a movie or the official MLH midnight cup stacking contest! At the lab they didn’t actually have any workshops, which surprised me a bit.
Then at the end, the teams demo for judges, who range from college students to professional senior developers. At the lab we didn’t do this, but we all presented which was fun. Our team downloaded a pre-trained artificial intelligence program onto a Raspberry Pi, then hooked it up to a Coral TPU and got it to work without internet or keyboard or anything! You showed the camera an object, and it said what it thought it was. It was pretty good! It had some of the standard problems endemic to facial recognition AI though, and thought that I was a bassoon. But hey, we didn’t design the thing. We tried to get it to work without a monitor and just print the results to a LCD screen, but unfortunately we couldn’t get it hooked up to the breadboard. I still had a ton of fun working with AI!
What I love most about hackathons is the fact that programmers come to do what they are paid to
do, nonstop for 24 hours fueled by caffeine and junk food, for fun. And we enjoy it, because
coding is awesome. There was actually a mild legal issue of whether the interns were allowed to
stay longer than 8 hours. We were doing the hackathon instead of work, and getting paid for it
so technically it counted as work, but we were having a ton of fun and didn’t want to leave. But
it all got worked out and we were allowed to stay. Another thing I love is that because of the
time crunch, you get a crazy adrenaline rush. The code I wrote was some of the most garbage code
I’ve ever written, but it works and that’s all that matters!
You can learn more about hacking here and find hackathons to attend here.
Please share with your friends, like, and subscribe!
May you be ever victorious in your future endeavors!