Last year, when I was a newbie coder (I still am, but for now, let’s just say relatively), I tried to get into a hackathon (conducted by “savethehacker“), and I screwed it up. Looking back at those days, I feel like I was quite stupid back then. I had no idea about app-development. Despite of that, I tried climbing something big, without even knowing that I’m gonna fall sometime soon. And, I did. I wasn’t selected. I got a reply after the deadline, that my app couldn’t compete with those 30 teams that got selected.
Hackathon is idea-centric!
Honestly, getting an idea and describing it to the organizers is the most difficult part. Because, that’s what’s gonna get you inside any hackathon! (and yeah, it applies to all hackathons). The organizers should feel confident about you, that your app is worthy to get part in their hackathon. This, I figured out later that year. So, idea matters! Once you get it, you’re only a few days away from winning. And, if you don’t win, it’s certain that you screwed up somewhere. Now, getting back to my story…
One fine day, during my semester exams (last month), I got an invitation mail from the same fellas, saying that they’ve come back with a much larger hackathon this time, where up to a 100 teams have the chance to get selected. I gotta do something, right? The problem is that I’m quite slow. I don’t get an idea whenever I needed one. I just think of the situation once, and it pops sometime later (sometimes, even after a few days, but it definitely pops!). So, I “not getting an idea” was an obsession for a while.
To my luck, I got to see a fella’s work at “Codepen” later that week, and I got amazed by it! He had created a wonderful animation using Coffee-script (you should have a look at it, even if you’re a non-coder). Basically, whatever that’s been written on the page, it’s in the form of one hell of a string! His actual code injects the thing into the [DOM] one line at a time, so that it gets rendered as and whenever the code’s been injected. And, voila! You get a nice little movie of code!
That was the inspiration to my idea. I (initially) thought of a web emulator. As the name says, it just emulates the HTML/CSS/JS code typed by the user. I’ve seen a lot of IDEs (both web and offline), but I’ve never seen something that renders the code as you type. Every IDE I’ve seen demands the user to click a crappy “Run” button. So, I could introduce a web app which renders the code LIVE! (that does the same DOM injection thing).
I was so sure about it, because firstly, it’s simple – it could be done within a day – well, you don’t actually need a day, just a few hours, but then you carry out most of the tests. For instance, what if there was a syntax error, or what if the user pushes the limits of JS (say, a loop?), which could crash his browser.
An idea, being the most resilient parasite…
Anyways, when I went ahead to submit my idea, I got the news that a team could have up to 3 coders. It’s always better to have some company. After all, hackathons are one of those events where you code collaboratively. So, I phoned a hell lot of my colleagues, talked about it around, just to find someone. Well, some of them tried to help me, but most of them didn’t respond and yeah, they won’t! – because, firstly, I’m an aeronautical undergrad (who’d expect a coder there?) and second, we are racists!
I couldn’t constrain myself till I get a response. So, I hastily went ahead and wrote my lengthy idea in their description box (about two weeks before the actual deadline). I was ready to be a loner in that event. And, I was confident because I felt like I had explained my idea quite clearly to them.
A few days later, two guys showed up in Twitter. They were looking for a companion. So, I got in. Soon, one went on vacation, leaving the two of us (me & Joe Lewis). We had a chat on the night just before the deadline. When I shared my idea to him, he pointed me to “liveweave.com“. I was devastated when I saw that website. It had “most” of my beautiful idea in its implementation. I thought I was done. But, Joe was awesome. He roamed around the web, sniffed for new ideas, ideas which could be implemented in a better way, and he showed me a lot of them every now & then. Then, I told him to submit all those ideas using different emails, so that we might have a better chance.
Guess what? We got replies!
Once the deadline passed, we both got mails from the team, when we found that both mine & his idea got selected (believe me, we had submitted at least five ideas). I decided to abandon mine, because Joe already has a lot of experience with web apps, and so I would learn a lot would I go with him. The organizers also suggested me that his app would be much more interesting than mine. Joe then briefed me about the idea, that it requires Django (for server-side stuff), Angular JS along with Bootstrap (for client-side aesthetics).
I feared whether I might not be able to cope up with him. So, I decided to get into Django over that week. Whenever I get into another language or framework, I don’t easily lose my hope, because Stackoverflow is always there for me. Django was pretty hard at the start, because I couldn’t remember most of the magnanimous options it provides, but I soon realized that some were enough for me. Soon, I got the idea behind those frameworks. They could reduce most of our work, because we don’t necessarily have to write everything from the scratch.
Hackathon day – free food, goodies, endless coding, …
On the eve of the hackathon day, I got a mail from the team, reminding that they’ll be taking care of most of our needs during the event. Yep, that’s the cool part of hackathon. The organizers provide you with internet, air-conditioning (obviously), food, snacks, beds, leisure stuff (we had a small golf).
Snacks, internet & code – what else would a coder need? Prove me wrong!
When I got there, I felt really happy and nervous! Firstly, we got the goodies…
And second, I got to see about 300 coders there, just waiting for the event to begin (for the 24-hours non-stop coding!), which got me really excited. I met Joe for the first time. We met, exchanged our ideas for a while, and once the event began (at 10 AM), we began to race! We kept on coding.
At first, I had a hard time to cope up, because I didn’t know what to do. But, as time went on, I took care of the things left out by Joe. Later, we allocated stuff for ourselves, like I’d take care of the authentication-related stuff, site’s appearance, testing, etc., and he’d look after the databases, Angular JS stuff, and also suggest some new ideas that could be implemented into our app.
We were busy till night, pulling, pushing, merging (and conflicts). By midnight, we were finished with most of our app. Then, I did some cleanup, and later, we added some “beautification”, which gave our web app quite a look. We finally named it “Carrot” (honestly, it doesn’t have any relation to the app), and then we gave some nice icons, coloring, etc., when Joe came up with a plan. He recorded a footage by working with the app, so that we don’t have to go through everything whenever we show it to someone. We were able to finish our app a few hours before the code-freeze & review (at 11 AM next day).
I had a great time with Joe. He was a cool coder. I learned a lot of things when I was with him. We had some nice chats, we roamed around during our breaks (looking at others build), we had coke & chips all the time, which kept us active throughout the event. He introduced me into the Sublime text editor, which really increased my productivity.
Anyways, there are some key points for your app to have a chance to get selected in a hackathon. When I went to Manish, he pointed me to his friend’s post about their hackathon experience. They had attended a lot of hackathons in the past, and I got a few key points from that post.
- The app should be simple and doable
- It should (try to) solve some existing problem efficiently (and hence, be useful)
- It should have a nice UI, enough to please the viewers
Our “Carrot” app is somewhat a simple one. Say, you’re an organization who has a lot of web-apps, which are used by a lot of users. What if you wanna inform the users about your recent changes made to a webapp, or you wanna inform something to them (like a notification). The gist of our app is basically, “Notifications as a service”. You register your app in “Carrot”, and submit a lot of “whatever-you-wanna-write” into the database. “Carrot” then displays your app-specific script code along the side. You then take that code and append it to your site’s HTML.
Whenever you supply something (which is unique to the user) to that , it posts into our database for the first time. Later on, whenever the user signs in, the pings our server, gets the notifications that need to be delivered to the user, which then displays as unread notifications at the bottom. Once the user reads it, it’s marked as read in our server. And, that’s it – “Notifications as a service”…
What’s our flaw?
Bigger organizations are probably having a team for this problem of notifying their users (as a matter of fact, organizations always care about their users very well). So, they don’t need to rely on our app. This disadvantage really disturbed the second key point. But, we were quite sure that no such app exists for this kind of thing. That gave us some hope.
Once the coding time was over, they interviewed each & every team. My spoken English is ridiculous. So, I let Joe do the talking. He did his thing, and I helped him with the demos (which wasn’t a problem, as we had the pre-recorded video of our demo). We were able to convince the interviewers. When we got out, we noticed a lot of cool apps, and we got shocked when they shared their ideas with us. Some used AI, some used a hardware, some were inexplicable!!! So, we were quite certain that we’re screwed up.
The results for the finalists were announced and they read our name! We were among the first ten of the 60 participants for web apps (the other 60 were mobile). We later figured out how we stood out in that crowd of apps. Most of them were poor in demonstrating their apps – they either had bugs, or they got into some unexpected error during the demo (it appeared as if they hadn’t tried running it the whole time).
Then, there were those which had a ridiculous UI. Appearance also matters! We had spent enough time to make sure that our app was good looking & bug-free. And, the most important thing – we were able to finish our code within a day. Most of the apps were half-assed. Because, during their demo, the fellas said, “We thought of implementing this and that, but we didn’t have time”.
Even if you’ve got a brilliant idea for an app, and you’ve convinced the organizers that you’ll be able to build the app within a day, if you don’t, then you’re probably gonna lose…
Anyways, so we were among the top ten finalists. We knew that we wouldn’t have won. Because, we saw the demos, and in that situation, we were convinced that we won’t stand a chance provided the attraction made by the other apps that competed us. So,
let’s just say that we got out.
I’ve got my own opinions regarding the finalist apps and the judgements made, but I’m not gonna share it here, because if I told you, it might disappoint you. Some things are better left unsaid..