Abject Failure as a Recipe for Success

So way back in 2008, after spending four years working as a software engineer for National Instruments, it came to pass that my girlfriend at the time decided she wanted to move to Seattle to go to law school. This was not entirely unexpected, and in the end I decided to move up to Seattle with her rather than terminating or long-distancing the relationship.

I managed to get onsite interviews with Google, Microsoft, and Amazon, and they each flew me up on separate weekends to interview me and wine and dine me and convince me to move across the country. Well, I should say that Google and Microsoft tried to wine and dine me, and Amazon basically just shrugged and said, “You’ll become a better programmer here, or something?” Anyway, recruiting strategies aside, I moved here in mid-2008 with high hopes and big dreams.

Boy did that ever turn out differently than I’d hoped. I got placed on the Visual Studio 2010 Platform/Core team, honestly a team of some very very smart developers who outclassed me in every way, and to put it nicely… things did not go so well for me there.

I think that a big part of it was just that they weren’t quite sure what to do with me when I arrived; I’d gotten the job mainly due to a friend of a friend, and when I arrived there was no feature work for me to do, so I ended up working on bug fixing rather than writing any new code. The idea, supposedly, was that this was a chance for me to get to know the (very large and complicated) codebase of Visual Studio, prove myself as a good bug-fixer, and then move on to real development work. This proved more difficult than expected. The code was written in C++/COM, much of it legacy code from a decade hence, and my background was much more .NET focused than hardcore C++ Win32/COM focused. The bugs were largely bugs that other developers were having a hard time fixing or simply didn’t have time to fix, so they got assigned to me (the newbie) instead, which makes total sense of course.

Over time it became clear that my manager was not particularly happy with my performance. He had decided that I should be fixing around six bugs per week, and I was fixing closer to two or three bugs per week instead, and thus my performance was not up to par. I’m not entirely sure how he arrived at this magic number, come to think of it, but he had expectations and I was not living up to them!

I got my first review after a year on the team. Back then, you were evaluated based on two axes: Commitments and Ranking. Commitments were the things you intended to accomplish throughout the year, whereas Ranking is essentially a stack rank or bell curve of how you compare to other co-workers performing your job. Although I managed to obtain a grade of “Achieving Commitments” on the Commitments axis, I received a stack ranking in the lowest 10% on the meta-team. The insidious thing about stack ranking at Microsoft is that managers are required to rank employees in order of “contribution” and “influence”, and that no matter how excellent your team is, someone always earns the black spot. And when you do, you are typically either fired or put on a Performance Improvement Plan with very serious implications if you do not improve your performance, young man. Not only that, but even if you wanted to transfer to another department or position, you’re basically blacklisted when you’ve got that kind of black mark on your permanent record.

Of course I took this all very seriously back then. I was filled with self-loathing and self-doubt, and questioned my abilities as a programmer and my worth as a human being. This combined with the incredibly gray and rainy Seattle winter, and my relationship falling apart, and my general lack of any kind of social support, and it’s fair to say that the winter of 2009/2010 was perhaps the most depressing and disheartening winter of my entire life.

Despite my seasonal depression, I decided to redouble my efforts, but I knew that even if I worked twice as many hours and twice as hard I still might not rank above the dreaded 10% cutoff at the end of another year. So I made a plan. I saved up as much of my paychecks as I could. I readied myself for what was to come. And when I did finally get my second yearly review, and I got yet another bottom 10% ranking, I knew what I had to do.

I quit.

My manager was a bit shocked. I’m not really sure why. Maybe it was because I didn’t have another job lined up. Maybe it’s because I told him I was going to spend the winter rock climbing in Mexico. Maybe he thought I was just being crazy and reactionary and acting on a whim. But what he didn’t realize is that I’d been planning for this possibility for nearly a year.

So I did. I gave my two weeks notice, I started figuring out how to pack up all of my earthly possessions and put them in a U-Haul trailer, and when the time came, I left Seattle in my 2003 Hyundai Santa Fe and drove to Fort Collins to drop off my stuff at my parents’ house, then continued south to Austin. After a few days, I then drove another 8 hours south to my favorite place in the world, El Potrero Chico in northern Mexico.

It’s a fantastic place. Absolutely stunning, beautiful limestone walls that just seem to jut out of the ground from nowhere, a sport-climbing paradise with some of the world’s most inspiring multi-pitch climbs. I spent a good four months there, climbing every other day, having a great time, and taking a sabbatical from the rat race and self-loathing that epitomized my Microsoft experience. And I tried something new.

A few months prior, I had a friend ask me if I was interested in helping him with this Android app he was working on. It was a really cool app actually, very popular and innovative at the time, and he needed someone to help with some additional functionality. I was more than happy to sign up. In two years at Microsoft fixing bugs, I must have written no more than 200 lines of production code, and here I was given the opportunity to write something completely new and fun and exciting. So I dove right in. At first Android was a bit scary and overwhelming, but over time our project grew and I learned more and more about writing Android applications, from the user-facing UI to the invisible services that perform the real magic. I regained my confidence and realized that I wasn’t a bad programmer; I’d simply been in the wrong environment for me at the time.

Eventually I ended up running out of sabbatical money and started interviewing for “real” Android jobs, and got one at Ratio Interactive. I was super nervous at first, but I proved myself capable quickly and regained even more confidence. I became not simply a general-purpose programmer, but a developer with a very specific skillset. A developer that people wanted to hire.

I just recently accepted a new position with a small agency called LIFFFT; the ethos of which is that they want to empower their employees to work in whatever capacity makes them happiest, as long as they continue to kick ass for their clients. I don’t mean to brag, but these days I’m making significantly more money than I made at Microsoft and I’m about a thousand times happier.

What’s funny is that if I could go back in time and chat with my former self, I don’t think the past version of me could possibly believe that my future held such potential. All I saw was the doom and gloom and unhappiness of my current situation, the abject failure of the now. And perhaps the strangest thing about this is knowing that without that abject failure, I never would have become the person I am today. I never would have spent the entire winter climbing in Mexico, having the time of my life, nor would I have taken the time to learn and specialize in the Android platform. In many ways, this terrible failure set me up for future success in ways that I could never have predicted.

So I am thankful. I am so very thankful to have had such a difficult, soul-crushing experience, struggling and failing to achieve my dreams at Microsoft. Without that, I might have just ended up living a relatively boring and mediocre life doing whatever was enough to get by, never daring to learn something new or try something risky. Play it safe. Stay the course. Don’t stick your neck out.

There are times in your life when things will not go your way. You will be discouraged, you will have difficult times, and missteps, and even abject failures. But don’t let that get you down. Sometimes these trying times are exactly what you need. The key is to use your unhappiness and discomfort as a launching pad for your future greatness. Remember, it’s only after we’ve lost everything that we’re free to do anything 😀

Photo Credit: Sergio Tudela Romero

Seven Months at Ratio Interactive

It’s been a long time since my last post (last June!), and my excuse is of course that I’ve been crazy busy ever since I started working full-time for Ratio Interactive last July.

Prologue: Pre-Ratio

Before I started working at Ratio Interactive, I spent about two years working on an “indie app” called iSyncr for JRT Studio. It’s an excellent Android app that allows you to sync your iTunes music and playlists to your Android device via USB or WiFi – specifically, I worked on the WiFi syncing solution, including both the Android app code (Java) and the server applications for Windows (C#) and Mac OS X (Objective-C).

I also co-wrote a similar app called Cheetah Sync for JRT Studio, which is a handy Android app for wirelessly syncing files and folders between your Android device and your PC or Mac. Check it out!

Working on these two apps was my first foray into Android app development, and although I was only working about “half-time” on these apps, I learned a ton and now have the right to call myself an accomplished Android developer. I’m very proud of having had this experience.

Ratio Who?

What is Ratio Interactive? Basically, we are a small but talented digital agency composed of talented designers, software engineers, and project managers that develops top-notch web apps and mobile apps for Windows 8, iOS, and Android. We’re located in Pioneer Square in downtown Seattle, but our apps have a worldwide reach. We are especially well known for being the Windows 8 app agency, having launched over 20 apps for Windows 8 when it premiered last year, and we continue to drive the core principals of Windows 8 app design. But we are far from a Windows-only app agency, having developed several quality apps for Android and iOS.

Culturally, Ratio is a relatively small team of fun, creative, yet hardworking individuals who are passionate about creating great apps and websites. Where many software companies have sterile, impersonal cubicle farms, or isolated closed-off offices, we have an open floor layout in a loft office which lends itself to open collaboration among developers, designers, and project managers which allows us to be highly agile when working across various projects. It’s really an excellent, open working environment, and it’s a lot of fun.

Projects I’ve Worked On at Ratio

Even in just a few short months at Ratio, I’ve been involved in several different projects. Here are some of them:

iCookbook – Android

iCookbook is a handy app containing thousands of searchable / filterable recipes that you can use to cook up something interesting in your own kitchen. You can view the ingredients list for each recipe, preparation instructions, take notes, create a shopping list for recipes you want to make, and much more.

When I came onto this project in July, the initial release of the app was for Android tablets only, and I was tasked with updating the app to make it work better on Android phones as well, and I think it’s fair to say that we succeeded. We created an entirely new set of screens that are optimized for the smaller form factor of Android phones and yet the app experience is just as useful and capable.

Pirq – Android

Pirq is a really cool location-based app for finding real-time deals near your location. Want to go out to lunch and get a really great deal? Pirq can help you discover a great lunch venue on the cheap, sometimes as much as 50% off.

I must admit I didn’t do a lot of work on Pirq, but I did help fix a few bugs prior to its 2.0 release =)

New Android Project

I’m currently working on an Android project that’s so secret, I can’t even mention what it is. It is, however, a really interesting project and I’m really excited to be working on it!

Join the Team!

Are you a talented designer, app developer, or project manager looking for a great place to work? If so, you should consider working for Ratio Interactive. We’re always looking for talented front-end devs, iOS devs, Android devs, Win8 devs, graphical designers, and project managers who can help us take Ratio to the next level. You can contact us through our website, or contact me and I’ll see that your information reaches our talent recruiter’s desk.

Like Games? Want to Learn a Foreign Language? Play Diablo 3 in a Different Language for Total Immersion

Most experts agree that if you’re trying to learn a foreign language, one of the best ways to do so is via total immersion in the target language, often by traveling to a foreign country where everyone speaks the language you want to learn. Of course you may need a basic grasp of the language’s rules and grammar first, but being forced to read / listen / speak in a foreign language just to make it through the day gives you a wonderful incentive to learn more, whereas living in an English-speaking area makes it difficult to practice since you have to go out of your way to do it.

On the other hand, if you can’t live in a foreign country and still want to learn the language, there are ways that you can at least expose yourself to some level of the language without too much trouble, especially if you use a computer a lot. Some ideas:

Change Your Facebook Language

If you use Facebook, chances are you already have a pretty good idea how to use it. So why not switch it to your target language for some bonus immersion? Here’s how:

  1. Open the account dropdown menu at the top right corner of Facebook and choose Account Settings.
  2. Next to Language, click the Edit link.
  3. Click on your target language and then click on Save Changes.

Easy! You’ll be “Me Gusta”-ing things in no time!

Change your Smartphone’s Language

For iPhones:

  • Settings -> General -> International -> Language -> Español

For Androids:

  • Settings -> Language and Keyboard -> Select Language -> Español

Use the Language Immersion for Chrome Extension

There’s a pretty popular Chrome Extension out there right now called
Language Immersion for Chrome. It lets you pick your language and immersion level, and then it will use Google Translate to automatically translate your favorite websites into your target language. Since Google Translate supports 64 different languages, the extension does too.

Of course, Google Translate isn’t perfect, and sometimes it’s even bad. But using the extension will still give you some exposure to the language you’re trying to learn.

Download a Foreign Language Client for Diablo 3

Like playing games? Addicted to Diablo 3? Also want to learn a foreign language? Great! Just download a foreign language client for Diablo 3 and you’ll get to satisfy your gaming addiction and learn something at the same time. Here’s how:

  1. Sign in to your Battle.net account.
  2. Click on Account.
  3. Click on Diablo 3 (assuming you’ve already purchased it).

    diablo_account

  4. Click on Download Game Client.

    diablo_game_client

  5. Verify your age (if necessary).
  6. Under Full Game Client, and next to English (US), click on Change.

    diablo_change_language

  7. Now click on your target language, and then click on Save.

    diablo_espanol

  8. Now the “Windows” or “Mac” links should be enabled. Click on your OS to download the game client downloader in your target language. Note that some languages appear to only support Windows.
  9. Once the downloader is downloaded, run it to start downloading the client in your target language. For me I had to re-download the full 8 gigabytes for Spanish, but it was totally worth it.

Once you’re set up with your new language, you can play Diablo and learn Spanish (or German, French, Italian, Polish, Portuguese, Korean, or Chinese).

diablo_characters_espanol

The whole game has been localized by Blizzard, and they did a really good job. I’ve found that every cut scene, every conversation, and every part of the interface has been localized to Spanish. In other words, total immersion. My favorite is probably when my Templar yells “Lo conseguimos!” (we have done it!).

I recommend beating the game once in English and then playing through your second time in your foreign language of choice. That way you’ll have a pretty good idea of the story and what’s going on, and can deduce words and phrases by context. Actually, you’ll be able to figure out the meaning of almost every word in the target language based on the inherent context of the game itself, which is awesome!

8 Reasons Why Climbing is the Best Sport Ever

I believe that one of the best ways to maintain a healthy level of personal fitness is to find a sport you enjoy, rather than a workout you can tolerate. I think it’s really common these days for people to think that the only way to get fit is to join a gym, resolve to hit the elliptical three times a week, and maybe do some weight training, or circuit training, or whatever.

Although working out like this will keep you fit, the ultimate problem is that it’s boring. Have you ever seen a bunch of people on an elliptical, or walking on a treadmill, who appear to be enjoying it? Hardly! For most people it’s mostly a slog; a slow process of watching your workout timer run out and trying not to collapse.

Sports are different. Sports trick you into getting fit, in some pretty awesome ways:

  • Intellectual Stimulation – Any sport worth playing involves an intellectual strategy required to win. This makes things interesting, and provides a distraction from the physical effort. You hardly even notice that you’re working out or working hard, because you’re so focused on the game, and you can put a lot more energy and effort into physical activity than you would be able to otherwise.
  • Team Focus – A sport is not really a sport without some kind of team. We work harder to “win” when there are others around to motivate us and share in our success.

I think everyone should have at least one sport that they love and that they do regularly. While I enjoy a wide variety of sports, personally I think rock climbing is my favorite, and here’s why:

1) Climbing is an excellent workout.

cliffhanger-1
If you like muscles, anyway.

Climbing requires the use of your whole body: Your fingers to hold on to the rock, your biceps and back muscles to pull yourself up, your toes to step on tiny feet, your calves to step up on your feet, your quads to stand up on your legs, and your abs / core to maintain body stability. In short, it’s a really good anaerobic workout that is going to give you a strong back, strong biceps, strong abs, and yes, killer forearms =)

Not only that, studies have shown that rock climbing is classified somewhere between excellent to superior in terms of its aerobic profile, especially during sustained climbs. It’s not at all uncommon to find yourself breathing hard both during a hard route as well as afterward.

Lastly, sustained climbing burns quite a few calories. Estimates vary from about 400 to 800 calories burned per hour, and of course it depends on your weight and the amount of exertion, but a day of climbing can definitely help burn excess calories, especially if you spend all day climbing a multipitch route.

2) Climbing is extremely intellectually stimulating.

cliffhanger-1
Not just an event in J-Tree.

Most non-climbers think of climbing as being mainly a matter of having strong upper-body strength and muscling your way up a rock face. Honestly, this couldn’t be further from the truth. Although upper-body strengh is important, there are two factors that are just as important or more for being successful on the rock: technique and mental focus.

Climbing technique can be thought of as any physical mechanic used to make any given climb easier. There are innumerable techniques used to achieve this, but they all basically achieve the same goal of conserving your strength for as long as possible. Efficiency of movement is everything. Some keystones of effective technique are:

  • Put as much weight on your legs as possible. You can always tell the new climbers from the experienced ones, especially guys, because they try to just muscle up every route with no regard whatsoever for their feet. And then they are surprised when they can only climb a couple of routes and then burn out.
  • Don’t overgrip. Climbing can be pretty scary at first, which is why almost every new climber tends to grip the rock like they’re hanging on for dear life, even if they’re toproping (and therefore relatively safe). Fighting this urge and using the least necessary force to use each hold is an important technique to master.
  • Use balance to your advantage. Balance is everything in climbing, so much so that I like to think of climbing as vertical dancing. Typically forward movement involves balancing your body weight between three points of contact (hands and feet) and using the free hand or foot to move upward. Changing your body position and balance allows you to weight the holds in an optimal direction and expend the least possible amount of effort.
  • Sequence is everything. Moving your limbs and shifting your body weight in a specific, sequenced, strategic way is of tantamount importance, especially on bouldering routes, which typically require such a careful technique, strategy, and sequence that they are called boulder problems – climbing them is like solving a puzzle.

3) Climbing makes you feel like a badass.

cliffhanger-1
Tell me this isn’t badass.

Climbing is pretty exhilirating. It’s hard not to feel awesome when you’ve just sent a route that you’ve been working on for weeks or months. It’s also hard not to feel like a badass when you do a multipitch, climb hundreds of feet in a day, and live to tell the tale.

A big part of climbing has to do with facing your fears. When leading a route, you sometimes get into situations where you are above the last bolt (facing a potentially big fall), and you have to master your fear in order to make the moves necessary to reach the next bolt and clip your rope into it. Looking fear in the face and giving it the middle finger in order to make the next clip is the ultimate adrenaline rush.

I mentioned mental focus in the last item, and it’s just as important as physical fitness and technique. Facing your fears, visualizing success, and committing completely to the climb you’re on are all necessary to send your hardest projects. When you’re climbing, there’s no time to think about the bills you have to pay or any other worldy concerns – it’s just you and the rock.

Climbing sometimes reminds me of Fight Club. It doesn’t really matter what your boss thinks of you during the work week. He doesn’t know that on the weekends you’re scaling rock faces, earning cuts and bruises as badges of honor to show that you tangled with the rock and you won. In other words, after climbing, everything else in your life gets the volume turned down.

4) Climbing gives you a great excuse to visit beautiful areas that you never would otherwise.

Climbing areas are almost always beautiful areas. Consider these photos:

potrero-mx
El Potrero Chico, MX

smith-sunrise
Smith Rock, OR

squamish-bc
Squamish, BC

tonsai-thailand
Tonsai, Thailand

But without climbing, I would have no real reason to go visit these places, or at least not a compelling enough reason to do so.

When I was younger I used to go camping a lot with my family, and although it was kind of interesting being out in nature, I found it pretty boring sitting around in a tent or camper all day, with no real purpose for being there. But climbing gives you a really good excuse to go camping somewhere – you camp in order to climb! So instead of reading books, playing cards, or fishing during the day (yawn), you get to scale some beautiful rock walls instead =)

5) Climbing is a relatively inexpensive sport.

dirtbag

Okay, so climbing is not the cheapest sport in the world, but it’s not the most expensive one either. Outdoor sport climbing is pretty much free once you have some basic gear:

  • Climbing shoes – $100
  • Harness – $50
  • Helmet – $50
  • Chalk Bag – $20
  • Quickdraws – $120 (splittable)
  • Rope – $150 to $200 (splittable)

Typically a group of two climbers only need one set of quickdraws and one rope between them, so that makes the per-person gear cost around $350 and you’re set for at least a year or two.

Other than that, you only need to pay for food, gas, and camping fees when you can’t avoid them. In fact, climbers are famous (or infamous) for being so committed to climbing that they often resort to dirtbagging. Few other sports have this kind of anti-materialistic, spend-nothing mentality. And unlike ski bums, who are really just skiiers / snowboarders who have jobs near the slopes in order to pay for their lift tickets and their apartment, climbers can actually get away with spending next to nothing for their sport.

6) Climbing can be as individual or as communal as you want it to be.

Some sports, like baseball for example, require a cadre of people to play at once. You simply cannot play without getting 18 people together at the same place and time. Typically climbers organize themselves into two-person teams, where one person belays while the other climbs, but this is not the only way to climb.

If you’d rather climb as an individual, you can always go bouldering at a local rock gym (if there is one in your area), and for some, that is enough. Another option, if you’ve got the gear and the skills to do so, is called rope soloing, where you set up a system to auto-belay yourself while you climb a route.

On the other hand, if you want to bring several of your friends out climbing, you can do that too as long as everyone has rock shoes and a harness. Typically when sport climbing, one or two people will take turns leading routes to set them up on toprope, and then everyone else takes turns climbing the routes that are set up.

7) Climbing is easy to train for.

Don’t live super close to the rock? Live in a city and have a steady job? No problem – climbing gyms exist in nearly every urban area, at least in the States, and are an excellent way to train for climbing when you can’t make it out to a real crag. Compare that to snowboarding or surfing, where there’s really no way to practice other than finding a mountain with snow on it or an ocean with waves.

And again, unlike most team sports, you don’t need a cadre of friends to practice climbing, all you need is a bouldering gym and some shoes.

8) Climbers are typically some of the nicest, most relaxed people you will ever meet.

There are jerks and egoists in nearly every sport, including climbing, but for the most part climbers are very laid back and easy to get along with. It’s part of the anti-materialistic, naturalist mindset of climbers. It’s pretty typical when bouldering indoors to share some banter with your neighbors about how to climb certain routes, and it’s also very typical when climbing outside to take turns on routes and share a bit.

I spent most of last winter (2010 -> 2011) camping and climbing in El Potrero Chico, Mexico, and it was an awesome experience, in no small part because of the community there. I met dozens of awesome climbers that were all great people to hang out with when we weren’t on the rock. It’s typically pretty easy to find climbing partners in the popular climbing areas, and not at all uncommon to run into some climbers you’ve met before in different areas. Other sports just don’t have this kind of community.