Skills
Technologies
Ruby
Rails
MongoDB
PostGreSQL
JavaScript
React
Git
Experience
Onit, Inc.
Senior Software Architect
May 2012 - Present
Overview
Onit is a provider of workflow solutions in the LegalTech space. Joined the startup as one of the first dozen employees. Key contributor to the platform that grew ARR from <1M to >40+M. Provided technical leadership and mentorship to new developers. Worked closely with Product Management to understand how features can be added to a complex platform without impacting existing customers.
Responsibilities
- Technical leadership
- Merge reviews
- Security Evaluations
- Performance Improvements
Projects
Initial Platform Buildout
Worked on the initial buildout of the workflow platform (using Ruby on Rails) that would be the basis of Onit's product offerings. The platform needed to be powerful enough to solve any problem involving approval and collaboration but unopinionated so that any customer's business process could be modeled with configuration but no code change.
Data migration from MongoDB to PostGreSQL
While the schema-less approach of MongoDB made it easy to get started, the lack of relationships and cross-document transactions were a severe limitation. Designed a migration process where data from MongoDB could be moved to PostGreSQL seamlessly. The data scaled up to millions of rows and had the ability to migrate customers with minimal downtime (minutes, not hours).
Front-end Rewrite using React
The level of complexity of the application led to many performance issues and bugs in the prior UI framework. Championed React as the framework for a major UI rewrite in 2016. React's declarative model and one way data flow led to a more stable application and better isolation of responsibilities.
J.P. Morgan Chase
Senior Developer
May 2006 - May 2012
Overview
Joined the firm as an intern during final year in university. Quickly became an integral part of the team. Learned all parts of application stack and business domain of application. Became technical lead for the team after two years.
Responsibilities
- Implemented changes from front to back end. Worked on Web, UI, Batch applications, DB changes and APIs
- Designed changes to address business needs and non-functional requirements
- Responsible for management of SVN repo and maven build
Projects
Approvals Recording and Control
ARC was a J2EE web application with 4000+ internal users across the globe. It was used across LOBs to grade clients and approve credit facilities and transactions. All proposed changes would go through a workflow where required approvals were calculated and recorded. It utilized EJBs and MDBs and had interfaces with several applications. It used Spring, Hibernate and Struts.
Introduction of Letters of Credit to ARC
A new workflow was added to allow users to approve Letters of Credit via ARC. LC requests would come in through a new MQ interface with a mainframe application based in Hong Kong. Worked with architect to design application changes. Responsible for integration between Websphere MQ and Weblogic. Designed and implemented a fixed-length message parser. Other changes included workflow, UI and timed jobs for notifications and automated rejections of eligible LCs.
Reengineering of ARC
To improve the application performance as experienced by users ARC was split into two - foreground and background. All UI interaction was encapsulated in the foreground app. Any long running tasks which could be performed asynchronously were moved to a new background application. Responsible for moving various workflows from a UI based synchronous model to asynchronous background tasks. Refactored so that foreground and background components did not duplicate any code.
Onboarding Asia/EMEA regions for Letters of Credit Approval
Two years after initial LC implementation, Asia and EMEA regions needed to be onboarded. These regions required some changes to the workflow but the challenge was to reuse the code base and triple the load without impacting the user experience. Designed application changes and directed the offshore team that implemented the changes. Designed region handling so that addition of new processing units would require some database configuration but no new application code.
Volunteer Work
2019 - Present
Overview
The Grassroots Disaster Relief Toolkit is a collection of resources made to support communities organizing mutual aid-based disaster relief.
Responsibilities
- Helped choose technologies and organize team
- Implemented features from back-end to front-end
- Styled sections of site based on designs
Education
University of Houston
2002-2006
- B.S., Computer Science. Minor in Mathematics and Philosophy