Software Creator
Portland, Oregon Area
Software Creator
Portland, Oregon Area
I do what needs to be done, and I do it well. If I don't know how to do it, I will learn from people, books, the web, and experimentation - simultaneously. I quickly learn the systems behind systems, and within a few days am able to flex any system in ways in which God Did Not Intend - and ways in which he did - to get the job done.
Stuff. Generic stuff. ;)
Talking with people, simple design, continuous flow, team management, metaprogramming, cleaning out legacy systems, starting companies, a little of everything.
(Computer Software industry)
November 2008 — Present (9 months)
Electron Cascade is my vision of a company done right. I'm trying to optimize it for adapability, rapid experimentation, and simple high quality in everything it does. We prove or disprove a new product direction - often in a new market - every 6 weeks. We then staff out and expand those we prove, while continuing to find new opportunities. As President, I help my people grow and set our culture and vision. As long as we're small, I also fill roles in marketing, software development, sales, and operations.
(Privately Held; 11-50 employees; Computer Software industry)
February 2006 — November 2008 (2 years 10 months)
We're building the best XP team in Portland, and one of the best in the world. Both the company and the team are committed to each other and to Agile development. We, as individuals, are willing to make the sacrifices and hard decisions, to develop the discipline, and to put in the effort to work together and make the best XP team around.
Before I joined, the team was already following a fairly good XP practice. I joined to help sharpen up the way that we did each of the practices. I'm teaching better ways to do tracking and planning, better design, better approaches to unit testing (and how it differs from other types of testing), and doing team building. I'm learning how to integrate XP with QA, some more new approaches to each of the above processes, and how to make databases agile.
We're often looking for kick-ass employees. If you are one (especially if I already know you are), ask me about open positions.
(Public Company; 11-50 employees; Computer Software industry)
May 2004 — December 2005 (1 year 8 months)
2-3 different projects at a time, varying from 1 man-week to several man-years, in nearly every domain. I've programmed drivers, business apps, and consumer apps, on Windows and Linux, and for software companies, telephony service companies, hardware vendors, and so on.
We get projects that have calicfied to the point where the original authors can no longer maintain them. We make them flexible again, then add new stuff. And we do it with shatever selection of technologies the original vendor chose.
We also do green field projects for nearly every domain. We only take the ones with tight budget / time criteria.
Generally, we do the hard projects. The Critical Path projects.
(Privately Held; 1-10 employees; Computer Software industry)
July 2003 — September 2003 (3 months)
I introduced anew team to Extreme Programming, and provided training for their in-house coach, as well as doing general programming. I was actually in operations, and provided significant experience at what it takes to make a business, as well as training in teambuilding and XP.
The company offers digital photo retouching services; the software team builds internal tools for scheduling, workflow management, order processing, and so on. These tools are written in Python, and are, in general, of only moderate complexity ( < 200 classes each). The main challenge is for the team to be efficient and extremely responsive to change. We were able to perform any change on our system at no more than a one-week delay without any schedule impact.
(Privately Held; 11-50 employees; Computer Software industry)
January 2002 — March 2003 (1 year 3 months)
With our change in product emphasis, I introduced Extreme Programming to Silver Platter. In this role, I was one of the two primary guides and teambuilders for our development group as we learned and eventually mastered Extreme Programming.
We built a distributed execution system for the running of MMOGs. It gave the same reliability, security, uptime, and central control characteristics as the more usual server farms, but was peer to peer.
We built it as a binary distribution library, with a client-server interface. Behind the scenes, it moved data and responsibility around all of the players of the game, performing all of the execution of the game on those machines, in a manner than made it impossible for any of those players to modify the gameplay, even with total control over their own machine.
In all, it ended up being over 5000 C++ classes. We built it in one year, with a team that grew from 3 to 8.
(Privately Held; 11-50 employees; Computer Software industry)
June 1999 — January 2002 (2 years 8 months)
I was co-founder and CTO for a startup. My team eventually grew to 25 people, divided between design and development departments. We were building a variety of projects in C++.
My primary duties were long-range planning and organization. Additionally, I served as a buffer between the CEO and the technical side of the company, smoothing out otherwise rough communications. As we were a start-up, I also performed a number of other duties - accounting, market analysis, and so on.
(Computer Software industry)
1999 — 2002 (3 years)
Ultimate frisbee, Agile Methodologies, Programming (as an avocation), Civ-like computer games