Mike Schaeffer

Staff Software Engineer. Pragmatic Problem Solver.

Welcome

Welcome to my personal website.

Writing

I've maintained a blog for over twenty years. My recent writing largely focuses on using pragmatically modern software techniques to solve real world problems. I use a lot of Clojure because it fits nicely with the solutions to the problems I write about, but it is by no means limited to that language. I also dabble in the history of the field and occasionally comment on current events in my profession. Here are a few representative posts:

  • Workload - Thoughts on how to manage the workload required to operate modern software.
  • Concrete Control Flow - A discussion of Haskell style monadic control flow presented using concepts from Python.
  • Packaging Small Clojure Apps - Thoughts on how to package small Clojure based web applications for deployment.

Projects

Most of my work is propriatary work done for my employers. However, I do have some open source work available on my GitHub. Some of the projects are mainly explorations of ideas and tools I find interesting. Others are software I've maintained for an extended period of time for personal use.

A few key higlights:

  • Rhinowiki - The Markdown based CMS I use for this website.
  • Toto - A todo application I've personally written and used for over ten years.
  • Rust Raytracer - I was interested in learning Rust and wrote a simple raytracer to experiment a bit with the language.
  • vcsh - This is a Scheme) interpreter written in C and heavily derived from George Carette's SIOD interpreter. At one point, this was the core of a calculator I tried to sell as Shareware.

There are a number of other projects on my GitHub itself.