Tinkerer, free software generalist, and online community organizer.
I've done a lot of different things so it's difficult to list everything in
detail, but some of my major fields of work include:
- software development
- firmware development
- quality assurance
- system and network administration
- linux distro development
- web site, portal, framework, and backend development
- database design and administration
- embedded applications
- graphic / game development
- audio/video processing
- online community management
- customer and client support
- technical documentation
- writing and editing articles
- gluing systems together to build custom solutions
I've used way too many individual tools and technologies to list
everything individually, but below are some which I enjoyed or use
Linux distros mostly (especially Debian and Ubuntu), but also some other
Unixes and occasional experience with Windows.
Scheme, tcl/Tk, Assembly; and I enjoy learning other languages.
Bzr + Launchpad, Git + Github, Subversion, make, Vim,
SWIG, Bugzilla, Trac, Request Tracker, Issue Tracker, etc...
Flask, Zope, Plone, Drupal, Cheetah, Markdown, ...
Familiar with accessibility techniques, section 508, and W3C standards.
PostgreSQL, MySQL, SQLite, SQLalchemy, Peewee.
Networking / Administration:
Familiar with ftp, http, ssh, telnet, smtp, nntp, pop3, ntp/xtp, samba,
dhcp, nfs, tcp/ip, etc... Routing via iptables, ipchains, Shorewall, NAT,
vtun, ssh, mesh networks, 802.3, 802.11, ... Network monitoring with MRTG,
SNMP, Big Brother, smokeping, nmap, kismet, tcpdump... Email admin with
postfix, procmail, sendmail, ssmtp, DSPAM, spamprobe, spamassassin,
fetchmail. DNS admin with bind.
2D / 3D animation, image morphing, GIMP, Inkscape, Blender, Alias Studio,
Maya, Image Alchemy, ImageMagick, Alias Composer.
2D, 3D, framebuffer, computer vision, raytracing, image morphing, image
processing and filtering, sprites, widgets, s/z-buffering, graphic file
formats, discrete physics simulation, OpenGL, GTK+, TK, SDL, Qt, and custom
Fairly broad experience configuring hardware ranging from Linux PDAs to
3-ton cellular servers, including a variety of notebooks, workstations,
and servers in-between.
Familiar with standard productivity tools such as Office, Outlook, IE,
Investigating errors, optimizing processes,
embedded Linux (iPaq, Zaurus, handhelds.org, Familiar, OpenZaurus, Python, GTK+, ...),
eTexts / eBooks, document archival,
audio/video encoding and streaming (Ogg, DivX/XviD, mencoder, ...),
I've been involved in making Ubuntu, Ubuntu Touch, Ubuntu Snappy, Yellow
Dog Linux, Handhelds.org Familiar Linux, Fedora, RHEL, and SLES.
This has meant wearing many different hats... for example:
dissecting phones to automate testing and measurements,
writing OS installers,
designing team work processes,
helping users and being their voice within a company,
breaking the kernel on million-dollar servers to make sure they're solid,
doing demos at trade shows,
putting out fires,
automating OS and test harness deployment,
debugging all manner of problems,
teaching coworkers at sprints,
doing forensic analysis of server logs,
designing tech architecture,
automating anything tedious my coworkers have to do,
and sometimes even making new core tools which still get used over a decade later.
This may sound ridiculous, but there is such a thing as flashlight
enthusiasts... and I seem to be their queen.
I maintain the
for several large and thriving
people who love shiny things.
I also wrote much of the firmware the community uses, and somehow
ended up with fans all over the world. XKCD even made a
comic about us. People also
seem to like the UI diagrams I make for lights. For example:
We basically made our own version of Kickstarter so the
community can get the products we want, and I've been one of the main
figures in those efforts. Though only a hobby, we've managed to flip
over an industry, just for fun.
The first time I got slashdotted was when I released LCDproc back in
1998. That accidentally saved a dying company and resulted in a trip
to Canada to meet them, which was fun. Now, 20+ years later, the
project is still alive and has a bunch of spinoffs. I even got my old
LCD out again in 2018 to use it as a
general status meter for life.
Debian users: apt-get install lcdproc
Over time I've built a number of todo lists, task managers, dashboards,
and other productivty tools. These include:
a GTD-style todo list using plain text files,
Slate, a bullet journal-style daily organizer,
Xactivity, an automatic time tracker which sorts activity into
buckets based on time spent per window,
Woody, an outliner with task management features,
and a dashboard
to merge together any number of arbitrary data sources for an overall
view of how things are going.
When a remote arctic island was classified as an economic disaster area
due to overfishing, I went there to set up internet access and web-based
community organization tools, and to teach people how to make a living
online. The isolated community now has solid and sustainable
A friend and I made the video systems, piloting systems, and other
software for a deep sea remote-control mini-sub with stereo vision.
The idea was that a professor in Kansas could pilot it real-time
during class from thousands of miles away, or otherwise do remote
deep-sea research. Fun project, but then DARPA bought it and made
During the height of the PC demoscene, I made a hobby out of watching
every new demo and then figuring out how to implement the same effects
the demo used, then releasing the code under an open license. Several
of these were included with the SDL gaming library for a while, and
every once in a while I find my old code in surprising places. Probably
the most popular was a
/ swimming pool simulation.
I'm always making some sort of new toy. Some of
my past projects included a bunch of game/puzzle solvers, a RSVP book
reader, a computer vision tool to find objects in images, a facial
recognition engine, a file manager and media launcher, a small suite of
Linux PDA tools, a RPN calculator app, a raytracer with focusable lens,
several demoscene effects which got popular enough to show up in
commercial products, a highly-organized photo manager, a text imitator
and insult generator, a web framework, a few clocks, some chat bots, etc.
Projects are on
the software part of my site,
plus Launchpad and Github.
- Valedictorian at Loveland High School, 1996.
- Graduated Cum Laude from CSU (Colorado State University) as a Computer
- Member of National Honor Society, Key Club, Act One, Thespian Society,
CSU Distinguished Scholars.
Hobbies and Other Interests
- solving puzzles and games with code
- circuit design (but I'm a noob)
- graphic design
- 3D animation
- graphics algorithms
- making complex ideas simple
- ... a little bit of everything ...
(we make Ubuntu Linux)
Infrastructure Systems Development Customer Support Engineer
Provided tier 2 and tier 3 support for millions of users by myself, plus half of tier 1.
Built and improved infrastructure for customer support, including ticket
systems, FAQs, knowledge bases, support maps, and process automation
tools. Optimized, automated, and documented best practices. Defined and
created ways to measure and prioritize support and bugs. Led the
company's community of practice for customer support, facilitating
collaboration and sharing while leading efforts to improve our practices
and technology. Did forensic investigations on production systems for
logins, payments, and cloud services. Led efforts to build support into
our app market and offload tickets to individual vendors.
2011-02-28 - 2017-04-11
Fort Collins, CO
Linux QA Engineer
Contributed to overall test objectives, approaches and plans. Developed
new infrastructure as necessary to enhance testing efficiency. Developed
new tests to cover specific features and functionality. Ensured QA test
activities were coordinated with program release schedules, and executed
on schedule. Worked with other intercompany organizations, the open
source community, and external test groups to leverage and partner for
2006-05-30 - 2010-11-22
I perform a variety of services for clients, including the
- admin, troubleshoot, and maintain servers and networks
- perform security audits and address security problems
- manage email, dns, web services, databases, backups, security, etc
- install / maintain wireless/wired networks
- create web sites, portals, and stores
- integrate systems and software to solve client issues
- design and develop custom software
- teach basic linux use, web design, and organization skills
- provide 24/7 tech support
- write technical documentation
2000-06-01 - 2007-01-01
References available upon request.