Wesley Beary

13 February 2011 3 Comments

Who is Wesley Beary?

I like learning and I learn by coding, so I code a lot.  And I reinvent a lot of wheels, for me its easier to learn about something by building it than by taking an existing thing apart.  In a lot of ways these things have been pretty defining for my career.  I started humbly enough as a rails developer but these days I’m the maintainer of several open source projects, one of which I have the good fortune to be paid to work on (fog, more on that later).

Where and when did you start programming?

When I was still pretty young (6ish perhaps) my dad brought home a Kaypro II, and it was pretty game changing.  At first I just enjoyed trying the different games and stuff but it wasn’t very long before I had typed every single example program from the books into MBasic to see what I could do.  I even made some small forays into writing my own programs, but mostly I wouldn’t really get into that until high school and on.

Why Ruby?

I really got into programming from a desire to do game development. That really drove my experience of programming as a teenager and on. That lead to the (probably terrible) choice to pick up C++ as my first serious language.  I did that by reading books and online stuff, because they didn’t teach any programming in my high school.  I added a little html and css for good measure, but mostly because it just seemed like everybody should know a bit of this.

College was somewhat similar, with classes being more or less interesting to me based on their perceived applicability to games. There I expanded by learning Scheme, Java and C.  C++.  I was lucky enough to have an internship with a game company and go to the Game Developers Conference then.  All very exciting, but by the time I left college game development had lost some of its charm.  I ended up doing tech support jobs and being bored a lot.  From there I looked to get back into programming and decided I wanted to do dynamic web stuff. Luckily this was right around the time that the famous DHH blog in 15 minutes video had come out so I found that, tried it and was hooked.
These days I don’t use Rails too much, but I’ve been way more productive and happy in Ruby, so its hard to imagine going back.

About Fog?

fog is a cloud services library for Ruby.  It started out pretty humbly as a library for Amazon’s SimpleDB, then got S3 support, then EC2 and then Rackspace and before you know it the thing has legs of its own.  Once it started getting multiple providers it became clear that just exposing their various API’s in Ruby wasn’t going to cut it and so I started working on the abstractions that have turned out (I think) pretty well.  I can definitely do a lot more, a lot faster, across clouds, without docs.  Its a lovely and empowering thing that I hope to share with more developers.

It started out as a hobby type project, but quickly became like another job.  I would leave work to go work on fog issues, sleep, work, etc.  So thankfully I talked to Engine Yard and we agreed that I should move from my old engineering role to maintaining and developing fog full time.  It has been an amazing opportunity and I’ve learned a lot and moved things along much further and faster than I could have without it. It is really a great community out there and I’m happy to give back and get to interact and help out so many people.

What does your typical day look like?

I usually get up about an hour before I need to be on the train, shower and eat a quick breakfast while getting an overview of my inbox.  Once I actually get into the office I try to get through my correspondence for the day.  Outside the normal emails, messages, tweets, etc I frequently have new issues or pull requests as well.  I try to get through all that kind of stuff by lunch time so I can work on the tasks I’ve scheduled for myself in the afternoon.

Afternoons are a bit trickier. Assuming I’ve finished other stuff I try to work on the stuff that is probably easiest for me to do rather than others. Sometimes this is fixing really specific bugs or perhaps fixing some of the internals of fog that most users don’t see. Other times it might just be responding to demand and getting a new provider or service started. One way or another I try to dedicate most of my afternoons to actually coding. That doesn’t mean it always works though, I also end up spending time on blog posts, conference proposals, etc. The tricky thing about a position like mine is that when you work on open source you frequently end up having hundreds or thousands of bosses instead of just one. So, long answer aside, the short answer is that I do my best to pick what seems most important and dig in.

What do you do in your free time?

Around dinner time I try to get out of the office and head home. In the past I would then throw all my free time at fog, but I do my best to avoid this now. I know from experience that if I’m not careful about this I can get burned out pretty quickly. Though I don’t try to work on games much any more I still really like them, so I play a lot of video games and board games when I can find people. I still do some coding in my free time, but usually on unrelated projects. Lately that has been working some on a Dynamo (Amazon’s distributed key value store) clone and a BitCask (Basho’s log based local key value store) clone. It follows from my habit of trying to rewrite things that I think are interesting, as it is the best way I know to solidify my knowledge of them.

Current favorite apps?

The list is probably kind of skewed based on getting a Google Nexus S earlier this week and transitioning to Android after a couple years on iPhone. The native google apps for the android are really nice, and having ported my number to Google Voice I’m pretty excited about transcription and searchable history. I am also liking the no-cables syncing between computer and phone that DoubleTwist provides.  It has made transferring music to and from my phone much more convenient, not to mention the ability to transfer to AND from the phone has made transferring albums between work and home easier.  Besides the new shiny stuff I love vim (but still fall back to textmate for somethings) and of course github is indispensable.

What OS do you prefer?

I have Macs at work and home, but an Ubuntu netbook is my nearly constant companion and I wouldn’t think of anything but linux on a server. I enjoy macs on a day to day basis, they definitely have user experience locked down. Unfortunately user experience isn’t the only thing that is locked down, so I also appreciate the flexibility of linux machines.  I’m just willing to trade for the nice experience in cases where it matters less.

Small picture for your Workplace?

I sit off on the edge of the developer area these days, next to my boss @drnic and @adelcambre (in the background of photo). Headphones spend a lot of time on and once that happens I am relatively oblivious to the outside world while I work.

Name something that has inspired you recently?

It may sound strange but I have been getting a lot of inspiration from research papers. I have read the Dynamo paper many times, and I think I might actually get half of it by now.  From there it was a slippery slope though. The Cassandra paper was also interesting.  Both of these also had a bunch of papers in the footnotes that were interesting in their own right and were required reading to understand the whole thing. Most recently though I came upon the Bitcask paper and have run with that. It is an interesting application, but small enough that it can be fleshed out on my own in my free time.  I have the ruby implementation in progress called bitkeg on my github that has been fun and interesting to work on.

What do you prefer (and why)? Freelance work or full time employment?

I have just been doing full time for a while and I think that is likely to remain the case. Freelance should give more time and freedom, but in the end it seems like it just makes finding more work into your full time job. That just isn’t how I would prefer to spend my time.

What are your personal projects and goals for 2011?

I would kind of like to pull together some of the various pieces of code I’ve worked on to actually get the full distributed key value store working. That or something similar would give me a great use case for improving fog. But beyond that I’d like to start doing web development again, I’ve been so deep in low level coding that I miss that. I’ve been trying to dust off those skills and hope to make some small web projects over the next year, though I couldn’t tell you what they are going to be yet.

Tags: , ,

Leave a Reply