Adam Sherwood

Hello and welcome to my portfolio!

I'm a sculptor turned software engineer. You can find out more about me here. Feel free to look around!

Some places to start:

Pay attention to tags and the various forms of backlinks as aids to discovering related content.

Not every note in here is about work I've done. Some notes just refer to tools I've used or the people who built them, and many notes are just collection points for backlinks, but you should be able to find your way around without much trouble.

And if you are using a wheeled mouse for navigation, hold shift to scroll sideways.

Good luck!

kanren

2024 Logic Programming Nimskull Project

This library provides some logic programming utilities in Nimskull; sort of a miniKanren with some additional goodies for arithmetic and rules. It relies on my dynamic_value library.

dynamic_value

2024 Nimskull Project

This library provides a dynamic value in Nimskull on top of my persistent collection library. Uses tagged unions on 32-bit systems (WASM) and NaN-boxing on 64-bit systems. Intended to be used for implementing dynamic programming languages and similar projects.

persistent

2024 Functional Programming Nimskull Project

Implements Clojure-like persistent, immutable collections for Nimskull: vec, map, set, and multiset.

Standoff Property Editor

2020 Editor Outliner Project Standoff Properties Tool for Thought UI User Programming Web App

Check out Standoff Property Editor if you're interested in some of my old explorations of knowledge management.

Sinuous Libraries

2020 JavaScript Sinuous UI

Sinuous Libraries contains a handful of libraries I wrote to extend the Sinuous UI library.

Mentat

2019 JavaScript Plugin Project TiddlyWiki Tool for Thought UI User Programming

Mentat was my first real project in JavaScript and provided an OS-like windowing system for TiddlyWiki.

ReconJS

2019 JavaScript Library Parsing Project Security

ReconJS and ReconJS Site are projects that center around statically checking JavaScript for potential security vulnerabilities.

7GUIs Implementations

2020 7GUIs Syntax UI

My 7GUIs Implementations are a way I explore learning new UI libraries, and occasionally languages, using a set of 7 tasks.

Red Utilities

2020 Red

Red Utilities are just some useful helpers I wrote for working with Red code, worth checking out if you have any interest in the Red programming language.

RegexXP

2019 JavaScript Project React Web App

RegexXP was my first full-stack app that I made solo and an opportunity for me to teach myself regex.


There aren't very clear criteria of what ends up in listed in this document rather than being listed in Projects. Generally, the stuff listed here is less finished or was done as part of a code jam or something.

differential_dataflow

Experiment Incremental Computation Nimskull

Based on the ideas of Frank McSherry and his Differential Dataflow. This implementation relies on my dynamic_value lib.

Person

I'm a sculptor turned software engineer. I was getting my master's degree at the Royal College of Art in London when I started getting into programming as a way of making sculpture. After my first foray, I was hooked.

I dove in headfirst, learned as much as I could, and by the time my degree was through, I was able to switch careers. This turned out to be pretty great. Code has a number of distinct advantages over sculpture, not least of which is that people are more interested in paying you to make it, which is sort of a big deal when you're supporting a family.

But writing code is also just a uniquely engaging and powerful experience that gives one the opportunity to work in many different facets of life at once: there's a bit of art and design, a lot of engineering, a ton of coordinating with other people, there's some entrepreneurship too, and, at its core, code is rooted deeply in navigating some basic aspect of the way the universe works. Computation is a fundamental aspect of nature and code gives one the chance to play with that.

Most of my work since graduating from art school has been in JavaScript, but I love learning languages and am constantly looking for opportunities to improve my ability to write software.

Hit me up on twitter or by email if you get the chance!