Post-MHacks

What an awesome weekend.

Despite my best efforts to finish work ahead of time, I still had a lot to do to catch up after this weekend (including sleeping.. lots of it), which is why I haven’t had the chance to post until now. I’m a bit behind on my challenge, but no matter; two posts a day for the next three days will get me right back on track.

I read this really great quote about success yesterday:

Some parents are content asking their children, “Did you have a good day?” or “What did you learn at school?” Not at the Blakely household. The question Sara and her brother had to answer night after night was this: “What did you fail at today?” When there was no failure to report, Blakely’s father would express disappointment.

“What he [my father] did was redefine failure for my brother and me,” Blakely told CNN’s Anderson Cooper. “And instead of failure being the outcome, failure became not trying. And it forced me at a young age to want to push myself so much further out of my comfort zone.”

Source

Spoiler: I didn’t win anything at MHacks. I didn’t even get to finish my main project. So here’s my theme for this post: What did I fail at during MHacks? What did I learn from those failures?

The very first thing I noticed when leaving was how bulky my pillow was. To streamline the flying process, I had opted to not take a carry on and instead boil down to the essentials and cram everything in my backpack. My pillow didn’t, so I decided to carry it. It’s made of memory foam, so it’s pretty thick, which made it bulky and difficult to carry, but I thought it’d be worth it. It’s like a gigantic sponge that sucks away your consciousness and blesses you the deepest of sleeps. After I experienced pretty uncomfortable sleep at HackGT without a pillow, I wanted my experience at MHacks to be a bit more luxurious. The pillow turned out to be totally worth it, but I didn’t know it at the time and I was constantly dropping it and letting it get in the way of everything so I made a mental reminder to take a carry on if my hands were going to be full anyways.

Failed at HackGT to bring a pillow. Learned to bring a pillow. Failed at MHacks by carrying a gigantic pillow so I wouldn’t overstuff my poor backpack. Learned to bring a carry on for the pillow so I wouldn’t overstuff my poor backpack. I printed out my boarding passes on paper when my electronic boarding pass on my phone works just fine (and I had a backup battery pack if my phone battery died). Waste of paper. Forgot to bring gloves, and my hands nearly froze solid waiting for the bus to pick hackers up from the airport.

Small things, inconsequential in their own situations, but they matter. Learning how to deal with small failures are a lot easier than dealing with bigger ones, and practicing the failing and learning process is necessary to deal with failures with bigger things. At least for me. Going in with this mentality allowed me to deal with the bigger ones later on in the weekend.

So, moving on to the bigger things.

We all met up at around 9PM on Friday evening – Dora, Vaishnavi, Bryan, Frederick, and I. It was a natural group here because the first three and I graduated from the same high school class, and Frederick was a talented hacker friend of Bryan’s. We all agreed to form a team to get together to work on our hacks.

After the Sponsor API expo and opening ceremonies, we all headed out to find a space to hack for the next 36 hours. It took us about 2 hours to settle in a spot, mostly because all the good spaces were already taken by teams who had gotten there earlier. Note to self: get hacking spaces at hackathons early.

We spent the next 6 hours throwing around ideas. Dora had some social networking ideas, and I had a list of different things saved in my Evernote ranging from calendar app reminding you of great things that happened in your life when you’re sad, to a voicemail to text app. The closest we got to agreeing on something that hadn’t EXACTLY been done before was a food app for college students that would suggest recipes based on inventory in local stores, cost range of the student, and cooking utensils available to the user (dorm residents like us may only have a microwave and refrigerator, while those in apartments have a full kitchen). But we quickly shot it down for not being truly original and just too difficult to pull off.

We only started to get stuff done when we relinquished the goal of trying to build a winning idea and instead focusing on finishing something smaller that would be satisfying to build.

So we ended up working on three projects – Dora and Vaishnavi on a Turmac Roll clone for iPhone, Bryan on a phrase guessing game for iPhone, and Frederick and I on a web application that would help users keep track of their extended family (born directly out of my frustration with my own ignorance of my extended family when I visited them over Winter Break).

Since Frederick was already well versed with Ruby on Rails for the backend, I hunkered down and began learning AngularJS, a frontend Javascript framework that would be ideal for the application we were building.

Halfway through the project we realized that the way we were writing our code made it almost impossible to couple together for the app. Frederick decided instead to work on an Android app and I remained working on learning Angular and implementing it for the web app. Because I didn’t have enough time to learn both Angular and a back-end software like Rails, I decided instead to opt for learning Firebase, a simpler way to manage data on the backend. I didn’t ultimately finish, but I learned a lot about web development. Mostly, how hard it is.

For the most part, we all remained close to each other throughout the hackathon, getting food for each other, reminding each other about event times, and helping debug each other’s code. However, our main work focused on our individual projects.

After the hackathon ended, I think we all realized how inferior in experience and knowledge we were in relation to the type of people who won. First place was an app that generated step-by-step instructions for any picture fed to it using Fourier series and on-the-cloud computing. Second place was a hack that broadcasted an Internet signal using FM Radio. Third place was a haptic feedback suit for the oculus rift. The rest of the top ten hacks and almost every single one of the prize-winning entires required technical talent, skill, or experience our team simply didn’t have. I was glad, after seeing all this, that we had all chosen to focus on what we truly enjoyed most.

As always, the biggest thing I got from the hackathon was motivation to become better. Achieving to implement even the bare bones of my web app was fulfilling enough to motivate me to work on it in my free time after the hackathon, which definitely wouldn’t have happened without the concentrated 36 hours, help from all the mentors, and the feeling of just being there with a thousand other people also working to build something they’ve wanted to build for a while.

Not shipping at MHacks may have been the biggest “failure” of my weekend, but going through the process, learning new software, making new friends and simply trying were my biggest achievements of the week.

Pre-MHacks Thoughts

I fly out tomorrow at 8am to the University of Michigan, Ann Arbor, for my second major hackathon: MHacks. It’s one of the most hyped up and talked about events in the Hackathon Hackers community on Facebook, which with over 10,000 members is one of the biggest if not the biggest hacking community in existence. But I’m not feeling the excitement – to be honest, I’m scared of failure. And I’m trying to figure out why, so I can change that negative energy into positive motivation.

I went to my first major hackathon, HackGT, with feelings of being able to accomplish the impossible – unbounded enthusiasm, passion, feeling. I was (and DEFINITELY still am) the typical excited freshman unaware of the true grit and hard work required to ship a finished product – just blissful that I get to fly across the country for free to follow a passion, unobstructed with school or other extracurriculars, that I’ve had for over four years.

I came in with what I thought was an awesome, doable idea – a Google Chrome extension that would add saving functionality to Facebook posts.

Yet the project, while simple enough conceptually, turned out to be far more complicated than the teammate I found there and I expected. Documentation for Chrome extensions turned out to be very unhelpful, and Facebook feeds were an endlessly dynamic flow of content that required advanced Javascript/Chrome-specific software that were beyond the limits of what we could learn in 36 hours.  In the end, we walked out with a Chrome extension that added a save button, minus its functionality, to Facebook posts.

In all honestly though, that was the only downside to the whole experience, if that can even be considered a downside. I made some great friends and caught up with two old ones I hadn’t seen in a long time. I learned what it was like to fly across the country by myself, how to Javascript, how to divide up work between teammates, how to Git, and some ins and outs of how big hackathons work.

After I came back, I was still in high spirits. I had just experienced all these new things and I was still absorbing them. I was still enthusiastic about the Facebook Chrome extension project, telling myself I would finish it in the free time I had left in summer and during my first quarter of college. As time went on, though, life happened and the project never materialize. I became… ambivalent about the whole experience.

I’d like to call myself a hacker – someone who enjoys taking up problems and figuring out an innovative solution using hardware and software. I love computer science and making complicated things come to life on a screen and even in reality, if it’s hardware, by simply entering a couple thousand words into Sublime Text 2 or Vim or whatever IDE and clicking the run button. There’s so much pleasure and satisfaction with having the deep understanding of how a complicated thing functions. All hackers feel this way, to some extent. But here is a fact that bothers me: I don’t have anything to show for it. I’ve done tutorials, I’ve gone to hackathons, but I haven’t fully finished a project, 100%, all the way to completion. I’ve yet to complete a computer science project I’m proud of.

I guess I’m in that stage of my life where I’m trying pretty hard to figure out who I am and who I want to be. Hackathons are opportunities to exhibit this self-perception that’s tied to my career and aspirations and passions and self-respect. So it doesn’t feel right to call myself a hacker before those skills that I tell myself I have manifest themselves through a finished product. Now, it feels like MHacks is a matter of proving that this perception I have of myself is more than an unsubstantiated fancy.

It runs deep. But I think there’s another part of me swimming around here that I haven’t caught yet that runs still deeper.

My attitude towards failure in high school wasn’t so great. Early on in 9th grade, I received sympathy for expressing my sadness about failures, which made me feel better. As the years went by and as I failed and succeeded (just like anyone else who’s had a normal high school life) in more things , my friendships changed and I no longer received that sympathy. I think I started expecting that sympathy from myself, leading some pretty bitter periods of my life that I’m not exactly proud of (read some of my old posts, you may see it 😛 ) I’ve come out on the other side a lot happier, though I’m still picking apart and learning from what happened.

Being a hacker or a programmer is merely a status. At the end of the day, it’s a label for a skill set, and in the grand scheme of life, it’s as transient as the clothes I wear every day. It’s a passion, sure – it’s a potential career, sure – but I think I’m more defined by something more constant: how I approach every general challenge, every general emotional obstacle that may come across my path in the (hopefully) long journey of life.

It’s clearer now why I’m so ambivalent about HackGT. I wasn’t afraid that one experience would define me – I was afraid that the experience was symptomatic of a general inability to commit to something and execute it to completion. Which is definitely something far more serious. Looking at it this way, how I define myself is no longer a question of skills I may or may not possess at this point in time, but a question of willpower. Willpower was what prevented me from ever finishing that Chrome extension, not my lack of knowledge.

So here’s the deal: This weekend, it doesn’t matter whether I believe I’m a hacker or not. It doesn’t matter whether I ship something or not. What does matter is how hard I’m going to try to come up with an idea I’m proud of. What does matter is to what lengths I’m willing to push myself outside of my comfort zone to accomplish this goal. Because how I choose to approach this challenge, and whether I choose to learn from instead of be defined by my failures, is indicative of how I’m going to approach the rest of the challenges waiting for me in life, which outnumber and outsize MHacks 100,000,000,000 to 1.

At the first hackathon I went to, I did Android tutorials for 24 hours. The second, I tried for 36 hours to ultimately fail in finishing my first hackathon-worthy idea. This is my third hackathon. Will I continue this upward trend of improvement? Does it matter? Will I choose to be proud of success, or proud of effort?

I have no idea. I’m about to find out.