Building a side project to learn more about mobile development. The application allows users to track their daily habits and progress over time.
Led the billing project which extracted complicated billing logic out of our system to an integration with a third party billing system. This allowed us to bill at a more granular level. This project leveraged the Serverless Framework on top of AWS Lambda and many other AWS services. The backend was Node/Express with Sequelize ORM, and some minor frontend Angular code. Some tests written in Jest.
Oversaw a Data Analytics project, although I was not actively building I learned a lot about AWS Glue / Apache Spark, RedShift, and related services. Helped build the data model for the data warehouse.
Built a Chrome Extension to facilitate address verification during the underwriting process. This tool leveraged the HouseCanary and Google APIs. Successfully published to the Chrome Store but the extension is private access for internal users only.
Wrote Google App Scripts to manipulate and move Google Doc files to support daily document processing.
Sole Developer of the internal Loan Management System. This project is used every day by internal teams to track loan updates, ACH transfer millions of dollars out to contractors, and review analytics. Initially inherited as a small Python/Django prototype, I built the final project using a Node/Express backend, a React front end, and a PostgreSQL database. I also used Amazon Web Services heavily for this project including a secure VPC architecture deployed to EC2 servers, Cognito authorization and user management, Simple Email Service for notifications, Route 53 for DNS lookup / forwarding, and RDS for database management. This project leverages MaterialUI for clean, easy to use components.
Rewrite of the core module of Pinnacle 21 Enterprise to move toward a Jira like issue management system. Because of the complexity of the new functionality introduced we migrated this piece of the UI to React/Redux. The main screen, a complex three panel synchronized view, was built using Split.js. Originally planned in CSS Grid, was completed using Flexbox to support IE 11. Our services communicated with the backend via Axios which greatly reduced the boilerplate of our http requests. The Backend API was completely redesigned and simplified. This was my first time leading a major production React/Redux project. Some of the biggest challenges we faced were CSS related.
Investigated websockets but end up using local storage for cross tab synchronization
Rewrite open source desktop app into Electron and React. I mostly oversaw this project, but had to jump in due to time constraints. My major contributions include setting up multiple CircleCI builds with cascading builds as well as writing a custom .bat uninstall script. I did get to spend some time working with React and Electron, specifically the Electron Builderlibrary which enabled us to auto-update our clients installations. We also heavily leveraged AWS services for this project including S3, Lambda, and Cognito.
Led the core project of 2018 to build an enhanced reporting suite to improve usability of the system for FDA reviewers. This required a well-organized back end mostly from scratch that takes a personalized internal configuration file and dynamically generates a suite of reports. We created a custom JSON schema with a parser that would translate each of the JSON objects into executable classes using Java Reflection. The core of this project was choosing a pattern of Personalization instead of Customization. In this way, our subject matter experts created a personalized user experience including filtered results and localized text language based on the user.
Define.xml Tool: Inherited the leadership of this massive project and was responsible for core features such as metadata extraction, merging, and history. As the team lead I was in charge of meeting timelines and filling in gaps across the module as needed. Built an excel like editor using Handsontable.
Time Zone: Small feature added to allow users to set and adjust their time zone that impacted the reporting of dates and times across the system.
License Agreement: Custom feature that required a wide understanding of our existing system's use of the Play Framework. Integrated into our authentication services to detect users who haven't agreed to licensing based on email domain.
Custom Adapters: Organized and built custom adapters for several clients to help integrate their internal processes with Pinnacle 21 Enterprise. This required a deep dive into understanding the metadata management process and associated standards. I also had to work extensively with the Java Service Loader pattern.
Volunteered on an external industry team to take the Reviewer’s Guide word document submitted to the FDA during clinical review and translate it into an XML format that is machine readable. I directly created the XSD schema file for the XML and made significant contributions to the design of the XML. This will hopefully make the document easier to consume at the FDA and allow for tools to be built around the XML format to improve the creation process.
Wrote critical ETL migration scripts to move data between MongoDB and PostgreSQL. This was built as a bash script that calls a suite of JavaScript scripts that accessed MongoDB records, performed transformations, built SQL statements, which we're then executed against the PostgreSQL database through STDOUT to load the new records. This was built to be dropped as a zip file on AWS EC2 instances to perform production database migrations.
Created a new module to help users create Reviewer’s Guide documents which are submitted with clinical data to the FDA by aggregating information across our system and then generating a Microsoft Word document. This project relied heavily on the Apache POI Word API to build a completed document from a template file. I used a bookmarking system to select pieces of the document
Wrote the first implementations of many vital pieces of our core, paid product including: Issue Filters, Validation / Task Logs, Score Calculation, Metrics Collection, and many reporting screens. Relied on Apache POI for Excel Import/Export processes.
Set up Google Analytics to collect metrics.
Built a suite of data extraction tools to enhance reporting. This is maintained as its own internal library, built and distributed through maven. Originally extracted to MongoDB. Once PostgreSQL added support for JSON values, we migrated these records to PostgreSQL so we only rely on one database.
Research project into the feasibility of leveraging semantic web technologies to model Clinical Data Standards. Specifically investigated the Apache Jena API.