I began working in the industry in the late 1990’s. I started my career writing Java and FORTRAN at a biomedical research lab in Buffalo, then got caught up in the first dot-com bubble working for a security, encryption, and biometrics startup writing C, C++, and PHP in Pasadena.
At the security startup, I began taking the lead on projects and managing small teams of equally young developers as we worked all hours trying to learn and deliver at the same time. Startup culture was an opportunity for smart, passionate young tech people to find themselves diving right into the deep end, making lots of naive mistakes while unearthing clever new solutions through that same naivety. I saw (and wrote) a lot of sloppy code but we pushed novel products to market and we did it quickly.
If only there had been an old hand around to give us tips now and then! We’d have worked just as hard but with lesser mistakes and fewer dead ends. It’s no wonder I try to play that old hand now myself.
After that bubble exploded, I slowed things down and transitioned from startups to more established companies. I worked for an A/V and automation hardware manufacturer that served high-end customers well before the Smart Home and IoT markets were to emerge 10 years later. Now I was able to study with more senior engineers and more proven methodoliges, working on low-level serial and network communications systems, embedded audio projects, and Windows UI work, mostly in C and C++.
Eventually, I had an opportunity to join a contract development firm and so shifted from independent work to subcontracting (and later employment) through them. I spent 7 years with that group, internalizing the ceaseless pace of the contract development industry in a way that I had only tasted on my own. Work in product companies, even those startups like the one I worked for early in my career, tend to have clear cycles of work: crunching into deadlines and then easing off afterwards as other business processes like product design or fundraising dominates organizational attention. Contracting load can ebb and flow with the markets and with marketing, but revolves entirely around working and delivering, with no allowance for the idle seat-warming that happens elsewhere. You are on when you are on. You are off when you are off. The work ethic it instills is unmatched.
At this contracting firm, I took opportunities to dramatically expand my role and responsibilities, participating in project management, recruiting, and sales alongside development. I also accepted projects with all sorts of new technologies and at all sorts of scale. Opportunity was everywhere and my technical and business senses sharpened dramatically.
As I took on more and more work across these responsibilities, I realized how much I enjoyed staying nimble and spreading myself across them all. I understood myself to be a mature generalist, capable of wearing dozens of hats as the need arised for each one. I had skills and experiences to offer in a very wide variety of contexts – far more than just development – and so much experience learning new ones that rapid learning became a honed skill in itself.
Internally, I began to brand myself as a SWAT Coder, volunteering to be the paratrooper dropped into distressed projects to turn around them around and to take on experimental work that required quick prototyping and innovation.
A couple years later, I took the brand out on its own and began to work independently again, accepting only the occasional subcontract through the contracting group. The second round of independence was immensely satisfying and I’ve largely stuck with it since, gradually expanding my freelance focus to include more business and process support services alongside the technical dirty work of SWAT coding.
I’ve briefly assumed some other full-time roles as CTO at a consumer media tech startup or as a contributibuting engineer for a promising enterprise tool startup, but ultimately kept circling back to the variety and independence of freelance work as advisor, consultant, reviewer, mentor, and coder.