- Co-founder and full stack developer.
- Implemented the entire website. Used the Flask web framework, PostgreSQL database, lxml XML/HTML parser and GraphViz technologies.
- Implemented a novel content generation system that gives SEO-friendly, textual content to all pages.
- Implemented internal SEO best practices over the entire website and designed an internal SEO style guide.
- Implemented a spreadsheet-oriented data collection and review system built on a homemade application framework on top of Python's asyncio library. Wrote asyncio wrappers for the Google Spreadsheet API, PostgreSQL and internal REST APIs.
- Rewrote the entire front end on the AMP Framework to optimize mobile performance, page size and search ranking.
- Wrote a Python asyncio wrapper library around the gspread Google Spreadsheet API library.
- In addition to wrapping the existing API wrote lots of useful logic around managing credentials, rate throttling and error handling and retries.
- Documented everything.
- Published the package to PyPI and set up continuous integration and deployment with Travis CI.
- Click anywhere on the map to see where your poop goes (the downstream flow of sewers from your location)!
- Scraped the city of Omaha's sanitary sewer data into a PostGIS database and built a Flask web app around it.
- Coming to a city near you soon! If your city has public sewer data let me know and I'll add it.
- Link not available - ask for details!
- Written in Python with the Flask web framework, SQLite3 database and Leaflet.js mapping library.
- Project included a web scraping component, a data processing and statistical aggregation component and a growing, gigabyte+ SQLite database.
- Several interesting and educational experiences with performance tuning.
- A new Flask backend and Angular 9 frontend built over the old Inger database.
- Continuous deployment set up with GitHub actions to run frontend and backend tests and lints, create a PEX image and a Docker container, push the container to Google Cloud and deploy to a Google Cloud Compute Engine instances on every push to master.
- Solid test coverage on the Flask backend.
- Implemented a web scraper for Charlotte-area animal shelters that tweets the newest pets in shelters. Used the Python, lxml and SQLite3 technologies.
- Python library providing a cross-platform API for file extended attributes. Works on MacOS X, Linux and FreeBSD.
- SCOTUSwars is an interactive exploration of Supreme Court cases states have filed against one another.
- Implemented in Python and plain JavaScript.
- Co-maintainer. Did ongoing maintenance on the library including the Python 2 to 3 transition.
- File system browser written in the Flask web framework. Has some neat features around bandwidth usage measurement.
- Python asyncio application that echoes group chat conversations between chat networks.
- Fork of the Wikipedia page titles singable to the Teenage Mutant Ninja Turtles Twitter bot to tweet Wikipedia page titles matching the syllable stress pattern of the theme song to the 1950s-era Davy Crockett TV series.
- Python library that abstracts over xattr APIs on Linux, MacOS X, FreeBSD and NetBSD.
- Lessons learned porting from SQL Server to SQLite
- Using SQLite with Python Presentation on SQLite internals and Python for the Charlotte Python Meetup
- Features I'd like in PostgreSQL My wishlist for PostgreSQL - went viral on Hacker News
- Extending your Python web service with HTTP protocol features, a presentation on HTTP content negotiation and conditional responses
- My criticism of dotdrop, a dotfile management system
- Author of the Wikipedia articles on the Ridgeway gold mine and Runza sandwich
- Personal blog - Gil's LotD!
- Academic Decathlon Scores and Information Center - webmaster of a MediaWiki installation since its inception in 2007
- Converted the build system to CMake, got CI and CD working on Windows, MacOS X and Linux with TravisCI and Appveyor
- Built Debian packages for ngx_brotli in GitHub Actions and hosted on GitHub Releases
- Contributor and package maintainer to the MacPorts package manager.
- Enabled curl's support for HTTP compression. MacPorts actually pre-dates curl's support for HTTP compression and nobody thought to add it until I saw it was missing a decade+ later.
- Got the Debian packaging building and publishing to GitHub via travis.ci.
- Organizer for the monthly, in-person Python meetup group in Charlotte, NC
- Contributed a bug fix to PostgreSQL's pg_restore utility.
- Added the downvote comment function to an Android client for Hacker News. This was my one adventure with mobile development, I had the app running on my phone under the debugger on the PC, it was pretty cool.
- Removed six support from astroid and pylint
- Added WSGI support to the Python jsonrpclib library
- Moved some number crunching over to the Python Pandas library.
- Various bug fixes to MenuMeters, the MacOS X menubar system stats tool
- Fix monitor plug/unplug in the Windows C++ app PuTTY Session Manager.
- Support for the Cisco Spark chat service as the target of a TeamCity webhook notification
I prefer to keep a separate account for each employer to keep proprietary company code off of my personal machines. You should too!