Education

Masters of Science, Computer Science

Old Dominion University

Thesis: To Relive the Web - A Framework for the Transformation and Archival Replay of Web Pages

Bachelors of Science, Computer Science

Old Dominion University

Minor: Computer Engineering

Experience

Back-End Software Developer - Webrecorder (Remote)

- Present

Designed, developed, and maintained software projects for Webrecorder a non-profit web archiving service and open-source project anyone can use to save web pages

  • Implemented browser-based Q/A testing framework for determining replayability of web archives and integrated it into CI pipeline (Python, JavaScript)
  • Developed the system used in production for preserving web page assets associated with response design (JavaScript)
  • Developed and designed the web archiving framework for imitating human behavior during preservation used as webrecorder.io's Autopilot feature (Node.js, JavaScript)

  • Developed and designed high-fidelity browser based web crawlers and crawling system specific for web archiving for use by browsertrix (Python, asyncio).
  • Maintained and improved the web archiving replay system, pywb, used by webrecorder.io, perma.cc, UK National Web Archive, and Portuguese Web Archive (Python)
  • Re-wrote pywb's client-side URL rewriting system in order to: ensure the overrides applied to the JavaScript execution environment of the browser conform to web specifications, testable, and performance of modern web pages does not degrade when captured and replayed (JavaScript)
  • Improved pywb's default web interface and improved per-collection search performance

Graduate Research Assistant - Web Science and Digital Libraries Research Group

-

Worked on grant funded software projects (Python, Node.js)

  • Created an open-source Node.js high fidelity, user scriptable, archival crawler that uses Chrome or Chromium with or without a head (Node.js)
  • Created full-stack application that would test the web archiving capabilities of a web archive and or web archiving service / software. (Node.js, JavaScript, React.js)
  • Rewrote and improved a python desktop application for managing personal collections of web archives into a cross-platform Electron & Node.js desktop application (React.js)
  • Maintained and improved WARCreate, a Chrome extension that would create WARC files for any web page (JavaScript)
  • Maintained and improved MINK, a Chrome extension that would indicate if the viewed web page was archived and if the page was not archived provided a means to preserve the page (JavaScript)
  • Wrote eight posts on the groups blog covering own research, conference attendance and presentations, and software project updates (JavaScript)

Software Development Intern - Newport News Shipbuilding

May - August 2014 & 2015

Virtual Carrier Model, USS Gerald R. Ford (CVN 78)
  • Created application to mine databases or data sets to aid in analysis (2015)

  • Updated monitors that checked for implementation dependent conditions during application execution (2015)
  • Designed and built an data set validation API with accompanying Eclipse plugin (2014)

IT Consultant - Capital Consultants Inc

December 1, 2013 - May 5, 2014
  • Provided on call computer support and troubleshooting

  • Upgraded network infrastructure, implemented backup and computer security systems

  • Trained employees on computer software usage and network safety

Technical Skills

Languages

JavaScript (ES6) | Python (3.5+) | Bash

Web Technologies & Frameworks

React.js | Redux | HTML5 | CSS / SCSS | JSON | Webpack | Rollup

Backend

Node.js | Fastify | FastAPI | Redis | REST | Microservices | SQL | MongoDB

Testing & Continuous Integration

Pytest | AVA | Travis CI

Containers

Docker | docker-compose

Version Control

Git | Github

Talks / Presentations

Web Archiving for All with Webrecorder.io

Long talk and workshop at Domains 2019 Conference - Durham North Carolina

Swimming In A Sea Of JavaScript Or How I Learned To Stop Worrying And Love High-Fidelity Replay

Presented at the Web Archiving and Digital Libraries Workshop - University Of North Texas

WAIL

Presented at the IEEE/ACM Joint Conference on Digital Libraries (JCDL) - University Of Toronto

Web Archiving Interface Layer (WAIL)

Talk/Workshop at Personal Digital Archiving (PDA) - Sanford University

Are Wails Electric?

Lightning talk at Archives Unleashed 2.0 Web Archive Hackathon - Library of Congress, Washington DC

Publications

Mohamed Aturban, John A. Berlin, et al. "ArchiveNow: Simplified, Extensible, Multi-Archive Preservation"

In: Proceedings of the 18th IEEE/ACM Joint Conference on Digital Libraries. Fort Worth, Texas, 2018

John A. Berlin, et al. "WAIL: Collection-Based Personal Web Archiving"

In: Proceedings of the 17th IEEE/ACM Joint Conference on Digital Libraries. Toronto, Canada, June 2017

Awards / Recognition