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
ActiveRecord Block Matchers
A set of custom RSpec matchers for testing applications with ActiveRecord.
Learn moreBlog
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.
ReadPurism Is Doing It Right
With their upstream-first approach, Purism's Librem 5 should become the best alternative mobile operating system.
ReadSpeaking 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.
ReadImplementing 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