Jon Janzen's Projects

Professional 2020-2021

2020-2021FBShipIt for Facebook

FBShipIt is a tool developed by Facebook for copying commits between different repos (see the README for more)
One of the things I do on the Open Source Tools team at Facebook is own FBShipIt. Mostly that means bug fixes and maintenance but occasionally I work on new features and enhancements.
For example, there was a lot of legacy cruft built up over the years as configuration strategies evolved and some projects were left behind. I migrated those projects to the latest configuration system and then spent a lot of time cleaning up old legacy code that was just around to support them.
I've also worked on new features, like augmenting our (internal only) feature that allows users to comment/uncomment lines of code when exported/imported. I made it multilingual, so projects that mix different types of comment syntax could use these marker comments anywhere.

2020-2021Dr. CI for Facebook

Dr. CI is a tool originally developed by a Facebook employee for use on the PyTorch project. Dr. CI is a system for categorizing CI failures to help contributors navigate why their jobs failed and if they were responsible. It also will automatically retry jobs if they are known to be flaky.
When that employee moved on to other projects, ownership of the tool fell to my team at Facebook. We opted to redesign the tool from the ground up using our team's common infrastructure and internal systems available at Facebook.
In the redesign, I was responsible for UI surfaces, the retry behaviour (both manual retries and automated retries), and posting Pull Request comments while another engineer designed the failure classification system and the content of those comments. After we delivered the project, the other engineer moved on to other projects and I became the owner of Dr. CI

College 2015-2019

2019FBShipIt Upgrades for Facebook

See above for a summary of what FBShipIt is.
During my second internship at Facebook my job was to completely redesign the configuration system used internally
to manage the configuration of over 100 projects that use FBShipIt at Facebook. The old system required an unpredictable
amount of time (4-48 hours) to update a FBShipIt config. The system I put in place, and then migrated all projects to, allows
config changes to be instant. I also upgraded the codebase to use modern Hack Standard Library types and made some
other minor changes since then.

2019Aggie Map for TAMU GeoInnovation Center

The map assists students in finding buildings on campus and walking, biking, driving, or bus directions.
I joined the project as a paid Student Technician working on trip planning enhancements and code cleanup.
The frontend is written in TypeScript and Angular (the new one) using the ESRI ArcGIS API.
There is no backend, the frontend is deployed as static files on a Microsoft IIS server.
We also utilize a ArcGIS map and route server maintained by another department within Texas A&M University.

2018Batch Migrator for Facebook

This tool assists users migrate events in batches from an old internal tool to a newer, scalable internal tool.
Approximately 12,000 events will be migrated using the tool, which automatically clusters events based on similarity.
The backend is written in Hack (PHP) and using proprietary internal tools written at Facebook.
The frontend is written in Flow using the React framework and internal Facebook tools.

2017-2019Aggie Go Apps

During the summer between my sophomore and junior years I got an idea to design an app to help students use the
Aggie Spirit bus system at Texas A&M University. By scraping information from the bus system website and API,
I was able to design an app that could notify students about routes and stops that they're interested in.
The app is no longer available, but it was available for iOS devices (written in Swift) and for Android devices (written in Java)
The backend used Python and a REST API interface through Django to communicate with the app.

2017Radio Alarm System for Union Pacific Railroad

This system scans and collects status of a series of custom-built automated radio repeaters.
It provides mechanisms for automatically reporting alarm states and for visualizing the status of the system
The backend is written as a RESTful interface running on a Java Servlet running on Apache Tomcat
The frontend is written in AngularJS, TypeScript, and HTML/CSS.

2015-2019GroupMe Group Administration Utilities

This provides a series of tools built on top of the GroupMe Developer API.
It allows groups to be managed through a bot command interface.
Additionally, there is a web interface that provides an alternate interface to manage groups.
Written in Python using the Django framework and using PostgreSQL as a data store.
For interaction with the GroupMe API I developed an open source Python library called lowerpines

Besides the content you see here, there are also other services that I run for my own personal use. For example:

  • A personal inventory system originally designed to track my books, but now tracks most physical objects in my life
  • An iMessage searchable database to provide a way to find an old message that my phone may not have any more
  • A web interface for the to-do software that I use (2Do)
  • A UI for a plane-tracking scanner I have in my apartment

Designed and written in Python using the Django framework, PostgreSQL, and Nginx.
Currently hosted through Linode on a Debian 10 instance.

High School 2011-2015

2014-2015Web-Based Inventory System

This project was designed for Oakmont High School's Media Department.
This is used to check out and check in our extensive movie collection and media equipment (such as cameras and tripods).
Written in Python and HTML/CSS/JS using the Django framework, SQLite, and the Apache web server.
With companion Android app that uses custom built API to access the database

2014-2015Line Management Software

This project was designed for Oakmont High School's freshmen registration process.
It provides similar functionality to the system in place at many DMV locations that allows people to be issued a ticket.
They can then be seated to wait until their ticket is called.
Written in Python and HTML/CSS/JS using the Django framework, SQLite, and the Apache web server.

2014-2015Oakmont High School App for iOS

This allows students to check their grades, read at school news, get a map of campus, and view the school calendar.
Written in Objective-C using the iOS SDK.
The code for this project is open source.

2014-2015Oakmont High School App for Android

This allows students to check their grades, read at school news, get a map of campus, and view the school calendar.
Written in Java using the Android SDK.
The code for this project is open source.

2014Oakmont’s Website Upgrade

I assisted in the upgrade of Oakmont’s website to a new theme and to a new server.
This included updating HTML/CSS/JS as content was added to the new theme along with moving files over to the new server.

Middle School 2009-2011

2009-2021Marks Handyman Service Website

(view website)
Initial design using Apple’s (obsolete) iWeb WYSIWYG web development tool.
Rewritten using PHP to allow the business to edit (some) content themselves and simplification of source code.
Most recent rewrite using Python (using the Django framework) and SQLite to allow more freedoms in content editing by the business.
Currently hosted through Linode on a Debian 9 instance.