Experience
My work experience and resume
Syniti
Software Engineer III
As a Software Engineer III on the core platform team, I led the effort to optimize queries from the graph database by over 95%, solving ongoing service stability and performance issues; and developed code AST transformations to modernize over 150k lines-of-code for frontend and backend services.
A key service in the Syniti Data Governance Platform (SKP) was suffering from performance issues related to the graph database that didn't support compound indexes. To solve this issue while working around the limitations of the database, I developed a compound indexing scheme for the database, which resulted in a reduction of query latency by over 95%. The custom index dramatically improved service performance, directly resolving the DevOps team's vertical scaling challenges.
As the team's codebase has expanded to over a million lines-of-code, I introduced tooling and scripts for automated code AST transformations to increase developer productivity and simplify dependency upgrades across dozens of services. The largest code transformation I wrote restructured the Typescript type generation for GraphQL clients, saving ~100k lines-of-code in work. Overall, my initiative to bring automated tooling to the code maintenance process has saved months of engineering hours that would have been dedicated to refactoring code by hand.
Additionally, I worked closely with the team to provide code reviews, feedback on system designs, and mentoring for new software engineers.
Software Engineer II
As a Software Engineer II on the core platform team, I led the development of the Uptime Monitoring service, a collector of service uptime statistics for SLAs, and the UI component refactor to modernize our old NextJS frontend.
The Uptime Monitoring service collects uptime statistics and reports them to the central Prometheus database for SLA reporting and downtime tracking. Currently, the Go service collects data from the over 40 services and is used in all 6 cloud regions. Additionally, these statistics are used to measure our uptime for customers and auditors.
The UI component evaluation was the groundwork to plan and estimate the work and man-hours required to migrate away from an unmaintained component library. This project was critical in the effort to modernize the NextJS frontend. I reviewed several leading open source UI frameworks and component libraries to aid senior engineers and management's decisions on the future direction of components in the UI.
For my professional growth, I assumed ownership of the graph processing and indexing services, providing support for customers and API consumers, maintaining dependencies, and giving guidance to other engineers that were implementing new features in the services. In this new role, I developed features to connect data quality results from the data quality team to the graph indexing service.
Additionally, I worked closely with the team to provide code reviews, feedback on system designs, and mentoring for new software engineers.
Cloud Software Engineer
As a Cloud Software Engineer on the core platform team, I led the development of a Visual SQL Query Builder, a feature for non-technical users to write SQL queries, and the migration to a Rich-Text data format, involving an organization-wide plan for backwards and forwards compatibility contingencies.
The Visual SQL Query Builder was designed as a feature that would enable non-technical data stewards and consultants to design data quality rules on the Syniti Data Governance Platform (SKP). I developed a SQL parser/generator to read existing queries to populate the React NextJS UI for the various SQL clauses and dynamically generate new SQL queries after editing. This feature was successful in enabling non-technical users to build complex WHERE and JOIN clauses on their data.
The Rich Text data migration was a major initiative to integrate a new Rich Text editor into the UI and migrate tens of thousands of records of existing customer Markdown to a Rich Text format. First, I created components to render a Rich Text Editor and render the custom rich text format in the UI. Then, I designed a backwards compatibility layer with user input sanitization for transforming existing markdown records to the new rich text format when fetched from the server. Lastly, I created a migration process to roll out the new data format that allowed for all clients, internal and external, to handle backwards and forwards compatibility issues. Overall, the execution of the migration was seamless with a <0.01% error rate.
Additionally, I worked closely with the team to provide code reviews, feedback on system designs, and mentoring for new software engineers.
Knowtworthy
Software Developer and Co-Founder
Knowtworthy is a Meetings Productivity tool for business professionals to aid in organizing, formatting, and sharing meeting minutes. My job at the company is primarily a Full Stack Software Developer. My responsibility are to build and maintain the Web App and Backend API. Additionally, I manage our Kubernetes Cluster on AWS.
When I joined the company, my focus was designing and building the Backend API in Node.js, Koa.js, and MongoDB and establishing infrastructure on AWS. Today, my responsibilities have expanded to the Frontend, other Backend Services, and the CI/CD systems. On the Frontend, I redesigned the Web App from scratch using our new design language, Typescript, and React Hooks. On top of the Backend API in Node.js, I authored our audio streaming server for realtime Speech-to-Text with Go, a design choice we made to improve the performance of our services. Lastly, I created our CI/CD system on Gitlab CI/CD to automate testing and quickly roll out updates to users.
My contributions on the AWS infrastructure and Kubernetes cluster are innumerable, but I will list a few notable ones. I setup the Kubernetes cluster on AWS to host all of our services, including but not limited to: the Backend API, Audio Streaming Server, and Audio Processor Workers. Additionally, this includes our staging environment for QA testing before releases. Using AWS CloudFront and AWS Load Balancers, I created a layered solution to distribute our Web App globally with minimal latency and failovers for our backend services. Finally, I setup Elasticsearch to offer a search service to our users and collect logs from our backend servers.
Bank of Montreal (BMO)
Software Developer Intern
During my summer internship at BMO , I was tasked with designing and building the web frontend for a new Business Intelligence(BI) tool at the Bank. The tool was targeted at non-technical employees to help them draw up reports and better understand their data. Using the Carbon Design System , I built the UI prototypes and pitched the design to management. Additionally, I built the web frontend with HTML, CSS, and jQuery on Microsoft's C# MVC.
When I wasn't working on the BI tool, I helped the Business Associates automate tedious tasks with Python scripts. My most impactful effort was a regression analysis tool to verify that new code changes to a legacy system were backwards compatible.
BDM Trucks
Web Developer
BDM Trucks is a commercial truck repair service in Manassas, VA that needed a new website. I built them a new website using HTML, CSS, and Bootstrap 4 . Additionally, I optimized the on-page SEO of their new website to draw more traffic from their local area.
SBIRT
Software Developer
Shenandoah University's School of Pharmacy needed a tool to collect data on drug abuse from local clinics in the Northern Virginia area. I built an iOS and Android app to assist their team in collecting reports from doctors and students in training. Later, the data collected went into research on drug abuse and intervention in the local area, potentially saving lives.