
James Sorce
Software Developer
James has had a long career providing technology solutions that solve challenging problems. Software engineering is his craft, and he always seeks to learn to improve the quality of his work continuously. His past employers and co-workers value James for his ability to quickly understand a problem domain, for his clear and open communication, and for producing timely, well-organized technological solutions.
Portfolio
Availability
Preferred Environment
Git, Visual Studio Code (VS Code), IntelliJ, Eclipse IDE
The most amazing...
...thing I've ever done was taking a legacy system that was a support nightmare, and completely redesigned it to become a linchpin of our firm's technology.
Work Experience
Back-end Developer
Client (via Toptal)
- 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 Developer
Client (via Toptal)
- 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.
- Implemented tests for React components and TypeScript/JavaScript code using the Jest testing framework.
Entrepreneur
Self-employed
- Developed a web-based virtual whiteboard application which allows users to collaborate in real-time. The app is a single-page application which allows users to edit a graphical document jointly. Changes made by any user are reflected in real time in other users' sessions. The app was built with JavaScript and jQuery on the browser side and uses Google's Firebase to store data and distribute it among user sessions. The browser communicates with the back-end using Firebase API.
- Created a JavaScript library for building browser-based card games. The library handles functionality common across games, rendering a user interface, and capturing browser events. A library user can focus on game logic and avoid reproducing boilerplate code across game applications.
- Developed iOS app prototypes in Swift using the Xcode development tool.
Senior Software Developer | Project Manager
Bear 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 Engineer
S&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.
Experience
Floor Trading Compliance System | Bear Wagner, JPMorgan Chase
I created an automated process which took in gigabytes of flat files, performed an ETL (extract, transform, load) procedure on the data and created database records representing compliance events. A report builder tool was then run off of those database records and produced a PDF report for the floor traders.
By putting this system in place, potential compliance violations went quickly from thousands daily to near zero.
I created this system in Java and designed it to be highly modular. The system could handle new compliance event types by implementing a Java class which conformed to the needed interface, then making a change to the application's configuration. The app would instantiate the new class at runtime via reflection and include that class in its processing.
Position Server | Bear Wagner, JPMorgan Chase
I replaced the legacy system "in-place," that is I introduced reengineered components and retired legacy components with no disruption to end users. By creating this system, I effectively freed both developers' and end users' time from focusing on support issues to being able to focus on their primary business tasks.
React Multiplayer Game Prototype
Skills
Languages
Java, JavaScript, SQL, HTML, CSS, Python, C++, C, TypeScript
Other
Freelancing, RESTful Microservices, Shell Scripting, CGI, Pub/Sub
Libraries/APIs
REST APIs, jQuery, Node.js, Java Servlets, React
Tools
Git, Eclipse IDE, IntelliJ, Shell, Atlassian SDK, Grunt, Apache Maven, Microsoft Visual Studio, IntelliJ IDEA
Paradigms
Object-oriented Programming (OOP), Test-driven Development (TDD), Agile Software Development, REST
Platforms
Eclipse, Visual Studio Code (VS Code), Firebase, Oracle, Google App Engine, Docker
Storage
MySQL, Sybase, Microsoft SQL Server, SQL Server Management Studio, JSON, MongoDB
Frameworks
Mockito, Spring, Spring Boot
Education
Bachelor of Science Degree in Computer Science
Binghamton University - Binghamton, NY, USA