Touching Up the Site

It’s been a few years since I updated this site, and now I want to update it again. I’ve tweaked the theme to be primarily dark, I’ll add some links to recent projects, and I’ll backdate some new posts to kind of make this a “journal” of my experience with software development.

Contacting Me

GitHub LinkedIn Right now, I don’t have much desire to be contacted by people who find me online. No offense. If you’re here, hello. I just hope you have a great day, and I hope you find something useful or amusing on my site.


Potterscore is a simple front-end score keeper. It is designed to be used at an in-person Harry Potter-themed party, with House Points nicely displayed on a large screen. It’s still a work in progress.


I enjoyed the Stock Market Game so much that I wanted to create another pandemic-friendly game people could play together over a voice/video call. On a whim, I decided to create a multiplayer version of minesweeper. Of course, other people had done this before, but everything I found online involved players working together on the same area of mines. I wanted my version to feel more original, so I decided that players would work on different minefields, but their fields would be linked.

Stock Market Game

I learned about the stock market game from my brother-in-law during the pandemic. We originally played it with the help of a spreadsheet, and it was a lot of fun. I decided to make a dedicated web app for playing the game. (It’s not really about the stock market, but “stock market game” is what we’ve always called it.) It’s a single page app with no backend, so it’s just about tracking game state in memory.

Space Trader Journal 2

Here’s my current plan for the code of Space Trader Returns. Space Trader is written in C, and I want to rewrite it in Go. These two languages have fairly similar syntax, and I think Go can express all the same concepts as C (and then some). So I’m converting the source files, mostly by hand. I’d love to design the perfect architecture for this before writing a single line of code, and I’d love to rewrite everything from scratch rather than tweaking C source code.

Space Trader Journal 1

A long time ago, in a galaxy far, far away, there was a game called Space Trader. Since smartphones hadn’t been invented yet, it ran on Palm devices. I was perhaps twelve years old at the time, and I loved to play this game. I spent weeks trading goods, fleeing from pirates and police, and trying to earn enough money to retire to my own moon. Like most software of days past, Space Trader has been all but forgotten.

Using Go

I chose to learn Go during my Programming Languages course in college, when we were told to find a new language to learn. I was tired of the chaos of JavaScript and PHP, and I was drawn to the idea of non-OO, statically typed code without manual memory management. While I haven’t built anything professional-grade with Go yet, I have used it to begin building two sites (one of which works!

On CSS Polyfills

I want to respond to “The Dark Side of Polyfilling CSS” by Philip Walton. At the end of the article is this hashtag: #makecssfatigueathing I disagree completely. Putting aside the fact that the word “fatigue” has only negative connotations, CSS is already different enough between browsers. If a CSS snippet’s meaning can be changed at will by JavaScript, then: There will be more code in the rendering pipeline, and therefore more bugs Scripts can change the meaning of valid CSS, interfering with the CSS author’s expectations and intentions Browser vendors can justify ignoring niche new features because the JS community will already have an implementation More JS has to be included in the page (yes, less than a polyfill, but a nonzero amount nonetheless) Instead of being processed by compiled and (hopefully) well-tested code, CSS will have to rely on JS – let that sink in.

This Website!

Originally built with Jekyll and a fully custom theme, I decided to migrate the website to Hugo for better cross-platform testing support. Hugo was easy to get running, but the customization system took a couple hours to fully understand. The theme is a slightly modified version of Hyde using the Merriweather font for the title. The Markdown parser automatically uses typographically correct quotes, and Hugo shortcodes help create a consistent visual appearance.


Prounounced like “savvy,” the name SAVvie comes from our initial prototype name, “Social Argument Voting,” and the verb “vie,” which means to compete. We imagined it to be an online implementation of Robert’s Rules of Order — a place suitable for online debate and group decision-making. SAVvie is a team project that was jump-started during the 24-hour Southern Utah Code Camp hackathon of 2016. I took on the responsibilities of a team leader for the four student developers who created the app: Katrina Mehring, Nick Rossi, Jacob Ward, and myself.

Advanced Content Management

Summary To simplify the creation of complicated page layouts, I developed a new “Advanced Page” content type in our CMS. Advanced pages have automatic support for custom row-and-column layouts and pluggable, reusable, structured component blocks. Advanced page multi-column demo screenshot Background I work in the wonderful Web Services department of my university. I love my job, but our entire department has fewer than five employees supporting the entire university website: almost 3,000 pages and hundreds of faculty and staff.

SUU to Everywhere

When the marketing department asked us to build a site for their newest campaign, “SUU to Everywhere,” I implemented the CMS page types and the CSS for the site’s design. SUU to Everywhere front page At the time, our site didn’t really have anything like this. A coworker and I planned a way for the new code to be reusable in other areas (specifically the university news).

Falling Spikes

January 2016 – July 2016 Falling Spikes is an iPhone game based on an idea by Scott Chapman. The player controls a bouncing ball by moving it left and right to avoid randomly falling spikes. Scott and I wanted to develop and publish this game for iOS devices with the hopes of making semi-passive income. His field is business, and mine is programming. The game took about 90 hours to create.

Casino Game Maker GDK

Casino Game Maker, a local startup, approached me to create a new website. The company had me develop the site online, so I believe it’s public knowledge, but they never marketed the site and it is currently down. It involved large file distribution, multi-level managed user accounts, and online payments. The site had two parts: the majority of it was built using CodeIgniter, an older PHP framework that was easy to use and nice to work with.


Built during Southern Utah Code Camp 2014, JuxtaPros is a web app for quickly making lists of pros and cons. Jacob Ward and I came up with the idea, and we actually tried to build it for Code Camp two years in a row. The first year, we built the front end but ran out of time before we could build the back end (it didn’t help that neither of us had built a back end before).

Inaugural Entry

Three days ago, Apple gave its 2013 WWDC keynote presentation. They announced OS X Mavericks, the new Mac Pro, and a new design for iOS 7. I’m taking the opportunity to move my own development efforts forward, by creating Mindful Code. Under this name, I intend to create apps for iOS and Mac that truly understand how people think of and interact with their systems. The definition of “mindful” has nothing to do with beauty, versatility, or even ease of use.


For a long time, Goodness was my most successful project: a Chrome extension designed to help people overcome pornography addictions. I sold it in 2013 with about 11,000 users, and has since grown (unmodified, as best I can tell; you can still see my name in the screenshot) to many more than that. Goodness on the Chrome Web Store Source code on GitHub