Last weekend (Nov 11-12, 2017), we joined the Blockchain Hackthon. My team was composed of myself, Jethro, Reysel, Raymond, and Anton. We created an app called RxVault - an application that allow Doctors, Patients, and Pharmacists to manage medical prescriptions in the blockchain. We created the app using Elixir then integrated it with Hyperledger Composer, then deployed the app in the cloud using Kubernetes. We pitched the idea and demo the app for 5 minutes in front of the judges and crowd. WE WON! (yehey)
This article is not an extension of the pitch. In case you're interested in the pitch, you can check it out in this deck.
My focus here in this article are to share my strategy and share my story on the event.
I got to say, the hackathon was made-up of great teams. It was joined by teams that are champions from different hackathons. Some of them are CTO/CIO/VPs of their respective organizations. Most of them came prepared and are driven to win. Kudos to the organizers for inviting great teams and for preparing a wonderful place for the event. Thanks for the free t-shirts and food as well.
It is very humbling for us to win among such great crowds. But we won't be able to win the event without a strategy in mind. Let me share my strategy on this hackathon.
1. Stick with the criteria of judging
The criteria for judging is based on the following:
- Quality of idea (20%)
- Implementation of idea (20%)
- Potential impact (30%)
- Completeness of solution (30%)
As you can see, it simply boils down to the idea. The question now is what idea can bring that wow factor to the judges.
First, it has to be unique. The idea has to be something that hasn't been thought off. Something that is not the obvious that you can get from the Hyperledger Composer templates.
Second, it has to be something the judges are interested in. The judges are composed of Amihan and Hyperledger executives. When we conceptualized RXVault, we are leaning towards the healthcare industry due to my heavy experience on it and the chances of Amihan having an interest on the industry as well. It's simply a matter of getting the unique idea out of that industry. For Hyperledger, the idea has to have a valid use of blockchain. An idea that requires trust.
Third, layout the presentation based on the criteria. I simply want to make it easier for the judges to understand our idea and app if it's already been layout properly. You can check our deck.
2. Target a realistic scope
Once we found the right idea, we layout the goal in the Scrum Board in order to identify what we can do within one day. Yes - I know it's weird. Scrum in a hackathon (Wat?!). But that is our process in the team. We need to create issues in our Gitlab project so that we can create Merge Request and merge it in our master branch. I'm not saying you should do the same. It's just our way of doing things. In a hackathon, you should be with a team that has your own way which is effective for everyone.
Our scope was simply to create a functional web app that has the following:
- Authentication and Role based Authorization for Doctors, Patients, and Pharmacists
- Manage prescriptions that can push and pull data to/from the blockchain
- Display a basic analytics with seed data
3. Ship it
There's a saying that it's not done until you ship it. One of our weapons is Docker & Kubernetes. We were able to easily package our app in a docker image and deployed it in kubernetes cluster in a matter of minutes. We were also able to sync it with our Gitlab Pipelines which gained us our CI/CD process. This is due to our experience in Pragtechnologies.
Docker & Kubernetes is a great investment to learn. You won't regret it. But in case you need some easy DevOps techniques, you can always revert to Heroku which is great for developers.
One of the biggest struggles we had was deploying Hyperledger Composer in the cloud. We were able to do this by following the developer guide and installed it in Linode. There are just some gotchas that you need to note:
- Create a user that is not part of the sudo since Hyperledger Composer will not install if in sudo access
- Install node using NVM within the created user
- Setup Nginx to expose port 3000
- Setup Systemd to trigger the
- Setup DNS to point to the blockchain-network IP
It's been more than 4 years since I attended my last hackathon. I attended 4 in total now.
The first time when I'm just new to Ruby and I'm a 1-man team of the event (except for my wife who accompanied me there). My goal was simply to get the feeling of being part of a competition and get to know my crowd -
The second was when I'm with a team of 3 (I'm assigned on web & db, the other is a designer, and the other a mobile dev). My goal was to win. We made a web and mobile app and we got good feedback from the judges. But it wasn't enough.
The third was with a team of 3 almost similar to the previous one but my goals was simply to just share the experience to the young ones. We wanted to win but we felt at that time that our app won't be enough. So we gave-up in the middle and we didn't present our app.
It came to a point after that, Hackathon for me was tiring. I felt that I already achieved most of my goals except to win. Which is fine for me.
So after 4 years, I'm doing okay. I got new skills acquired and new people behind me. I'm still not interested in joining any Hackathon until I saw this - Blockchain Hackathon.
So what changed? What's with this hackathon? Three things.
1. Force myself to learn Blockchain
Blockchain for me is a mystery. It's like a flying car has been invented but I still don't know how to drive it. I know that it will be the future, but still not sure if it will be easy and safe. Those mixed thoughts that I can't figure out on my own. I need someone to show me how it's done.
The event was sponsored by both:
- Hyperledger - a technology blockchain framework and a company backed by Linux Foundation
- Amihan Global Strategies - a Filipino company that is one of the pioneers of blockchain.
This is why I joined. I want to learn from the experts what they have done and explain how we can easily use it in the competition.
2. Test my new skill set
I have been adicted by these 2 technologies the past years - Elixir & Kubernetes. I have used this in most of our projects in Pragtechnologies and in my consulting work. I want to test if my skill set can help me win the competition and if it will be a good blend with Hyperledger.
3. Inspire my young developers
As a mentor, I always think of the best technique I can share to my mentee. Sometimes, the term
best is a subjective argument which can only be validated through competition.
It's also a good way to get to know each other as a team. Its funny how much you'll be able to discover yourself and your teammates in a crisis stage.
Overall, the experience is very rewarding. Aside from the cash prize and bluetooth speakers, the reputation gained is priceless. I was able get to know great people in the industry like Winston Damarillo, Julian Gordon, and Tracy Kuhrt. I'm inspired by their achievements and their willingness to help the startup community like us.
I just hope someday, I can be in the same position and be able to help others as well.
Lastly, I want to congratulate all of the participants who have joined the event. We were all brave to face the challenges together and for that - we should all be proud.