James Sorce, Software Developer in Fanwood, NJ, United States
James Sorce

Software Developer in Fanwood, NJ, United States

Member since August 8, 2018
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.
James is now available for hire

Portfolio

Experience

Location

Fanwood, NJ, United States

Availability

Part-time

Preferred Environment

Eclipse IDE, IntelliJ, Visual Studio Code, Git

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.

Employment

  • Back-end Developer

    2019 - 2019
    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.
    Technologies: Java, Spring Boot, Atlassian SDK
  • Full-stack Developer

    2019 - 2019
    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.
    Technologies: React, Spring Boot, Java, TypeScript, MongoDB, Mockito
  • Entrepreneur

    2009 - 2018
    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.
    Technologies: Java, JavaScript, jQuery, Node.js, HTML, CSS, Java Servlets, MySQL, Firebase, Google App Engine, Python
  • Senior Software Developer | Project Manager

    2001 - 2009
    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.
    Technologies: Java, C/C++, Microsoft SQL Server, Oracle, Sybase, JavaScript, Shell Scripts
  • Software Engineer

    1996 - 2000
    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.
    Technologies: C/C++, CGI Acripts, SQL, HTML, JavaScript, Shell Acripts

Experience

  • Floor Trading Compliance System | Bear Wagner, JPMorgan Chase (Development)

    Working with a business analyst, I created a daily reporting system which was designed to help our NYSE floor traders recognize and correct potential compliance violations.

    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 (Development)

    I designed and created a position server framework which was the central point of collection and distribution for all the firm's off-floor trading. I also created reusable components that provided functionality for different tiers of the project's architecture. Java and SQL were among the main technologies used.

    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 (Other amazing things)

    I developed a prototype of a browser-based multiplayer game. Browsers would use WebSockets to communicate via a back-end server, and the game state was updated in real-time using React in the browser.

Skills

  • Languages

    Java, JavaScript, SQL, HTML, CSS
  • Libraries/APIs

    jQuery, Node.js, Java Servlets, React
  • Tools

    Git, Grunt, Maven, Microsoft Visual Studio, IntelliJ IDEA
  • Paradigms

    Object-oriented Programming (OOP), Test-driven Development (TDD), Agile Software Development, REST
  • Platforms

    Eclipse, Visual Studio Code, Firebase, Google App Engine, Docker
  • Storage

    MySQL, Microsoft SQL Server, SQL Server Management Studio, JSON, MongoDB
  • Frameworks

    Spring, Spring Boot
  • Other

    Pub/Sub

Education

  • Bachelor of Science degree in Computer Science
    1992 - 1994
    Binghamton University - Binghamton, NY, USA

To view more profiles

Join Toptal
Share it with others