I'm Daniel (semperos) 👋
I work as an Engineering Manager at Shortcut.
Clojure is my primary programming language, been using it since 2010 and making a living with it since 2013.
💻 My Open Source Work
Some here on GitHub, some on Gitlab, sorted by some notion of relevancy:
- PiLisp: An interpreted Lisp inspired by Clojure, implemented in Dart
- Metazoa: Tools for viewing, testing, searching, and querying Clojure metadata
- shortcut-repl: A REPL & CLI for Shortcut
- cci: Minimal CircleCI API CLI Client (compiles to native via GraalVM's native-image)
- clj-webdriver: (Unmaintained) Clojure API for Selenium-WebDriver
Tiny utilities:
- csver: Convert JSON array over STDIN to CSV over STDOUT
- xmler: Small CLI utility to report on stats for XML sitemaps
- last-stacktrace: Utility to print stacktraces from JSONL logs
Learning, experiments, and toys:
- Gershwin: Stack-based, concatenative programming language with a Clojure runtime that targets the JVM
- rankle: Experiments with data rank and tables in Clojure, inspired by J and Q
- kintampo: Hierarchical data processing via file system + ZeroMQ
- river-crossing-spec: TLA Specification for the "Wolf, goat, and cabbage" puzzle
- AsIf: Language implemented as a Clojure transducer
- Shackle: Stack-based language, implemented in the web browser
- webdriver-logic: Logic programming API for testing web applications using clj-webdriver
💾 Technology I Use
- Glamorous Toolkit built on Pharo Smalltalk for moldable development, and my daily driver as of 2023
- Clojure for most of the professional code I've written
- LaTeX for authoring documents of all kinds
- Ruby for writing scripts that I can share with folks that might find Clojure unapproachable
- J for data analysis and solving Advent of Code
- sops for managing secrets locally
- fish as my primary shell
- Alacritty as my terminal emulator
- tmux for multiplexing
- Emacs, traditional bindings for Lisp-adjacent work, Vim bindings via
evil-mode
for everything else - Visual Studio Code for most non-Clojure development
- macOS at work
- Ubuntu Linux at home
📫 How to reach me: