Hackathon (again)
Disclaimer : All I am about to say don’t represent the whole team that participated in Hackathon or the employee I am working for or the organization I am working with.
Thanks to Arkar for proofreading and corrections!
I participated in the second hackathon held by Code For Change Myanmar. This hackathon is also called Business Solutions Hackathon.
I strongly recommend you to read my friend (also my teammate during the Hackathon) Swan Htet Aung post.
I arrived at the venue on Friday evening and I was told about the “idea” that we were about do by my teammates. It’s basically “uber for food delivery”.
First of all, our idea doesn’t fit any specific Hackathon problem. It is more like shooting half of the problems in the Hackathon with a single bullet. So, it was pretty clear that we weren’t going to win. On the other hand, I also thought that this idea was too broad and we couldn’t make it within 48 hours. (I have somewhat atelophobia)
However, the rest of us were quite motivated and ready to take a shot.
The idea that we were going to work on was still like taking a moon shot to me. But we dove into the problem.
[Warning, this is going to be technical.]
Personally, I wanted to learn something new and wanted people around me to learn something new as well. I have little knowledge about Android and Ruby. I encouraged my friends to kick start our android app with bindView
pattern. If you’ve been doing some work with Android, you’ll eventually be familiar with ViewHolder
pattern, which is basically, caching the child views of list row for the sake of performance. Before hackathon, I took some time and tried to learn. After hitting the wall with my head for days, I finally managed to implement that pattern in new Yote Shin app.
We also used most of the libraries from Square. This is quite an opposite approach to traditional Android development. No AsyncTask
. No network call on UI Thread.
We used
- ButterKnife for View Injections
- Otto for managing events
- Picasso for image downloading.
- Retrofit as a REST client
- OkHttp as a http client for retrofit.
- AndroidStaggeredGrid as a Grid View.
- ORMLite as a Persistence library.
The end result was quite stunning. (at least for me)
With the help of above libraries, we were able to quickly execute our idea. We also bootstrapped our API in rails with the help of amazing gems. If you’re feeling more adventurous, feel free to look at our build.gradle files and Gemfile.
We have one amazing guy working on iOS. He’s an iOS aficionado from Nex. He completed the iOS part that all by himself while three of us are sleeplessly working on Android. Just. Amazing.
Please don’t feel depressed or too much impressed by us since you can’t create something like that. This might be a common misconception among people I’ve met. I can say pretty clearly that we didn’t reach this stage/level in just a few days. I’ve been working as a programmer (mainly, Android) for a year. The rest of us have also been working as developers at amazing companies. Frankly speaking, I was even impressed by the work done by people around me back there at the Hackathon. I know they are outstanding people and I meet them almost everyday but I didn’t expect such astounding performance. So, please don’t feel anything. Trust me, you will be better than us one day. Challenge yourself. Try hard. Play around but focus on something you really want to do. It really takes some time, hard work and some amount of intuitive.
Other than technical stuffs, we use Slack for basic communication. We (mostly, I) even posted cat pictures to keep ourselves awake.
- [Trello](trello.com) to manage the Tasks and app flows.
- [GitHub](github.com) to host our codes.
Here, let me share this quote by Ken Thompson.
I am a programmer. On my 1040 form, that is what I put down as my occupation. As a programmer, I write programs. I would like to present to you the cutest program I ever wrote.
Since the day I’ve seen that quote on Hacker News, I am quite inspired by that quote. 6 of us in our teams, except Ye Myat Min who is an exception for his knowledge and capability across design and code, are basically programmers. We write codes with our heart.
We broke through the limits we used to have, at work. Do we have the same performance at work too ? I don’t think so :P
Jokes aside, I noticed some of the projects from other teams. They all look stunning for me. But 3-minute presentation is too short to present the amazing work done in just 48 hours. Essentially, it’s heartening to see everyone pouring everything they know and taking the challenge.
At pitch/demo event of #BizHackMM. Really superb apps. Pitches dont do justice to the love & efforts put in the apps. pic.twitter.com/M9Y88F03yk
— Ravi Chhabra (@ravichhabra) September 7, 2014
I got to say, Hackathons in other countries are different from this one though. For example, take a look at YC Hacks. But of course, this is not to say that this Hackathon isn’t good. Each Hackathon has its own theme and rules. Also prizes don’t matter. For any Hackathon, the main point is to have fun, learn something new and make new friends.
The question I always asked myself is “Can we do better ?”. If we can do better, why aren’t we doing it ? Good enough is not acceptable for me. I know there’s no such thing as perfect and it doesn’t sound realistic. Still, I feel that as long as there are some rooms to improve, we should do better. It might be a minor bug or a pixel to align two views or a grammar error. For “Poh”, it’s exceeded than our capabilities but we still should do better. :)
Are we open sourcing the projects ? I don’t have the answer. Even if we do, I suggest that we might use the GPL. So, people lose their cool and hate us more than ever. I am just kidding. I have no idea about it. :)