Personal Roadtrip Hackathon
A hackathon is generally an event a small group collaborates together to build a product or prototype in a very short period. Some of the more popular sponsored examples (such as the ones during the TechCrunch Disrupt series) usually last for 24 hours.
For a while, I have been intrigued by the concept and have wanted to see what I can accomplish. Unfortunately I have not had the opportunity to enter one with my always busy schedule and family commitments.
This weekend I had a planned trip with a friend to Houston for the NBA All Star weekend. It was a unique opportunity since I would have some time to myself as I would not be traveling with my family or colleagues. Since the flight from JFK Airport in NY to Houston is over 4 hours, I could either rest or be productive.
The Plan
I needed to pick a project that I was interested in and spend whatever free time I would have over the weekend to work on it. I decided that my project would be to build a platform for determining market values of products in a new vertical. I knew I could leverage some the work I had invested in the valuation platform for SportsCardDatabase.com.
The Work
When the pilot announced we could start using electronics on the flight, it was time for the fun to begin. The following are the high level items I worked on:
- Defined the data model and KPI's for the new product types
- Set up product database tables to persist this information
- Populated product tables with sample information
- Wrote code module to use the product information and use it to build data gathering rules.
- Wrote code module to interpret the gathering rules and gather the data.
- Set up database tables to store the gathered data.
- Wrote code module to populate the gathered data into the tables.
- Wrote code module to update gathered data as required by business rules.
Since I was able to leverage some pre-existing code, I was able to get all of these code modules with sufficient unit tests by the end of the flight. Since I did not have internet access aboard the flight, I was unable to fully integration test functionality for calling partner APIs.
I spent about 1 hour or so the next day testing and debugging the code. I was able to get the system recording the transaction data required. I spent another 20-30 minutes enhancing a variety of log messages.
The following day I spent another hour adding 2 new KPIs to each of the transaction records, meaning the gathering rules and supporting code modules needed to be upgraded.
I was able to run an end to end test of the system (took another 20 minutes), and it met all of the requirements before my return flight home. I have invested roughly 7 hours and I have the most difficult part of my valuation platform for this new vertical. I wasn’t overly confident I would be able to finish this functionality before the end of the trip (and I now have my return flight for other things).
Next Steps
When I arrive home, I will deploy the system on a proper server and let it run for the next 3-6 months to gather data. Once there is enough data, I can analyze it and calculate market values for the products.
I will continue to add new items for this vertical to the product tables in the database.
Once I have a strong set of regularly updated market values, I can provide a user interface and allow users access to it.
Conclusions
By defining a plan for a focused set of functionality, along with the opportunity for uninterrupted work, I was able to produce more and higher quality work than I usually do. If I needed to collaborate with others, there is no way we could have come to consensus and deliver as much in such tight timeframe – even if we were to divide the work.
I realized that I was really tired after 4 hours of solid work on the flight and my productivity would have likely decreased had I continued without a break. I am not sure I could focus like this for 24 hours straight like the traditional hackathon.
I don’t usually do this kind of development without online resources (google, stack overflow, etc.). I was really shocked the system only needed a relatively short amount of debugging without these resources for reference. Unit tests certainly helped!
I kind of like the hackathon format. In 3-6 months, I can try 2 more hackathon events to finish the project focusing on:
- Performing analysis on the data.
- Building a user interface and reports.