Continuing our interview series, the MiXiT team asked some questions to Pamela Fox who will be our final keynote speaker and who will do a talk about PhoneGap.
This interview was also published on the Duchess France Blog
Since discovering web programming as a kid (starting with Java applets, of course), Pamela Fox has loved using web technologies to make web apps and teaching other people how to use them. She went to USC for her bachelors & masters in computer science, spent five years at Google helping developers use the Maps and Wave APIs in their apps, and is now working on her own web apps using a mix of Python, JS, and HTML5. You could follow her on twitter or on G+. With Pamela, we will dive inside PhoneGap. She will speak about this topic at MiXiT and she will do the final keynote of the conference.
MiXiT Team : Who are you?
[Pamela Fox](/user/pamelafox) : I'm Pamela Fox, a 27-year old living in San Francisco. I don't really know "what" I am, but I know what I like doing: learning new things, making things, and teaching other people what i learn. I used to do that at Google in their developer relations group, but now I'm a "free-range developer" doing that on my own. I've been working on a nutrition-tracking service (eatdifferent.com) for almost a year now, and since I offer both web (Python/AppEngine) and mobile (PhoneGap/HTML5) interfaces for it, it's been a great learning experience.
MiXiT Team : Could you describe your typical day? Do you work all the day? [Pamela Fox](/user/pamelafox) : Well, first, our one-year-old kitty walks on my face until I wake up and feed him. Then I bike with my roommates to our local CrossFit gym for the 8am class (we never make it to the 6am or 7am ones!). After class, I set up my laptop and chargers in my co-working space and pretty much work for the rest of the day. I take a break to lunch at the Disqus office, as my boyfriend works there and his colleagues put up with me being a pretend employee for an hour each day. I end the day with either a dinner party, a meetup, or on the quiet days, a dinner with my roommates and crazy cats.
MiXiT Team : Which new tools/frameworks did you discover recently and that has inspired you? [Pamela Fox](/user/pamelafox) : At JSConf last week, I went to a talk by Ben Alman on Grunt, a build tool for JavaScript projects. You can write your configuration files in JavaScript to define tasks like compression and concatenation, and then run the tasks from the command-line. You can also set it to "watch" your files and automatically re-run tasks whenever the files change. I'm now halfway through replacing my Makefile with Grunt instead, and I'm much happier with this setup. Whenever I wanted to get something in my Makefile, I had to learn a new Unix command, and I just really hate Unix commands. Now, I can just use JavaScript, a language that I know and love. Productivity++!
MiXiT Team : What do you miss from your time at Google? What don’t you ? [Pamela Fox](/user/pamelafox) : I miss being around colleagues -- people all working on the same or similar project as you, people that you can have impromptu discussions with when you reach an obstacle. In a co-working space, everyone's working on such different projects, and many of them aren't developers or aren't using the same development stack as you, so you can't really go to them when you want to rant or rave about what you're working on. I think I now spend more time on Twitter because of that, because I can think of my followers as virtual colleagues. I don't miss being managed. Since my childhood, I've always been an independent worker and I don't respond well to being told what to do and feeling like my actions and progress are being watched. From what I'm told, Google doesn't manage as much as other companies (it's the only place I've ever worked), but it still does manage, and that's just not my thing. Similarly, I'm not good at being "mothered", and my mum has learnt that. :)
MiXiT Team : What would be your ideal technical stack for a webapp today ? [Pamela Fox](/user/pamelafox) : I would really love to be able to use the same language on the client and the server, and since JavaScript is the native language of the client, then JavaScript would be the ideal language for the server. Unfortunately, node.JS is the dominant server-side JavaScript framework, and from what I've seen, it is most suited to certain classes of applications, like those with real-time components. It's also only supported on some hosting platforms, and notably, it's *not* supported on App Engine, my platform of choice. So, I want to try the all-JS stack at some point, but only when I've found a project where it really makes sense.
MiXiT Team : You will talk about Phonegap at MiXiT. After months of development on your application, do you think you made a good choice ? [Pamela Fox](/user/pamelafox) : That's a great question. In using PhoneGap, I've had to spend a lot of time getting to know the iPhone and Android Webkit browsers, and I've discovered there are a *lot* of bugs in those browsers. If I used a mobile-optimized UI framework like jQuery mobile or Sencha touch, I would probably stay blissfully unaware of many of those bugs, since the frameworks tend to take care of them for you. But I didn't do that -- I went with a blend of microlibraries instead. So, yes, I've spent a lot of time trying to workaround browser bugs - time that I could have spent building out more features instead - but I like that I now have a deeper understanding of how mobile browsers work, and now I can share what I learnt with other developers so they don't have to spend as much time.
Thanks Pamela ! See you at MiXiT on Thursday 26 April at 3:20 p.m. for your PhoneGap talk, and at the end of the day for your final keynote!