No team necessary: How Eric Liao won at a hackathon by himself
Completing a winning app at a hackathon can be a challenge with even the best of teams. Eric Liao competed as a one man team and finished the 2016 AT&T Developer Summit Hackathon in third place overall. Through utilizing the help of on-site partners and sponsors, and a lot of focus and prioritization QuizTV was born. QuizTV is designed to encourage kids to study before they can watch TV. See the pitch that put QuizTV into the top three finalists here.
The 2016 AT&T Developer Summit Hackathon challenged over 1,000 developers to create an app in a day. The judges picked the final top 20 apps that were presented at the end of the second hackathon day. The top three teams from the hackathon, including Eric, presented their apps on stage during the AT&T Developer Summit Keynote where audience members voted via text for their favorite. All hackathon teams had the chance to win one of more than 40 challenges that combined for over $300,000 in cash and prizes.
If you haven’t seen it yet, take a look at the Featured Developer profile of the 2016 Grand Prizewinner, Team KineticCare. If you weren’t able to attend the 2016 AT&T Developer Summit see a short recap here or watch the full broadcast recording here.
We caught up with Eric a month after his success at the AT&T Developer Summit Hackathon to learn more about his experience and the QuizTV application.
What prompted you to attend the AT&T Developer Summit Hackathon?
In November I participated in the Connected Car Hackathon in LA. I was fortunate to win the first place overall app with my amazing team who built PipCar – an application platform for timely and accurate first response services in emergency situations. At the end of event, Ben Nelson told me that I should attend the AT&T Developer Summit, and I agreed.
How many Hackathons have you participated in? Was this your first AT&T Hackathon?
My first Hackathon, was with AT&T back in March 2015. Since then, I have participated in about eight Hackathons so far, including other AT&T Hackathons, AngelHacks, and an IBM BlueMix Hackathon. I enjoy participating in hackathons so much because they are like free technical training sessions with rewards!
How have Hackathons helped you personally?
Hackathons are incredibly helpful to me in both personal and professional growth. The biggest difference between a hackathon and the usual professional work is the time constraint. With limited time, every decision and action is important! That means hackers are under pressure to make decisions all the time, such as deciding whether to implement a feature or not.
Time limits have forced me to learn about the Pareto principle, sometimes called the 80-20 rule — that is roughly 80% of the effects come from 20% of the causes. For example, I would intentionally choose not to implement trivial functionalities like user authentication when creating something at a hackathon. Why? Those trivial functionalities don’t contribute to the demonstration as much. Everyone knows about authentication so you don’t have to show it in the app. In other words, people are not looking for how much effort you put in, but whether your product solves the problem. At the end of the event, you have three minutes to demonstrate your work, so you will have to manage your time and energy to present your core concept.
On the professional level, I’ve learned how to quickly prototype an app on the fly. For instance, using a quick prototype skill set, I was able to win a mini-Hackathon at work for our dev team very easily.
What was your experience at the AT&T Developer Summit Hackathon like?
It’s an amazing experience. This is by far the best hackathon I’ve ever been to and I think it will continue to be because of the diversity of people who were there. In this hackathon, I met with very helpful sponsors like Jasen Mehta and Marcin Spatzier from DIRECTV, and many other interesting folks because of the wide variety of attendees at this event. The hack is for more than just programmers. In short, I like that this hackathon brought people together to create innovative stuff.
What does the AT&T Developer Program and AT&T Hackathons mean to you?
The AT&T Developer Program gave me a chance to look for the new trending technologies and to try them out with the help from AT&T or other sponsors.
Each AT&T Hackathon emphasizes a different set of technologies. Take AT&T Developer Summit for example, WebRTC and DIRECTV are both technologies where AT&T provided a lot of support. There were other technologies available that also had a lot of great help available that I didn’t mention here because I didn’t get to try them out. Nevertheless, using the new technologies are very meaningful to me because they all contributed to making me be a better software developer.
How important is it for companies like AT&T to hold hackathons for developers?
The experience hackathons can bring to a developer is great because it gives them a chance to work with a company’s API directly, and provides more depth on the ideas the company is developing moving forward.
Developers have the opportunity to see what new technologies big companies, like AT&T, are promoting without going through API documentation and wrestling with those challenges because support is provided at the hackathon. If we have any questions about how an API works, we simply ask!
Most hackathons usually have a theme, which gives developers, like me, a chance to catch on to what AT&T is moving toward. In a sense, this theme tells me what companies are looking for and that I should be studying those themes. For example, in this AT&T Developer Summit, although I didn’t do any pre-work on QuizTV, I did attempt to learn more about some WebRTC APIs. In other words, these hackathons motivate developers, like me, to learn new cutting edge technologies!
Last but not least, hackathons like this bring developers together. Drawing from personal experience, I worked with a few of my friends outside of my company! I used to work with a designer, Pierre, in my company, who left to pursue other interests. As a result, I didn’t have the opportunity to work with him anymore. I asked him to see if he wanted to go to a Hackathon with me for another opportunity to work together and we had our chance to work as a team again! Everyone was happy.
Any developer-related advice, or lessons learned from your participation in the hackathon?
As a software engineer, hackathons have taught me to learn things quickly plus various other lessons, including looking at the business aspect of the product, how to present a product, and the importance of networking.
I was a hard-core type of developer who thought only good quality software could win a hackathon, but I was wrong. Hackathons focus more on your product’s ability to solve the problem instead of how much your software can do. I could develop a great program that can do many different things, but this software was not going to win if it did not do what hackathon judges were looking for.
In hackathons, developers are usually required to get a product up and running in a very short period of time using new technologies. In other words, developers are required to learn and launch quickly. What I have learned over these hackathons was to look at the API as a black-box approach. You throw input in and you get output from the API and use it. With this mindset, I’m able to reason what I want from an API and what I need to do for my product to work.
As a context, hackathons usually only give a team three minutes to present their product. Sometimes, it’s hard to combine 24 hours of effort into three minutes. We have to decide on what information is presented in the demo, and what we should be focusing on at the beginning of the hackathon. The ability to choose what features not to implement into a product is just as important as choosing what to implement. I’m glad I’ve gained product design knowledge from attending hackathons.
What advice do you have for up-and-coming developers, especially those who are going to attend their first hackathon?
For up-and-coming developers going to hackathons, I definitely encourage all of you to try it out because it is so beneficial to your career; it is very fun and rewarding!
My first bit of advice is to look at the product as a non-engineer. As developers, we are very easily distracted by a lot of technical details. It’s easy for us to explain these concepts and concerns to technical people. Often, judges may not be technical and they may not be looking for technical details that are the means not the end. My advice is to look at the product and find a single sentence to explain what your product does. If you can explain your product in a single sentence, work on the technical detail to support it later.
But what idea should you be implementing?
Sometimes you can ask sponsors what they are looking for and most of time they have some starting point for you. This also creates an opportunity for you to talk to sponsors. Network with them more to get to know them better! Sometimes you can even ask them questions while you are developing your product and show them where you are moving. This is a bit of a pre-demonstration before the final pitch. Remember what I said earlier: three minutes is not enough for you to demonstrate your full efforts. You can do a pre-demo to the sponsors and show off your fancy programming skills!
In summary, try not to be distracted by technical details and focus on what the problem your product is solving.
What is your development background?
You were a team of one at the hackathon – how were you able to do all this work yourself in a short 24 hours?
As a team of one, I had to do everything all by myself. Working for Edlio as a full stack developer, I learned how to implement all the technical detail I needed. In other words, I have the power!
It was up to me to squeeze in as many things as I could accomplish. My personal trick with all this work in a short amount of time is simple: I write down all the tasks I have to do and prioritize them accordingly. The process of writing tasks down and setting priorities reduces various cognitive costs on my brain and allows me (a software developer) to focus on implementation.
In detail implementation, I used various frameworks and tools to help me to get more done. For example, I implemented a mobile app in Ionic. Why Ionic? It allows me to implement in my most familiar area, web, as compared to native implementation like Java or ObjectC. With Ionic, I am able to quickly spin up a mobile app and implement a very clean interface.
Favorite AT&T API?
DIRECTV of course! DIRECTV as an API is very easy to use because it starts with my strongest area, which is web development. The set-top box is very easy to get started using since I’m only implementing in a web environment. I haven’t had a chance to play with many other APIs because they didn’t fit into my needs for QuizTV. I would like to try out other APIs for some different projects.
Preferred coding languages?
Favorite mobile application development tool, and why you like it?
Ionic is my personal favorite mobile application development tool because it gives me the power to implement the mobile application in my usual web development style. I only build this application once, and it can be compiled down to Android, iOS, and a web browser. Build once run everywhere is my biggest reason to love Ionic without mentioning its awesome documentation and command line tools.
What technologies are you most passionate about? Did those passions help shape the app you created?
AngularJS is the most wonderful technology I’ve used so far. I’m very excited about their upcoming official release of version 2 because it is built on top of the browser standards with web component technologies.
And yes, my passion on AngularJS helped me to shape the technical side of QuizTV, which goes back to Ionic as the mobile application development tool. Ionic is actually built on top of AngularJS, and thus, my passion on Angular got translated quite well to Ionic making the creation of this app easier.
How did you come up with the idea for QuizTV?
A weekend before the hackathon my nephew was watching TV and my sister was yelling at her to do her homework first. This action inspired me to create QuizTV, which allows parents, like my sister, to pop quizzes on the TV to encourage their kids to study first and then continue to watch TV.
What is the purpose of QuizTV?
It is not just to make kids study, but also for DIRECTV to provide more educational content to help kids learn. Although I was not able to get this part of the story working at the hackathon, I would like to further develop this part of the app, which uses Machine Learning to look through DIRECTV video content and make suggestions for kids to help them learn using DIRECTV videos. For example, if the question asks a kid about the President of United States in 2004, QuizTV should be able to suggest a recorded video or a channel for kids to watch more about that topic.
In the end, the goal of QuizTV is to take normal TV usage and behavior and increase the educational opportunities.
What technologies did you use in QuizTV?
The primary technologies used within QuizTV is the DIRECTV API (including set-top box and service to control TV) and Ionic (for mobile app). Secondary technologies used include WebRTC for live video calls between peers via Kandy.io and AT&T Data Rewards for rewarding kids to complete the questions.
Besides the above technologies, I built my own service using Node.js with Socket.io for real-time communication. This service is required to keep the mobile app and TV question in sync.
How does your QuizTV app work?
- Grab quizzes from educational content providers like BlackBoard or Moodle
- Group quizzes by categories and grade
- Parents can choose a quiz category with the ability to activate a pop quiz on demand in DIRECTV
- Kids need to finish quiz before they can continue watching their program
What are your future plans for QuizTV?
Following the hackathon, I was thinking about opportunities for QuizTV moving forward. As a team of one, I didn’t have anyone to discuss this with so I asked my mentor, Russ Abbott who is my advisor professor at CSULA. He suggested I think about how QuizTV could look 5 years into the future; for example, could QuizTV make a million dollars?
I thought about the possibility of QuizTV succeeding in this competitive media market, which is quite low to be honest. There were many factors influencing this result. One factor was from a discussion I had with an Uber driver who was a movie director that heard about QuizTV. He said QuizTV would not be successful because no single media content provider will be happy with you interrupting their content. Advertisers need to pay media content providers in order to interrupt programming. This really struck me as a developer because I never thought of the other side of story — what about the media providers?
I do not want this project going to an idle state either. Therefore, I’m thinking of deploying this app to the Google play store and iOS by itself as an interrupt service for mobile devices without TV part first. I will follow up with DIRECTV and continue developing to see if this app can be part of a service DIRECTV ships with their new set-top box.
You were approached by a professor from Carnegie Mellon University following your Summit success. Tell us about that experience.
This goes back to what I like about the AT&T Developer Summit: the variety of the people at the hackathon. After the hackathon, Wendy Fong, a Sr. Strategic Programs Manager at Carnegie Mellon University, approached me and invited me to CMU.
Now that the hackathon is over, I have been thinking about the opportunities to continue with QuizTV as well as working towards a PhD in CMU. I think the PhD experience at one of the top universities and Computer Science programs in the country would be very nice and will definitely help me in the future to develop any startup ideas.
So I followed up with her and sent my resume. She said she would pass it around to see any professor might be interested in having me as one of their doctoral students. We will see how far this goes.
What’s Happening in the AT&T Developer Community?
Would you like to meet more developers in our community? Join us at an upcoming event: http://developer.att.com/community/events