I'm Nathan Wallace. Software developer, armchair philosopher, badass MC.

I'm a software developer currently working in Ruby and JavaScript for Second Generation. I love cooking, music, science, and free software. Learn more about me.

My Values

Data

Decisions should be driven by objective metrics and measures whenever possible.

Lean Delivery

The sooner a feature is delivered, the sooner we can measure its efficacy.

Iteration

Once we have data, use it! Refine, restructure, or even change tack altogether.

Usability

Whether designing a webpage or a low-level ABI, we should keep usability in mind at all times.

Extensibility

Software is never perfect or complete, so it's crucial to be able to change our program in response to new data, new ideas, or new circumstances.

Collaboration

Pair programming prevents bugs. Collaborative design illuminates blindspots. Two heads are better than one.

Portfolio

get.realtor

The domain regsitrar for .realtorĀ® and .realestate top-level domains.

Learn more

Smithers

Your trusty assistant. A generic, data-driven web event processor.

Learn more

Heckle

The Clojure(Script) validation library you deserve.

Learn more

ActiveRecord Block Matchers

A set of custom RSpec matchers for testing applications with ActiveRecord.

Learn more

Blog

The Value of Customizable Tools

Efficiency-focused like Vim, Sway, and the shell, are worth the effort to learn not for speed but for customizability.

Read

Purism Is Doing It Right

With their upstream-first approach, Purism's Librem 5 should become the best alternative mobile operating system.

Read

Speaking with a LISP

Reading code is like reading any language. With practice, even LISPs like Clojure can become second nature. Learn to read and write Clojure fluently.

Read

Implementing a Custom Sequence Data Structure in Clojure

See how to use deftype to implement clojure.lang.ISeq so we can use regular Clojure functions on our custom type.

Read

Scripting a Dev Environment with Tmux

Read