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
JavaScript Developer - IPConfigure, Inc
-
Apart of an Agile engineering team developing Angular/AngularJS hybrid apps for web-based, cross-platform video surveillance and video surveillance management products Orchid Core and Orchid Fusion.
- Design and development of features and system components with an emphasis on balancing business and technology requirements. (JavaScript, Typescript)
- Provide time and resource estimates including risk assessment and mitigation strategies
- Developed Unit Tests via Karma/Jasmine and QA/Integration tests via Testpad
- Aid in migration off of AngularJS to Angular
- Triage customer issues
- Reduced application memory usage by 7.4%
- Migrated code base from Angular 10 to 12, Webpack 4 to 5, and Typescript 3 to 4
- Lead on application internationalization (i18n)
- One of two lead engineers for feature providing the capability to create and view interactive maps displaying video surveillance cameras and their feeds on geographic or indoor maps
Back-End Software Developer - Webrecorder (Remote)
-
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) | Typescript | Python (3.5+) | Bash | Java
Web Technologies & Frameworks
Angular & AngularJS | React.js | Redux | HTML5 | CSS / SCSS | JSON | Webpack | Rollup
Backend
Node.js | Fastify | FastAPI | Redis | REST | Microservices | SQL | MongoDB
Testing & Continuous Integration
Karma/Jasmine | Pytest | MOCHA | AVA | Travis CI | Testpad
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
-
Outstanding MS Thesis Award - ODU College Of Science
-
Best poster award -- IEEE/ACM Joint Conference on Digital Libraries, University of North Texas (2018)
-
Donald W. Reynolds Journalism Institute Scholarship
-
Research featured in a Digital Preservation Coalition blog post
-
Research featured in a Dr. David S. H. Rosenthal’s blog post
-
Software featured on IIPC’s Github Awesome Web Archiving List
-
Software featured on netpreserve.org's web archiving tools and software page
-
WAIL featured in a Digital Preservation Matters blog post
-
WAIL featured on Electron’s apps web site
-
WAIL Hacker News
-
WAIL r/DataHoarder list