Back-end Developer2019 - 2019Client (via Toptal)
Technologies: Atlassian SDK, Spring Boot, Java
- Designed and implemented a major refactor of a popular commercial Atlassian Confluence spreadsheet macro's backend. Changed primary key from integer to UUID for Active Objects (an object relational mapping layer within Atlassian Java SDK), which allowed for macro data from different Confluence instances to be merged, avoiding prior problem of primary key collisions.
- Wrote migration code to convert to new data model on Atlassian Confluence macro application upgrade.
- Implemented REST endpoints which would allow migration processes (such as those running on AWS) to query for data needed to perform data mappings on Atlassian Confluence macro upgrade.
- Used Apache POI (Java API for MS Documents) to add functionality allowing spreadsheet macro to export an Excel worksheet that mimicked data protection attributes of originating macro.
Full-stack Developer2019 - 2019Client (via Toptal)
Technologies: Mockito, MongoDB, TypeScript, Java, Spring Boot, React
- Added UI functionality to a React web application by using Material-UI components and custom created React components.
- Implemented RESTful controller endpoints for several web applications' back ends using Java under Spring Boot framework.
- Created cleaner, clearer logic to a back-end email functionality by refactoring the implementation of a chain-of-responsibility pattern in Java on Spring Boot.
- Added unit and integrated tests on several web applications' back end written in Java, using JUnit and Mockito.
Entrepreneur2009 - 2018Self-employed
- Developed iOS app prototypes in Swift using the Xcode development tool.
Senior Software Developer | Project Manager2001 - 2009Bear Wagner (A Subsidiary of JPMorgan Chase)
- Led a project to replace a legacy application ecosystem which performed a core function of the firm, namely collecting trade execution data and making it available to other applications in real time.Replaced a number of legacy C++ back-end applications with a new suite of Java applications that were designed from the top down to be modular and reusable.
- Developed a message server-based pub/sub system in Java for use in multiple applications. The client components were created in Java and C# to allow clients to publish and subscribe.
- Designed a Microsoft SQL Server database schema to house trade data. Created a series of tables, views, and stored procedures for persisting and retrieving data, and for enforcing business rules on data. Created a Java API layered over JDBC for accessing trade data in an object-oriented fashion.
- Architected a trading compliance system. The system took raw trading data, consisting of tens of millions of records per day, in flat file format, and put the data through an ETL process which resulted in database records being created for various events. Reports were built from the transformed data and provided to traders to identify possible compliance violations they could rectify. The system was built in Java and was extendable by allowing pluggable Java classes to be instantiated at runtime via reflection.
- Worked directly with traders to create a C# desktop application for recording orders and trades they placed via phone, and for which no other electronic record existed.
- Designed and implemented a P&L server in Java which computed real-time profit and loss for firm's accounts. Server gathered and tied together both real-time quote and trading data, and pushed computed P&L out to web and desktop clients.
- Simplified subscribing to Activ for real-time stock pricing by creating a Java component that wrapped the complex API provided, and exposed a cleaner, streamlined API.
Software Engineer1996 - 2000S&W Innovative Solutions (Contractor for Lockheed Martin)
- Added functionality to numerous human resources applications by closely working with end users to determine their business needs and to formulate requirements.
- Helped the company reduce the costs of software licenses for users by implementing an internal web application which functioned as a facility-wide (approximately 3,500 employees) software license request/tracking system. The web server functionality was implemented via C++ CGI scripts.
- Assisted Lockheed Martin's application development and maintenance department in achieving Y2K compliance. Reviewed the code of numerous internal applications and identified and documented potential Y2K problems. For each at-risk application identified, I created a remedy plan which detailed code changes and a test plan. Implemented code changes and ran tests in conjunction with users.
- Created a reporting tool in C++ which allowed managers to track calls made from department phones. The application parsed raw phone data from company internal phone switch and performed SQL queries to join employee and manager data.