I thought I should write up what I consider to be one of the greatest webOS success stories to date: mine.

Back when this all started for me in June 2009, I had never written software more complicated than a simple shell script or possibly a UI to an Access database in Visual Basic for Applications.  In other words, I wasn’t a software developer, much less a web developer.

Sure, I knew what HTML was, but I had never really used it much.  CSS?  Totally foreign, “hard”, and scary.  Forget JavaScript, as I had been exposed to it from the enterprise software mindset of IBM.

So, I was in London when the Pre was released.  To be honest, I wasn’t much of a mobile device junkie back then (still not as hardcore as some), but I did have my awesome Treo 755p (last of the PalmOS devices) with me because I still had time to GeoCache and I had a great paperless system going with the Treo and a slick bluetooth GPS receiver.  Anyway, I started reading up on the Pre and its new webOS operating system while I was in London and decided that when I got home, I would upgrade to the Pre.

On the glorious day I got my Pre, I stumbled across the #webos channel on Freenode IRC.  Quickly, I found my way to #webos-internals.  Between those two channels, we worked together to figure out how to create our own simple apps and get them loaded on the device.  It was very exciting for me to be able to do that, even though my app was nothing more complicated than your typical “hello world” HTML example.  Just the power of being able to create my own app and use it on my own device was intoxicating.

At this point, I must admit a sickness I have.  For some reason, I really enjoy interfacing with databases in code.  I had previously hacked around with Drupal CMS and learned all sorts of horribly insecure ways to use PHP to access mySQL databases.  One of the first “serious” webOS projects I began was a GeoCaching application.  I wanted to store the waypoints in a Mojo database and leverage the GPS capabilities of the device, etc.

After puzzling out the basic flow of a Mojo app, the first thing I learned was how to parse the .gpx files (XML) into JavaScript objects.  It took me 3 days to finally understand what I was doing.  Once I had that capability, the next thing I wanted to do was figure out how to store those objects in the Mojo database.  This entailed learning about asynchronous methods (which is how Mojo database transactions are run) and an introduction to binding and “this” in JavaScript.  Now, even today, I can’t say that I know everything there is to know about binding and “this”, but imagine what it must have been like to go from never having a concept of those things to trying to write Mojo database transaction code.  If you can successfully appreciate that, then imagine how on top of the world I felt when I was finally able to write records and then to read them and display information in my app!

For my next trick, I wanted to use the GPS.  So, I had a simple canvas where I would draw an arrowhead pointing to the selected cache and even got it to where it would rotate correctly.  That took me about a week and a half of hardcore wtf-ing and headscratching.  But, when I was done, I had the basic functional pieces of what was going to be THE GeoCaching app for webOS.

Then, I went on vacation to the mountains of Colorado in July 2009.  When I returned home, a MUCH more highly polished GeoCaching app (which I can’t seem to locate now) was already available in the PreCentral (now webOS Nation) homebrew area.  I learned some lessons there.  But, rather than being depressed about my shortcomings, I decided to share what I had learned.  Thus, the Mojo database article at the webOS Internals wiki was born.  I cashed in on that one for a long time 😉

So, I decided that I wanted to write an app and see if people would use it.  I chose a very simple game to implement and over the course of the next 3 months, dove into the HTML and CSS side of things to learn about stuff I should have been paying attention to since 1995, which is when I first started working in “computers”.  As a humorous aside, I did technical support for IBM’s OS/2 operating system.  I always pick the technologically superior, but less marketed option.  I guess I’m a sucker for underdogs, too.  Looking back on the first app I publicized at PreCentral is an exercise in humility.  It is truly dreadful to behold, but plays as advertised.  But, that was the app that opened the door for me.

About a week or so after it was available (and 10K+ downloads), I noticed I had received a private message from someone purporting to work at Palm asking if I would like to have my app be available in the app catalog.  It seemed that Palm would be starting the developer program beta and I was being given the opportunity to be a part of it.  I still remember how excited I was and thinking “wow, and I’m not even a ‘real’ developer!”  Of course, I said I wanted to be part of it and then began that journey as a hobbyist app developer.

I only ever released a handful of apps for myself, but I used my knowledge of the submission and approval process to start freelancing as a webOS developer on Elance.  I felt that I was pretty good at taking someone else’s UI assets and app requirements and creating something that was rock-solid in its function.  I definitely didn’t get rich doing this, but I made a little money and learned a whole lot of JavaScript along the way.  My main client always raved about my work.

Time passed and we saw the Pre Plus and the Pixi Plus come out.  We saw Palm get purchased by HP.  In November 2010, there was a Developer Days event in New York, New York.  I so much wanted to be part of that because I just knew they’d be giving away Pre 2s (like they had given away Pre Pluses at previous events I had missed), but at the time our personal finances would not allow me to take a trip to New York.  That’s when I decided to really cash in on any reputation I might have in the awesome webOS community.  I started a ChipIn campaign to raise money for my airfare and hotel.  I posted once in the developer forum imploring anyone that I had helped to consider helping send me by chipping in and I might have tweeted once or twice about it.  I also went to my number one client from Elance for some support.  I think I raised the money in less than a week.  I was dumbfounded, grateful, and exceedingly happy about the way everything worked out.

While in New York, I met many of the people that I had only interacted with on IRC as well as some great Palm people and the inestimable Rod Whitby (whose hand I shook so hard I made him spill his beer, sorry about that Rod!).  I still felt out of my league as a “not developer” but I had a grand time nonetheless.  And, yes, they gave us Pre2s 🙂  They also introduced the Mojo replacement, Enyo.  I was very excited to see that because it was right up my alley.  I like to think in code and am a horrible UI designer.  Being able to code my layout by using JavaScript objects sounded great to me.  And, as we see now, it is.

After New York, it was back to my RealJob and RealLife but something had changed in me.  I was tired of my current job.  I had been doing it almost 8 years, and while I was really good at it, it failed to really ignite passion in me.  What was igniting that passion was writing webOS apps.

In February 2011, I was sitting in a hotel room in Bogota, Colombia when I saw a tweet about the “webOS SWAT” team.  Are you kidding me?  I want to be that!  I was thinking to myself “there’s no way, Dave, that you are qualified for something like that” but you know what?  I’m really glad I didn’t listen to myself.  I began tweeting about my interest.  The person running the @hp Twitter account contacted me asking what I thought the SWAT position would entail.  I gave my best 140 character answer.  The next day, I saw on LinkedIn the job description that was pretty much verbatim the bulleted responsibilities I had given @hp.  So, I knew at least I had nailed the job description 😉

I started making phone calls to contacts at Palm.  I started getting phone screens.  At every step I gave full disclosure and always opened with “I’m no web developer” and then would proceed to detail my true qualifications (awesome troubleshooting ability, public speaking, refusal to say “impossible”, etc.)  and my story of webOS life to that point.  My strategy worked well.  Eventually, they flew me out to Sunnyvale for a round of face-to-face interviews.

Those interviews were probably the toughest things I have done in my entire professional career.  Let me tell you, if you have never done it, writing code on a whiteboard is HARD.  Some of the advanced JavaScript questions I couldn’t answer.  But, what I could do is turn those problems into opportunities to learn.  I would take my best stab at it, then ask the interviewer to help me understand what was wrong and discussed with them their knowledge of the particular question and made sure I got them to help me understand the answer.  At the end of the process, while heading back to the airport in the taxi, I was sure that I had had my last hurrah and that, while a valiant effort had been made, there was no way they were going to hire me.

Once again, my internal doubt voice was incorrect.  I was offered a position on the SWAT team and started working there in May 2011.  It was one of my proudest moments when I got the nod.  I have forever been grateful for the opportunity and have always made sure to let them know that I will never go until I am forced out.

These last few months have been very trying and we had another tough day very recently where we lost really good people across many disciplines.  But, I am still here and I am still committed to making webOS succeed and making sure our developers share in that success.

I hope that sharing my journey from hobbyist developer to webOS SWAT Engineer helps inspire you to follow your passion, no matter what it is.  Life is far too short to do something you don’t love just to service debt or fit some arbitrary definition of “success.”


16 Responses to webOS Poster Child

  1. Kathryn says:

    I am so very proud of you, and thrilled you are doing what you love! Go ahead on, Dave!

  2. Kevin says:

    Great write up! webOS has lowered the barrier to entry for many developers and hopefully this will continue into the future.

  3. Colleen says:

    Amazing journey and I am so proud of you! What an awesome journal too – fascinating read! Love your passion….

  4. girlie_mac says:

    I really enjoy reading this. I can picture the whole excitement! and it reminds me of my early days as a homebrew developer, meeting Palm engineers at a local meetups, then I ended up working for Palm.

    and you just taught me a good lesson – refuse to say impossible 🙂

  5. Miles Clark says:

    There is nothing like doing what you like and liking what you do. Congratulations! Now……if I could just understand it….

  6. Bryan Leasot says:

    You are my hero!

    Awesome story. Inspiring, really. Makes me feel a bit more confident in my own abilities. I share a similar story to you, minus all the working for palm and being a hero stuff.

    Congrats, Dave 😉 Looking forward to many great things from webOS.

  7. rawdeadfish says:

    dave, i remember feeling and experiencing all of the same stuff as you, right from day 1, during that overnight that the first homebrew app was being hacked together. it was so exciting following the progress of devs in the forums and in irc. i past out of exhaustion about an hour before that first hack was completed… but when i woke up it was ready! i was so excited to come home from work that night to begin my own “first app”, yatz! i never got as far as working for palm (as you so luckily did), but i got to meet you in nyc, and that was a blast!

    the palm developer experience was one of the coolest things i’ve ever done in my life. what cool times they were.

    i’ll always remember seeing this: http://forums.webosnation.com/webos-development/184378-ok-rom-comes-4.html#post1661612

  8. Chirurgie says:

    Great read. As a Palm/webOS fan who always thought of making an app, what a great story. Hope you get to help make Open Source webOS a success

  9. Juergen says:

    You are only good in a job if you live your job and if you like what you are doing. Then it is a vocation, else it’s just a job. So keep going!
    Ahhhm… About the you will never leave, I recommend you to listen to Katie Melua’s new The Bit That I Don’t Get 😉

  10. Duncan says:

    This really inspires me – to go from a passion to being paid to do is an amazing feeling. I’m a graphic designer by trade and if this whole Leo thing hadn’t happened, I would of loved to of pushed myself – like you did – to work on webOS.

    I am trying my damndest to learn JS (thank you codeacademy!) so that I can actually contribute to webOS is some way. I’m getting there… slowly! Your story actually makes me think, well, if I put a bit more effort in then I might get somewhere 🙂

    Thanks for sharing, and best of luck on OS webOS.

  11. leapy says:

    inspiring tale. thanks from someone who recently has had to cross over to the dark side (android) and really misses his palm pre (v1).

  12. TeckieGirl says:

    you are so awesome and supportive…you make so happy and make me work that much harder for our guys and developers.
    I have a feeling things are going to turn around shortly and we have already been thru the fires and storms. I feel comfort you are the side of webOS 🙂

  13. Fred Patton says:

    Great post, Dave. Thanks for sharing your story. It really speaks to building skills and self-confidence through action, and pushing forward even if you think you’re not quite ready.

Leave a Reply

Your email address will not be published. Required fields are marked *