Yes, I'm in the image above ...
Having participated in two hackathons to date ... on the same project, winning one and doing quite well in the other, here are some of my thoughts.
Expectations
As with anything new, I had no idea what to expect.
Some part of me expected days of unending development, dark rooms with the light from my screen reflecting off my glasses (yeah, hacking). We'd get some amazing project created that would change the world.
... then, I got to the event and reality set in.
People presented ideas about projects. Then, there was voting on the projects and those that made the top numbers became formal teams. And then people selected the projects they wanted to work on and these teams started to work.
There was more, this took most of the four hours on Friday night. After some basic planning we went home in preparation for the work the following days.
I started working (in a well lit room) only to have my personal laptop die ... an amazing way to start work on a team as a competent developer. After getting my work laptop out, I started to work ... again, on a simple mobile demo application. I quickly realized that Ionic 4 was a bit too new for what we were trying to do. I got to work ... taking a different path.
Startup Hackathons
The hackathons I participated in were "Startup" weekends: . They were designed toward a group of people taking a concept and starting a business. The majority of your group will most likely be doing other things, such as surveys.
Preparation
I wound up writing:
- A mobile app
- A client-facing website
- An employee-facing website
It would have been nice to have a core template in place that I could start with.
Framework
I had originally planned on using a framework, such as Ionic ... but realized that the template structure was slowing me down. I really needed to move fast.
I found that a Vanilla-JS with some jQuery to be the quickest and most efficient pattern. This worked for me; you will need to find the combination that is most efficient for you.
Push To Internet
The application can and probably should be pushed to the web ... for future work, as well as to show what the application can do. I used Firebase to some degree of success. Just be ready to focus on this as some portion of the development cycle.
Recording
You will want the capacity to record a demonstration of your application to video. This video can then be used on a presentation.
Know how you want to record and practice this before arriving for the hackathon itself.
Minimum Viable Product
Also, keep the team focused on what the MVP (Minimum Viable Product) is ... there was a lot of "scope-creep type" of push from my teams during both events. I know how much I can get accomplished and had planned for completing with "some" time to spare. The spare time got sucked into additional features rather than correcting any issues with the code already written.
Plan for it.
User Experience and Interface
If you can get someone with strong UX/UI skills on your team, this will help ... my designs are rudimentary, at best.
Build A Demo
Only build a demo application; you can absolutely mock all interactions and data for presentation.
I had several JSON files that I was loading (fetch) in for things such as login; if your account wasn't in the login.json file, you were allocated generic settings. If you were in the file, you got images, icons, and other settings.
Interruptions
Be ready to be interrupted. For some reason, EVERYONE had to get up and move around on occasion for a wide variety of activities ... a lot of fun when your brain is locked in on getting some feature finished.
There are also Judges and Mentors that will come around and want to talk to team members.
Be ready for the work stoppage.
Mentoring
Beyond the mentoring listed above, I consider the hackathons a great place to work the other developers and assist them with improving their skills. I have developers that I mentor and I push for both of us to work at these types of events for the professional growth.
Conclusion
These event are fun. They are a good way to challenge yourself, get outside your comfort zone, and push your skills. I will continue participating in hackathons where I can, and work on new and exciting projects.
There were some truly inspiring people at these events. Some have become friends that I still reach out to ... each inspirational in their own way.