My Story

My Story (Q1 2017)

I've been working on OpenStack code since before it was released.  I've been involved to various degrees in many parts of it's ecosystem - but primarily I work on the object storage system Swift.  The OpenStack community is ... different that other FOSS projects where I've contributed - django, eventlet, paste

I like storage and data stores.  I know how to treat a file-system and how the kernel treats a block device.  I've been known to monkey with fuse, ndb and even iscsi.  I could pass off as a postgres sysadmin to someone who didn't know better.  I'm sort of a redis fanboy.

I like Docker and what I've seen of lxd.  I've stopped getting miffed when zealots say "Containers are just like VMs but faster" and instead rephrase it in my head as "OR namespaced processes on COW filesystems and just as fast!".  I tried to scale up a single-user toy project using containers (I got nerd sniped by this online TCG my kids were playing and ended up reverse engineering the client/server protocol to game it's online trading market) - but ultimately wasn't satisfied with the memory and storage overhead once I started to count how much $$$ I'd have to give AWS per user... there's still a few folks using it - but... I'm planning on keeping a day job ;)

I started writing BASIC on an abandoned C=128 circa 1990, got a PC a few years later poked at Pascal and Borland C++ for fun.  I worked at a small ISP and ran the BBS.  In college Java and MS Visual C++ was all the rage; my data structures class was ANSI C; someone made me write ML.  I got into Linux - mainly Debian.  Vim.  I gigged around Stillwater, Tulsa and OKC in a punk band; we cut a demo cd; we opened for the All American Rejects (this is way before they were famous of course).

After graduating with a BS in CS, I took work as a BOFH.  I tried Gentoo.  I soldered a mod chip and flashed the BIOS on my original xbox.  I still use it to play MAME and NES roms with the kids.

Couple of years later I landed a Admin job at Rackspace in Texas.  RHEL and some Windows Server.  I scripted my job and crunched stupid amounts of tickets - so they made me work on automation full time.  I wrote a Twisted server that interacted with over a half dozen internal systems to drive automation processes by monitoring data from disparate sources, correlating events that would sometimes happen days apart; applying business logic and processing tasks - the users called it the MCP.  There was tons of other one-off stuff too; mostly python, with a bit of php, asp, vbscript, and java depending on what random legacy thing I needed to patch, work around or interact with.

Couple years of that and I got tapped to go help build the Rackspace Cloud.  It's all Ubuntu now.  I spend a year working mostly on Swift (Cloud Files) and Billing.  Eventually they put in me in charge of development for the Cloud Block Storage product.  In addition to designing and developing that product - I was also an advocate for our Continuos Integration process and all the tooling around automating test and deployment into branch environments; multiple virtual and physical staging and integration environments and our global production environment.  Been doing python development on distributed systems for 3-4 yrs.

Shortly after our successful launch of Rackspace CBS and crazy initial uptake - I went looking for something new and relocated here in the Bay to do more full stack work.  There's been plenty of cloud deployments and migrations, backend scaled out distributed message queue processing, and a nifty VPN secured 0MQ remote agent framework, but also front-end Django and JavaScript.  I've written enough rpm spec files and deb control files to understand why software distribution really is a hard problem worth solving.  I tried a Mac, it's a decent development environment - but I miss GNU/Linux.

Over the past few years I've been a primary driver on huge efforts with-in the upstream Swift community like Storage Policies, Erasure Coding and Global Clusters.  People seem interested when I talk at conferences about the solutions we've invented when solving these large scale distributed storage problems and how the small globally distributed community got there - my mom says she doesn't understand the videos.

After 10 years and millions of lines of python - it's hard for me to say I "know" other languages.  Sometimes it's hard to say I "know" python3 (have you seen f-strings!?).  But I use golang - I would say I'm semi-productive - just need a few more tweaks to my .vim plugins...

No comments: