How We Won 2nd Place in Ford's Tel Aviv Hackathon!

Oct 14, 2015

Ford hosted their first hackathon in Tel Aviv on October 11th, 2015, and me and my friend, Ziv Karliner, won 2nd place! The event was organized to get developers to build or adapt their mobile apps for Ford's SYNC AppLink interface.

This proprietary technology makes it possible for apps to integrate with Ford cars via Bluetooth. Apps can then interact with the driver, display information on the vehicle screen, play sounds via the speakers, and more. Apps can even gain access to sensitive vehicle data such as RPM, speed, pedal pressed states, selected gear, etc. (I hope this doesn't make the vehicle vulnerable to intrusion!) Also, it poses some privacy concerns, as apps can even listen in on the driver and passengers via a built-in microphone. However, SYNC does employ a permission system, and all apps must be approved by Ford to gain access to sensitive data.

Sync

Our Plan

We decided to integrate my rocket alert app, RedAlert, with SYNC AppLink. The app provides real-time rocket alerts for Israeli citizens.

We were obviously allowed to use the existing Android code, and were given access to a physical TDK device (Technology Development Kit), which basically looks like the car's dashboard interface -- a bulky device with an LCD monitor.

Why?

  • When inside a car, with the windows rolled up, it is very hard to hear the sirens outside (cars are designed for filtering out external noise). This is extremely dangerous because if a rocket hits a car, it could cause a deadly explosion, due to its flammable nature.
  • In highways and service roads, there are no sirens -- they are only installed in highly-populated areas by the Home Front Command. However, rockets can hit roads perfectly well, so RedAlert could alert the driver of a rocket alert siren nearby, something that is impossible to know, even with the windows rolled down, since there are no sirens in those areas.
  • Without this integration, RedAlert on a smartphone may not be enough to alert drivers -- if there is loud music playing, the smartphone speaker will not be heard (phone vibration may be ignored, or the phone may be in the cup holder, for example).

Go!

At 11 AM on Sunday, 14th of October, 2015, we started hacking away. We had about 18 hours to finish the adaptation and work on a presentation for the judges. Here's what our development environment looked like:

Dev

We planned to utilize the Sync AppLink SDK to fade out the currently-playing music, broadcast the alert announcement (along with alert areas and cities, for example), and then fade the music back in. And we wanted to make the app driveable - so it won't require any user interaction, thus making it safe while driving. We achieved this by issuing out step-by-step instructions via the text-to-speech API in the SYNC AppLink SDK.

Hiccups

We did have some minor setbacks in the beginning - the "Hello World" example provided by the wonderful AppLink dev team (which were present in the event) was in Eclipse format, and obviously, most of the world had moved on to IntelliJ / Android Studio. So I decided to do the hackathon a favor and rebuild the project for Gradle. I forked the repo, converted it to Gradle, published it, and let the AppLink dev team know -- they were extremely satisfied and told everyone to use it.

We did have some issues with the actual SDK, though. We couldn't upload any images to the TDK -- it had a bug in the firmware that was confirmed by the AppLink dev team. And once in a while, the text-to-speech would stop working -- until a full factory reset of the TDK unit. But that didn't stop us from hacking. The key to succeeding in a hackathon is to avoid getting "stuck" on some bug or issue. If it's not critical, let it go, come back to it later on when you're done implementing your actual product. Otherwise, you'll waste some precious hacking hours on a silly bug and won't finish on time.

Driveability

To prevent drivers from having a panic attack when they hear an incoming rocket alert, we decided to prepare step-by-step instructions over text-to-speech to guide drivers to safety. Lots of people have no idea what to do in this situation, especially if they are driving on a highway and stopping the car is dangerous.

  • When there's an incoming rocket alert nearby, the app alerts: "Warning! Rocket alert in {City}!"
  • Next, the app instructs the driver to stop the car: "Please carefully stop the car on the side of the road."
  • Finally, when the app detects that the driver is slowing down and preparing to stop: "Please carefully exit the car and lay on the ground at least 10 meters away, while covering your head."

Hackathon Perks

The hackathon boasted lots of perks: Ping pong, pool table, 24/7 lemonade and orange juice, beer, caffeinated drinks, coffee, tee, snacks, great food, and more.

The dinner was absolutely exquisite -- juicy salmon, fish fillets, baked potatoes, sweet potatoes (yum), and much more. Ford had really outdone themselves. Hackathon food isn't usually this great.

Dinner

At one point in the middle of the hackathon, when my back was starting to ache from all the programming, a masseuse appeared and asked whether I'd want a massage. Naturally, I said yes, and thus I had received a 15-minute massage while programming. Life has never been better. What more could I ask for?

Caffeine for the Win

During the hackathon's short-lived 24 hours, we drank lots of beer, RedBull, XL, and ground black coffee to keep ourselves focused on the task at hand. Definitely recommended at any hackathon event to keep yourself focused and avoid drowsiness.

Presentation

We presented the app to a group of judges that walked around from team to team. We prepared a to-the-point Prezi presentation, highlighting the points outlined above, and explained verbally why this app works so much better with AppLink.

Don't be that group that prepares a five-minute presentation and gets cut off after two. You need to find out, as soon as the hackathon starts, how long your presentation should last. Almost every hackathon limits presentation duration. It's going to be extremely depressing for you and your group when you get cut off and weren't able to get the message across properly, or even demo your app. You'll end up looking stupid and fail miserably.

The key to presenting your app is to remember what the judges are looking for, and focus on that. Don't waste precious presentation time talking about your hobbies or what you do in life. Sometimes even mentioning your tech stack is not worth it -- especially if the judges are not technical.

Make sure to mention the following:

  • What does your app do?
  • What makes it special?
  • If your app solves a problem, what is it?
  • If your app benefits society, how?
  • Why do you think your app will be successful?

Also, nothing beats a working live demo of your app. That thing you were supposed to be working on for the past 16+ hours. Showcasing your app and having it work during the presentation flawlessly is extremely important, but even if you fail to get it to work for some reason, explain what you attempted to do with your app.

Prizes

And then came the time to announce the winners of the hackathon. We were extremely surprised to hear our team name called out as the 2nd place winner of the hackathon. We had gotten the impression that the judges had appreciated the app, but because of its depressing nature (the reality in which we live in where rockets pose an imminent threat to civilians), had preferred to focus on more "positive" apps.

But we were wrong.

The judges loved the app -- they were looking for life-saving apps that are driveable, so we fit the criteria perfectly. The step-by-step instructions really make a difference in preventing a panic attack and guiding drivers to safety in life-threatening situations. They suggested that the same alert concept could be applied to other disastrous situations, such as hurricanes, tornadoes, AMBER alerts, etc. Definitely something to consider in the future, if I ever wish to internationalize RedAlert as a platform for real-time life-threatening alerts.

And so we won a huge cash prize from two of the hackathon sponsors. We couldn't have been happier!