My Career

This is broken off from my about page so I can do a deep dive. If you're only interested in my resume/CV, you can have it in NFO text format like you just downloaded a scene release from a BBS, a HTML version of it because ANSI art is too hard, or a PDF if you're too skeeved out by this being a furry blog as it is and you need something vanilla to send to human resources. If you're here for the backstory, keep reading. Or don't. I'm a web page, not a cop.

Freelance

Around 2003, I started doing freelance jobs on Rent-a-Coder. Usually, I would do more sysadminny things that didn't tend to get a lot of people bidding, like making ImageMagick work correctly with a newer version of PHP for an adult website (you can calculate whether this should have been permissible in your jurisdiction on your own). Eventually, I did some work for a company called Poseidon Imaging, and I formed a long-time relationship with the owner. We ended up spitballing some ideas for the early ecosystem of social apps and what is now known as "No-Code" tooling, and I built when I could. We ended up with the skeleton of a "No-Code" tool that didn't end up going any further that was written in Rails.

Around 2007, we pivoted to a social app (at the time targeting Facebook) that let people find places around them, mark themselves as patrons, get updates and deals, leave reviews/ratings, and discover new places in their neighborhood. It was a Rails app again, but it used CouchDB as its database and did quite a lot with the Haversine formula and was really flexible about the kind of information that it would allow the owner of a place to plug into their page since it used a document database. We had a full-scale prototype that we publicly launched on the same day as the 2008 F8 Facebook developer conference....where they announced a first-party app that did nearly the same thing! We pivoted once again to turn the app into a mobile-first experience, and it saw some adoption in Austin, TX, but I could not spend enough time on it and much better funded startups more or less ate our lunch (e.g., Perka, now Clover, did many of the same things).

I shut down the server in 2012.

Oklahoma State University Institute of Technology - Okmulgee

I had a bunch of roles at OSUIT. I started off as a work study doing computer repair and IT helpdesk stuff when I started school there in 2006. Eventually, I got a more permanent position with more hours doing much the same thing. Recall that concurrent to this, I was doing freelance web work and active in a bunch of communities on Freenode. Around 2008, the webmaster at OSUIT moved to a different state, and I filled in as the temporary webmaster. I maintained the website, updated all of the content (since there was no content management system), and performed the massive number of manual processes that had to be done to keep the university's web systems working. I also sort of ended up with de facto ownership over anything with http:// at the beginning at the university, since it all ended up on my servers.

In 2009, I started doing this job full-time and got more involved in developing web applications (while I was part-time/temporary, there was a moratorium on new application development). The site started off as mostly HTML/PHP, and I ended up building a content management system with a WYSIWYG editor in Rails to serve the new pages. We launched a brand new site experience using HTML5 and doing things which were previously only possible with Flash at the same time as we launched the CMS. I ended up needing to keep some PHP pages around, and most of the employee site was a bunch of disjoint PHP apps, so there were really complicated Apache rewrites to make sure that traffic was routed properly. Creating the CMS was ultimately a waste of time, because nearly every department head felt it was not their job to write content about their department, so I ended up being one of the only users of it despite it being intended (and requested!) for department heads to be able to update their own pages.

Besides the ambitious HTML5 site, I also maintained extensive documentation/runbooks in our internal SharePoint (which the main campus promptly deleted without backups shortly after I quit because they "didn't think we used SharePoint"), wrote a few kiosk apps in Visual Basic 6 (one allowed people to scan their badges to determine if they are a current student/faculty/staff or not at the gym), maintained a VMware ESXi cluster, piloted an early mobile site, transitioned the university as we rebranded from OSU-Okmulgee to OSU Institute of Technology, fixed the ID card printer's many misconfigurations and incorrect branding, shot and edited videos, made sure that video could be streamed from our website by anyone with an Internet connection (we had to support dialup) in the best quality possible by their computer, and was at the top of the phone tree for disseminating emergency alerts and closure information (alongside and a backup for folks who would call all the TV stations).

MacroSolve / Illume Mobile / Anyware Mobile Solutions / DecisionPoint Systems

In 2011, I started at a company who produced custom mobile apps (often for less than it cost to make them -- more on that later). I worked on the frontend and backend for several apps, though I can't remember most of them. All the backends were Rails, and the frontends were usually PhoneGap/Cordova. We also experimented with Titanium (which I hated) and built a few large apps with RhoMobile. I even became a RhoMobile community ambassador, active in forums, teaching classes, and testing on odd devices. Most of our apps were enterprise-focused and distributed via private stores, though some made it to the public app stores.

Eventually, we created our own toolkit inspired by Qt/QML and XAML. Clients could dynamically create native UI elements from server-provided definitions. We used a root container -- usually a vertical box -- with elements that could be horizontal or vertical containers themselves. You could configure these elements to scroll, have fixed sizes, or fit content. We also allowed custom widgets that referenced types the server didn't know about but the client did, enabling unique interactions and controls. The toolkit supported navigation, app triggering, embedding WebViews, vector graphics, and OS-specific images/layouts. It let you build native UI apps that were editable on a website. We pre-loaded app data in the stores, but theoretically, it could all be updated on the fly.

This was cool because, even though apps that are essentially web pages aren't great user experiences (I'm typing this in Visual Studio Code while running multiple Chromium instances in Electron), our toolkit apps were as smooth as custom-designed ones but easier to create than HTML-based apps. Our business mostly revolved around custom "business card" apps that went over budget because we underpriced them, so this toolkit would've been a huge win for profitability. We had live apps on Android, iOS, and the web, and I even prototyped apps for Windows Phone 7/8 and Linux via QtQuick.

Unfortunately, we sold this to just one customer -- TGI Friday's -- and it worked well at scale long after I left. The sales team was more interested in selling old Windows CE devices for higher margins, so we kept losing money on custom apps and bet everything on a Microsoft OS that was hard to develop for due to outdated Visual Studios.

Speaking of Windows CE, my last project there was a disaster. Our sole Windows CE developer had built an entire app that was just a facade. We only discovered this during UAT when the app wasn't updating. It turned out he couldn't parse JSON correctly, so he manually updated WinForms code daily to match test data. The device made the API call, but it never did anything with the data. This was bad. I had to jump in, learn Windows CE and C#, and fix the mess. I ended up spending one week onsite in San Francisco with the customer and one week back in Tulsa for more than 6 months. The customer was awful, with unreasonable demands like the device needing to return to its exact state after a battery removal, so I started looking for a new job.

Other bad decisions included the company enforcing a broad software patent covering the entire concept of an app. Eventually, parts of the company were sold off, and the patent holder became a patent troll while the development shop I worked for became a subsidiary of another company. The patent was eventually defeated, but the press ignored the fact that we used to develop software, and some people even found me on LinkedIn to berate me about the company's unrelated legal battles. Don't do that.

ART19 / Amazon / Gallo Digital

In 2014, I started working as the second engineer at a podcasting startup called ART19 (named for Article 19 of the UN Universal Declaration of Human Rights). Early on, they were getting investment from a lawyer in exchange for building out a product called Leverage, which allowed lawyers to treat thousands of small cases similarly to a class action. I helped with some scaling of Leverage, but spent the first 6-8 months designing and building out ART19, with collaboration and direction from the CEO and CTO (the CTO had built a prototype before and we tried to avoid the same things that didn't work there). I eventually was able to hire some of my coworkers from DecisionPoint, and for a long time, we were only 3 or 4 engineers. ART19 was acquired by Amazon in 2021 and placed under Amazon Music, and then eventually Wondery. At acquisition, we had 7 engineers.

While building ART19, I focused a lot on making the best user experience for publishers, and tightly integrating all monetization channels back to the publisher. This is in contrast to our competitors, who primarily focused on the ad tech side and delivered an experience for publishers that was lacking. This radically different way of thinking about serving podcasts and doing dynamic ad insertion allowed us to build some very tight relationships with our customers, and eventually expand to serving billions of monthly podcast downloads. ART19's customers tend to be huge podcast networks like Wondery, and for the most part, our customers are rabid fans. I've heard customers refer to the work that I did as delivering an experience that was as intuitive as the iPhone.

ART19 is a Ruby on Rails monolith, built using a resource-oriented architecture philosophy with a handful of supporting services to do tasks like transcoding or to provide a push notification channel. It serves thousands of transactions per second, with a latency target of around 50ms. With the benefit of hindsight and the knowledge that ART19 operates at impressive scale, the only major thing I would do differently about the architecture is that I would not have a client-side single page application (ART19 uses Ember.js), and instead use one of the libraries available for Ruby on Rails that provide for server-side rendering that is able to then load client-side and work like a single page application (like Hotwire/Turbo, for example). In my now 20 years of experience with Ruby on Rails, I can confidently say that Rails scales just fine and Ruby is fast enough.

What's Next?

I don't know. I've been trying to move to Principal Engineer since the day we got acquired and I discovered that despite doing Principal Engineer stuff for years and mostly building the thing they acquired, I didn't start at Amazon as a Principal Engineer. The process for promotion is onerous, and it is incredibly unlikely that I will be able to get the right combination of people to motivate my promotion on a good day.

But it's not really a good day anymore. I am finding myself involved in fewer strategic decisions, frustrating senior leadership because I don't go to the office and am very open that return to office is bullshit, and significantly deteriorating my mental health by being constantly under stress.

Couple this with the "put AI everywhere" death march and communication challenges I face by being autistic, it really is not a fun place to work anymore. I'm not building cool shit nobody has ever built before anymore, and my opinions on software design frequently clash with those of Amazon, despite having a track record of being extremely successful with software designed according to my opinions.

So... what do I think would be cool? I definitely don't want to work on any AI or cryptocurrency bullshit, so that's limiting. I would appreciate having more neurodivergent coworkers. Maybe at a transportation agency, developer tooling company, or datacenter/network operations-related company. Maybe in information security, or maybe not, because information security jobs at places that don't make instruments of war are uncommon.

Above all else, though, I want to work somewhere that I am accepted for who I am, and not who I have to put extraordinary amounts of effort into masking to be... like it was before ART19 got acquired. It would also be nice if my next job were the type of place that would simply not profit from selling anti-transgender products and who would actually enforce zero tolerance policies for hate speech. If this resonates with you and you're hiring, hit me up at my first name at this domain name.