I meant to write this immediately following my return from the Zip.Code Retsly Hackathon but I think I literally needed this much time to catch up on the sleep I deprived myself of, over the course of the 34 straight hours I was at the event…
I arrived at the Trulia office (site of the event) shortly after my flight arrived in SF. It was Friday night on Nov 6th and I had been struggling hard with a migraine all day long. Not an ideal way to feel before committing to code for more than a full day but there was no way I was going to miss this event.
For those that don’t know me, I have a pretty long history in the real estate industry, first as a broker and later correcting my course to making web and mobile apps for my own startups and other clients in the industry. I also attended the very first Retsly hackathon where I built a prototype of Curb Call, which I later pursued into a full-on vc-backed startup. Curb Call and I got 2nd place at that first Retsly hackathon and so although it was a great experience, I felt like maybe I had some unfinished business!
Back at the Trulia office for this year’s event, I got checked in and while everyone was joining teams and recruiting others, I decided to go it alone. I wasn’t feeling super hot and didn’t want to risk deserting a team if my migraine returned during the event the next day. After reconnecting with some people, I left the Trulia office, grabbed a good SF meal and got to bed early. I knew it was going to be the last sleep I was going to have for a long time.
Saturday morning seemed to come early. With the official kickoff time set for 8:00am, I checked out of my hotel (no need for a hotel if you’re working all night!) and made my way to the Financial District to get checked in.
With over 100 coders ready to hit the ground running, I was careful to select a good spot to setup shop. Most people were in the main open part of the office where about 40 long tables were setup with 5 chairs at each one. I claimed an end chair at one where I could also have a good view of a big projection screen where I confirmed that the LSU / Alabama game would later be playing. Key. Move. I also wanted to make sure to not be too close to the windows where I would get much glare on my computer screen. When you’re going to be working for this long, making it easy on your eye muscles is actually really important. I got my first latte from one of the totally sweet Trulia coffee machines and typed my first code:
`rails new truecribs_api`
The Hackathon revolved around the very cool Retsly API. This API allows people to easily build applications that utilize MLS data. The Retsly API provides normalized on-demand access to various MLS feeds which is a massive convenience compared to the normal work involved with importing RETS feeds directly from the source. In addition to the many new features of their API, we were also given access to another set of data via the API. This additional dataset was almost 1 billion property assessment and transfer records including mortgages. We were to build something that utilized at least one of the datasources and there would be cash prizes for best use of each datasource.
I had two ideas: one was for a tool that helped renters negotiate their rent and the other was for an interactive, multiplayer real estate trivia game that used MLS data. I decided to go with the game idea because it was a little flashier and I thought it might show better for the judges. But it also meant building a custom iPhone app and a custom backend and API in ruby on rails. I was going to need every minute of the 30 or so hours we were allotted.
I code all day, most days. It’s my job and I love doing it. But at the end of a long (normal) day of work, I’m completely wiped. My eyes are burning, I’m tired, my hands are kind of cramped and my ability to solve problems is pretty much nil. I would need to go three times that long at this hackathon and do a project that I would normally do over the course of a month or two. To make this possible, I focused on a few key things:
- Space out my caffeine – Minimal soda and only drink coffee every few hours when I was feeling low on energy
- Drink a ton of water – Coffee dehydrates and so it’s really important to drink a lot of water. I feel like a different person when I’m well hydrated. I must’ve had over a gallon of water over the course of this event.
- Minimize carbs – The event organizers gave us full access to a fully stocked Trulia kitchen full of snacks. That was awesome! But it was also tempting to chow down on chips, bagels, etc. I focused on trying to eat much more granola and nuts and things. This provides for more prolonged energy.
- Take frequent short breaks – Each time I wrapped up a particular part of my project, I would take a walk around the office and chat it up a little bit with some of the Retsly team mebers, get some more water, etc. I also did this if I was stuck working on a particular problem for too long. I often find myself battling some problem for a significant amount of time and as soon as I take a break, I tend to find the solution immediately upon my return.
As the sun went down on Saturday night, the Retsly team brought in a huge pile of local pizzas for us. It was great to take a little break and chat with some of the other participants about how they were doing. I find that I tend to have a bit of a game face when I’m in any sort of competition. I’m generally a nice and social guy most of the time but I like to feel focused and dedicated during any kind of competition. I felt like I was making good progress at this point though and so this was actually the first time I had spoken to some of the other participants.
At this point some of the contestants actually left for the night. Over the course of the next few hours, I’d estimate that about 1/3 of the contestants called it a night and went home. That was fully within the rules of this event and they were even free to work from home too. I decided to stay though as I was feeling productive there and that was my plan all along.
After dinner I wrapped up the last of the backend/API which was a big milestone for me. Though it was less than halfway to the finish line… But still it was time to start the iPhone app portion of my project. Though the backend does more of the actual work, a native app is much more time consuming. (at least for me) I decided to use a toolchain called Rubymotion and specifically a framework within it called Redpotion to save time wherever possible. I use both of these tools a lot so I felt pretty confident though I knew that these things always tend to take more time than I originally think they will.
At about 2:30 AM, the environment was significantly quieter. Many people were still hard at work, including myself but there people sleeping all over the place. Actually “passed out” is probably a more appropriate term. People were asleep in their chairs, on their keyboards, splayed out across three chairs, under the tables, ON the tables and three smart cookies found the one couch and divvied it up into three equal parts. I wonder if they knew each other first?
I was just now starting to feel seriously tired too. I wasn’t going to sleep at the office though. I knew that I’d wake up feeling terrible and that would defeat the purpose of even getting some sleep. But, I was thinking ahead to the judging the next day which was due to start at 1:00 pm. That was almost 12 hours away. I decided that I would check into a hotel and get 3-4 hours of sleep before coming back with a renewed energy. So I jumped onto Kayak only to figure out that you can’t really book a room for Saturday night when it was already technically Sunday morning… Not good. I was going to have to call hotels and actually talk to people.
So I put on my hoodie and went outside where it was lightly misting and about 50 degrees. I live in San Diego so this was not my element. I spoke to a few hotels and they were each sold out. As I was dialing and talking, I had walked about a block. Some nearby bars had just closed and patrons were stumbling around and arguing with each other and everyone else around about taxis and Ubers. It was pretty fun to watch and when I didn’t find any vacancies, I started to walk back to the Trulia office. I was absolutely freezing and I noticed something else – I wasn’t really tired anymore. “Whatever”, I thought. “Let’s just get back inside and go all night”. And so I got back inside, poured another Latte, put on my headphones and got back to work. I looked around the room and saw that along with Kyle, the CTO/Founder of Retsly, that I was in good company with other dedicated coders going the distance.
Morning came eventually the Retsly team provided breakfast. People started coming back and the room was coming back to life. I was somehow feeling pretty good though I wouldn’t have minded a shower or at least a toothbrush!
At long last, the announcement was made that we were done coding and after a little welcome message from Errol Samuelson, the presentations finally began. Each team signed up for a time slot to present their build. There were about 35 presentations to be made and so I tried to think strategically about my time slot too. I figured the first few slots tend to be kind of hard because expectations aren’t really set yet. By the end, the judges may be tired and not paying attention as much. So I went with slot #8.
The first team to present was my neighbor to the left. I hate to say that I actually never spoke to these guys a single time in the 34 hours I was sitting next to them! We were all so focused on our work that it somehow never happened. I was blown away at what they had built when I saw it on stage. By using an opensource Microsoft algorithm, they were able to create immersive 3D tours of a listing by using just the photos from the RETS feed. It didn’t work for every listing but as long as the photos were numerous enough and shot from roughly the same height (tripod) then it work incredibly well. I couldn’t see much of a difference between their tours and one shot by a Matterport camera. Truly amazing.
My time to present was finally upon me. I took the stage and with just three minutes to present, my decision to “wing it” for this part was making me a little nervous. TrueCribs was actually a multi-platform game where the questions were displayed on a computer screen and then players would input their answers via the native app on their iPhones. I was holding two iPhones and a microphone while my laptop displayed the question on the projection screen. I quickly explained how it works to the crowd and then with my hand full, decided to just hand one of the phones to Alex Perriello, CEO of Realogy so he could play against me in my demo game. It was an off-the-cuff decision just because I couldn’t hold both phones and the mic but it actually went pretty well. Alex ended up winning our demo game and everyone got a good laugh out of it.
The real value of my little game was actually that it generated listing price opinion data based on the answers of the game players. I unfortunately didn’t really mention that until the last few seconds of my presentation as time was elapsing and so I don’t think the real value of my project was well articulated. Next time I may run through my pitch a few times before going on stage. I did a much better job of that when I presented Curb Call at the first one of these events.
When the judges announced their picks, I wasn’t among them but I really didn’t care at that point. The field was so incredibly loaded with amazing builds that I thought about 15 of them could’ve won. Paul Hagey of Hagey Media wrote a great piece about the winners.
I finally closed my laptop and stumbled out of there for the airport where I couldn’t wait to board a plane and finally close my eyes for the one hour flight back to San Diego. Unfortunately my marathon wasn’t over yet as my in-flight neighbors were incredibly friendly and chatty.
When I finally got home to an amazing home-cooked meal by my wife, she asked me how this kind of thing was actually fun. At the moment I wasn’t sure that I wanted to do something like that for a really long time. But now, a couple of weeks later, I can safely say that I can’t wait for the next one.
For those interested, you can check out all 1578 lines of code that I wrote during the event here:
EDIT: Just remember that the code in the repos above were written hastily in 34 straight hours. The API and app aren’t designed for scale and go against plenty of best practices. Of course, that’s not how I would normally do things…