hello, i'm ~vilmibm
nate smith | he/they | nateksmith @ pm dot me | home page | microblog
I have been trading code for money since 2005. I prioritize maintainable, readable code and friendly, empathetic software development. I'm cautious to adopt new technology without extensive research and reflection. I believe that computing can be liberatory. I think computers should be used to make emotionally compelling and beautiful things.
So let's do that together.
Professional History
Internet Archive
11/2023 - present. Senior Software Engineer
- Member of Archiving & Digital Services
- Leading engineering on IA Scholar
GitHub
2/2018 - 8/2023. Senior Software Engineer
- Go, GraphQL, Ruby, Rails
- Co-author and a maintainer of the GitHub CLI
- Involved in the CLI project from the beginning, helping shape it both
technologically and culturally as it grew to 100k monthly users
- I believe strongly in tech accessibility along axes of ability, economics, and bandwidth and have put these values into my CLI work
- I've done UX and product work in addition to being an engineering lead
- I have performed extensive community management as co-maintainer of this major open source project
- Prior to the CLI team I was tech lead and briefly the manager of work on an internal Rails-based tool for managing Enterprise
billing
Venmo
8/2016 - 12/2017. Member of Technical Staff
- Python, Django, Tornado, MySQL, Redis, MongoDB, New Relic, Sumologic, Sentry
- Tasked with rewriting identity verification, notification, and email systems
- Led emergency initiatives for complying with audit requests and mitigating payment outages
- Architected a zero-downtime major migration of our Redis infrastructure
Puppet, inc
5/2013 - 8/2016. Software Engineer
- Clojure, Java, Ruby, PostgreSQL, jgit
- Developed Puppet Enterprise's RBAC implementation, managing architecture design, coding, and junior developers
- Wrote puppetdb-ruby, an open source Ruby client for the PuppetDB API
- Contributed to jgit-based file storage in puppetserver
- Implemented X.509 based inter-node security layer for Puppet Server deployments
- Contributed to Trapper Keeper, an open source service manager for Clojure
Cox Media Group, Digital
1/2011 - 4/2013. Lead Developer
- Python, PostgreSQL, Django, JavaScript (browse/NodeJS), New Relic
- Rewrote advertising system (front+backend), reducing page load time by 20 seconds
- Wrote and open sourced a framework for semi-realtime front-end widgets used for comments, ads, and other features
- Wrote lazythumbs, an open source, high performance thumbnail processing service for Django
- Scaled a Django app and its PostgreSQL database to handle millions of hits a day
- Trained staff on JavaScript best practices; introduced JS unit testing with a custom node library
Summersault, LLC
5/2009 - 12/2010. Web Application Developer
- Perl, PostgreSQL, CGI::Application
- Led development of customized RSS feeds for pet searches on Adopt-A-Pet
- Led development of adoptable pet photo gallery tool for animal shelters
- Helped institute Summersault's first use of cloud technology (EC2)
Earlham College
9/07 - 12/09. Workstudy programmer
- Perl, PHP, Oracle DB
- Maintained Earlham's in-house course registration system
- Mentored younger students on web application development
IBM
Summer 2008. Pre-Professional Intern
- Python, C, Ganglia, z/VM
- Developed a prototype hypervisor monitoring tool in C and Python
Mid-Hudson Library System
2005-2006. Web Development Intern
- HTML, CSS, Flash, PHP
- Managed the web sites for around 60 libraries systemwide
- Introduced the system's first use of PHP
- Developed Flash tutorials for obtaining and using library cards
Volunteer Experience
https://tilde.town - 2014 - now. Founder/admin
- Social media was making me feel bad and I wanted to hang out inside a computer
- I founded a social linux server as a safe, non-commercial place to digitally hang out
- I have worked to foster a creative, inclusive, mutually supportive community
- I do moderation, mentorship, and administration with the help of a few volunteers
- We've signed up over 4,000 accounts since inception
Django Girls PDX - 2015 - 2017. Organizer/tutor
- Co-organized the majority of DGPDX's six workshops, managing fundraising and
event logistics.
- Wrote the Chromebook section of the Django Girls Tutorial, ensuring
attendees to any Django Girls workshop around the world could get setup to
code with ChromeOS.
- Coached at multiple events, teaching programming fundamentals and web
concepts to groups of 3-4 women new to programming.
- Delivered short lectures on HTTP basics and Web history
Code For Good - 2017. Organizer
- Co-organized a volunteer event pairing software engineers with local non-profits
- Met with a number of local non-profits to determine what their needs were
- Architect and project manager for three non-profits' Django projects
Education
- Bachelors in Computer Science, Earlham College. Graduated with honors 2009.
- Recipient of Charles A. Frueauff Award for Creativity in Computer Science.
- Certificate in Poetry, Independent Publishers Resource Center. Completed 2016.
Talks and Publications
Projects
(see https://github.com/vilmibm for more)
- tilde.town (Ubuntu, Puppet, AWS). A social Linux server with thousands of accounts. As the primary admin, I automate system tasks and foster empathetic community.
- blackout poetry engine (Go, HTML, Javascript). Poetry authoring tool using 9,000,000 chunks of text I ingested from Project Gutenberg
- prosaic (Python, NLTK, postgresql). Prose analyzer and poetry generation software.
- town (Go, Bash). A suite of command line tools for managing tilde.town.
- hermeticum (Go). An in-progress rewrite of tildemush, a scritable multiplayer text-based virtual world, in Go
- tildemush (Python, postgresql).
Scriptable multiplayer text-based virtual world. Designed and Implemented pedagogically oriented scripting langauge, WITCH.
- gh-screensaver (Go). A collection of animated ASCII art "screensavers."
- trapperkeeper-authorization (Clojure, OpenSSL). Contributed X.509 based node authorization.
- puppetdb-ruby (Ruby, PuppetDB). Original author, but no longer maintainer.
- murepl (Clojure). A multiuser Clojure REPL that doubles as a MUD.
- nodeunit-b (Node.js). Unit testing framework that uses jsdom to run JS tests outside of a browser.
- marimo / django-marimo (Javascript, Python). A framework for semi-realtime widgets.
_ _
| | | | |
_|_ | | __, _ _ | | , |
| |/ \ / | / |/ | |/_) / \_|
|_/| |_/\_/|_/ | |_/| \_/ \/ o