Gilchrist Pitts Twenty years of self-directed software development
At eleven years old, I started programming games in BASIC. For most of the time since, I've been an exclusive Linux user, and have created things spanning full-stack web development, web crawling, AWS infrastructure automation, game development with C and SDL2, static websites for small business, price comparisons of mutual fund price histories, cross-compiling software for a 2009 Kindle, and my own web build tooling.
I'm also an ink illustrator, and have worked on a webcomic, and finished three Inktobers.
Current Project: Auto-shooter Roguelike
My current project is web-based, auto-shooter roguelike game where you control a party of characters to progress through a gauntlet of dungeon floors, brimming with hundreds of enemies. With the only controls moving you, your party will automatically attack your foes, and between floors of the dungeon, these characters will level up and encounter item shops. The key to strategy in this game is how you trade items between your party members.
Although I am quickly making progress on this game, I'm intending to polish it more before making it publicly playable.
Technical details
- Written in pure VanillaJS
- Bundled with Vite
- Custom engine for state and event management
- In-memory manipulation of PNG files for palette swaps
- Small enough to fit on a floppy diskette
Other Projects
-
Interbuilder
Interbuilder is a workflow and build tool for static web assets and the programs which generate them. It runs multiple programs which write a directory of files, (such as static site generators), and sends them through a data pipeline to make changes to their file trees. If the URL for a static asset is changed, other pages are updated to point to the new value.
-
Hefoki
After using the Wikipedia Current Events Portal as a source of quick, daily news, I wanted my own interface for reading the summaries of stories appearing on the portal. The Hefoki website checks the Current Events Portal page for new stories, and maintains a web page for each day of stories.
-
Flef
flefis a small convenience utility for creating and navigating to single-day project directories without needing to type dates in their names. Invokingflefensures the existence of a project directory, named with the current date, and starts a shell there; creating a clean environment and helping facilitate a habit of daily coding.GitHub repo
-
Web Imposition
Print booklets and zines at home! Web Imposition is a tool for taking PDFs and scaling their pages down onto sheets which can be folded and staple-bound.
This process of cutting up the document and rearranging it to be folded is called imposition, and unlike other online imposition tools, Web Imposition works entirely in the browser without sending your documents to a server.
GitHub repo
Modules and Small Projects
These are things I've worked on, that while smaller, I still think are worth note.
-
TinySplit
A lightweight document-like file format oriented around streaming. Although the repo contains example implementations, it's designed to be simple enough for a developer to write their own from memory with basic string functions.
-
Brofert
Short for Browser Feature Report, this is a single HTML page which detects features in the user's browser and generates a JSON report. And it does this while targeting IE5 and Netscape Navigator 6.
-
make-element
JavaScript module exporting one function:
makeElement(). Through recursive descent of its object argument, it creates HTML elements, styles, and events. Initially part of my game, I find it useful for VanillaJS, broadly. -
is.js
Small set of utility functions for performing runtime type checks, meant to iron out the discrepancies in type handling within the language.
Posts
-
Visual Keystone
Lessons rebuilding my developer website -- not about code, but how choosing and implementing a visual theme helped my writer's block.