Adam Wasserman, Developer in Providence, RI, United States
Adam is available for hire
Hire Adam

Adam Wasserman

Verified Expert  in Engineering

Software Engineer and Developer

Location
Providence, RI, United States
Toptal Member Since
May 25, 2017

Adam is particularly interested in multithreaded programming and health care; however, any exciting challenge fits the bill. He believes that a successful project often requires a balance between following and breaking conventions. Adam also considers himself personable and an excellent communicator.

Portfolio

Smart Reporting
Java, Spring Boot, Gradle, HL7 FHIR Standard, Docker, JavaScript, Back-end...
Pro Gravur
C++, React, Electron, JavaScript, Full-stack, React Redux
International Baccalaureate
Spring Cloud, Microsoft Azure, Back-end, SQL

Experience

Availability

Full-time

Preferred Environment

IntelliJ IDEA, Android Studio, Git, Gradle

The most amazing...

...thing I've coded is a PGP encryption library for Android, which has been licensed out.

Work Experience

FHIRcast Developer

2023 - 2023
Smart Reporting
  • Brought back and upgraded the FHIRcast client, adapter, and hub.
  • Implemented the STU3 version of the FHIRcast specification.
  • Added TLS support for a series of back-end microservices written in both Java, Spring, and Node.js using Docker.
Technologies: Java, Spring Boot, Gradle, HL7 FHIR Standard, Docker, JavaScript, Back-end, Next.js, Passport.js, API Integration, TypeScript, Reactive Programming, WebSockets, Containers

Software Architect and Developer

2022 - 2023
Pro Gravur
  • Designed and implemented a multi-platform desktop application using Electron and React/Redux to perform highly specialized, industry-specific data transformations.
  • Created a REST service in C++ using the C++ REST SDK to provide back-end services to the desktop app.
  • Contributed to the application, essentially a data-transformation pipeline based on the input parameters and using the REST service when necessary.
Technologies: C++, React, Electron, JavaScript, Full-stack, React Redux

Back-end Developer

2021 - 2022
International Baccalaureate
  • Designed and implemented a microservice using Spring Cloud that maps data from one format to another. The mapper accepts a tree-like JSON structure and uses a state machine to process it. The input can be quite large in terms of gigabytes.
  • Configured the states in the state machine to operate on one-to-many nodes in the input and on zero-to-many objects in the serialized output. Each output object is translated into HTTP requests and executed by a second microservice, the publisher.
  • Optimized the publisher in terms of mapper and publisher interaction, as well as publisher performance due to the number of requests.
Technologies: Spring Cloud, Microsoft Azure, Back-end, SQL

FHIRcast Developer

2020 - 2021
Smart Reporting
  • Created and implemented an FHIRcast client. The client implemented the STU2 FHIRcast specification. The architecture provided pluggable extensions to the functionality (client-specific events and extended event handling). We used the WebSockets flow.
  • Developed and implemented an FHIRcast hub. The hub implemented the STU2 FHIRcast specification. The architecture provided pluggable extensions to the functionality (extended event handling). The hub is event-agnostic. We used the WebSockets flow.
  • Provided support for a Nuance-specific extension, Powercast, which supported the DiagnosticReport-update event and retained topic state, including versioning.
  • Led the development team and ensured full test coverage. Oversaw the project up to acceptance, then completed handover.
  • Implemented SMART on FHIR-based authorization, when applicable.
Technologies: Hapi.js, Fast Healthcare Interoperability Resources (FHIR), Docker, Git, Spring Boot, Java, Agile, JPA 2, WebSockets, REST, Asymmetric Encryption, Multithreading, OAuth 2, HL7 FHIR Standard, Back-end, API Integration, Reactive Programming, SQL, Containers, HL7

Back-end and Front-end Developer

2018 - 2021
Patient Insight
  • Configured and deployed a Vonk FHIR server and a .NET IdentityServer instance to work together for both SMART on FHIR and SMART back-end services (JWT client credentials grant type) authentication.
  • Created a blood pressure dashboard using React for doctors to monitor the condition and treatment of hypertension patients. Observation and patient data were obtained from our FHIR server. The environment was a Google Compute Engine instance.
  • Developed an inbound data feed for the blood pressure dashboard: received continuity of care document (CCD), extracted and transformed data into FHIR resources, and added to the FHIR server. Worked with R4 and DSTU2 data.
  • Created a sample patient population with complete medical histories using Synthea and imported it into our Vonk server for testing purposes.
Technologies: Google Compute Engine (GCE), Fast Healthcare Interoperability Resources (FHIR), Docker, Angular, React, Node.js, Spring Boot, Java, Git, JPA 2, Healthcare EDI, REST, Electronic Health Records (EHR), Asymmetric Encryption, Multithreading, MongoDB, OAuth 2, SMART on FHIR, HL7 FHIR Standard, JavaScript, OAuth, Linux, Full-stack, API Integration, TypeScript, PostgreSQL, React Redux, NoSQL, Containers

Front-end Developer

2018 - 2019
PositionTech
  • Maintained and expanded an existing Android app using Protobuf to interface with the back end.
  • Created several new web-based UIs and web components written in Angular/TypeScript using PrimeNG and NGXS state management. Also refactored and expanded several existing UIs according to new, more modern design.
  • Created unit tests for the UI with the goal of achieving 100% code coverage.
Technologies: Protobuf, Android, PrimeNG, Angular, JavaScript, TypeScript, Mobile Apps

Back-end Developer

2017 - 2018
CircleBlack
  • Created a SAML identity provider for single sign-on.
  • Overhauled the authentication strategies using Passport.js in Express.js.
  • Implemented a message exchange server operating over HTTPS and secure WebSockets.
  • Generated use cases for a complex data feed and produced an initial design that was followed up by the team.
Technologies: WebSockets, MySQL, Liquibase, SAML, Angular, Node.js, Git, REST, SAML-auth, Single Sign-on (SSO), Multithreading, OAuth 2, JavaScript, Linux, Back-end, Passport.js, Redis

Back-end and EDI Developer

2013 - 2016
Lille Group
  • Developed a HIPAA-compliant electronic health record (EHR) system written in Java.
  • Built a bundle of services that exposed data via traditional web browsers and mobile devices.
  • Created and maintained EDI interfaces based on the HL7 standard for updating patient records with lab results, doctor appointments, and demographics.
Technologies: RMI, Amazon S3 (AWS S3), MyBatis, PostgreSQL, Oracle, Apache Tomcat, Java, Git, Spring Boot, JPA 2, Healthcare EDI, REST, Electronic Health Records (EHR), Linux, Back-end, API Integration, Redis, Amazon Web Services (AWS), SQL, HL7

Test Infrastructure Engineer

2013 - 2014
SVB | Sociale Verzekeringsbank
  • Established the architecture for running automated test scripts. The system, operated by the government of the Netherlands, makes social welfare payments. Based on IBM mainframes written in COBOL, the tests operated directly on the front end.
  • Designed and implemented a thin-client tool for the management of test scripts in Eclipse.
  • Expanded the core test engine, written in Java and based on the TestFrame framework.
  • Implemented "action words" as defined by the test team.
Technologies: Plugin Development, Oracle, WebSphere, MyBatis, Spring Boot, Back-end

Software Engineer

2012 - 2013
Ministry of Justice, Netherlands
  • Optimized a JBoss app based on the ministry's specific application that used FileNet. The application allowed access to documents, some of which were sensitive, based on credentials.
  • Implemented emergency bug fixes on existing applications. A new version of the system was about to be released, but there were reliability problems involving the caching mechanism.
  • Established proper configuration and use of JBoss Cache.
Technologies: JBoss, JMS, Java, Java EE, JPA 2, Multithreading, Linux, Back-end, SQL

Software Engineer

2008 - 2012
iBanx
  • Developed a risk-management tool for operating, repairing, and expanding huge factories such as oil refineries running 24 hours per day.
  • Created custom modules for client-specific needs. These modules were written in Java and backed by a Drools rules engine.
  • Built an asset management system for factory components, written in Java and backed by Drools.
Technologies: Oracle, WebSphere, Apache Tomcat, JBoss Drools, JBoss, Agile, Linux, Back-end, SQL

Software Engineer

2011 - 2011
Anva
  • Solved a bug emergency in an existing application with a hard deadline for Anva: a company that creates customized software for the insurance industry.
  • Built the software's components which exchanged messages via an ESB. The problems involved remote access via RMI of the ESB registry.
  • Reviewed the message exchange mechanism and made recommendations on improvements.
Technologies: RMI, JBoss, Java, Multithreading, Linux, Back-end, SQL

Software Engineer

2011 - 2011
I Get It!
  • Developed a prototype for a menu application intended for restaurant chains.
  • Developed the prototype UI that ran on Android. The back-end services were written in Perl and ran in Apache.
  • Provided a content management system for updating and adding to menus.
Technologies: Android, Linux, Perl, Apache, Back-end, Mobile Apps

Software Engineer

2010 - 2010
CliqDigital
  • Maintained a proprietary premium text messaging platform written in Perl. It was partly based on something I had written for its predecessor, Blinck. My intimate knowledge of its inner workings was a unique qualification for this project.
  • Replaced the existing system with one written in Java using Jakarta EE technologies. There was no documentation, but the existing system was the baseline, and the new system had to behave the same.
  • Created, with two junior programmers, a suite of E2E tests that functioned as the definitive technical determination of success.
Technologies: MySQL, JBoss, JMS, Apache, SMS, Linux, Back-end, SQL

Software Engineer

2009 - 2010
Unavalley
  • Adapted an existing premium text-messaging platform for a client's specific needs. Users subscribed via rich front-ends written in Flash and the traffic was provided by advertising affiliates.
  • Implemented the routing, tracking, and reporting services for advertising affiliates.
  • Worked with third parties to create interfaces for data exchange: status reports, subscriber activity, and payment.
Technologies: Multithreading, MySQL, Perl, Apache, SMS, Linux, Back-end, SQL

Software Engineer

2007 - 2008
Compare Group
  • Worked for the company Compare Group. Their platform scraped target websites and aggregated the data encountered there (products and attributes). Written in Java and backed by a series of SOAP web services.
  • Conducted emergency bug-fixing; the platform was delivered by a third party full of errors and missing major functionality. It had a hard deadline to get it working. Worked closely with a test team in rapid iterations until all tests passed.
  • Introduced AOP as a non-intrusive technology to diagnose, supplement, and correct functionality.
Technologies: SOAP, Apache Tomcat, AOP, JAXB, Java, Linux, Back-end, SQL

Software Engineer

2007 - 2007
Venspro
  • Worked in a team on a variety of small projects, as needed. Venspro operated the Greetz brand of online cards and flowers.
  • Implemented the real-time data transformation as well as credit-card, bank transfer, and mobile billing interfaces.
  • Developed a thin HTML client with a Java/Spring back-end.
Technologies: Oracle, Apache Tomcat, Java, Java EE, Multithreading, Back-end, SQL

Software Engineer

2006 - 2007
Glomobi
  • Swapped-out JBossMQ for the more advanced JBossMessaging in their proprietary premium text-messaging platform. Dealt with a resolution of race conditions exposed by the update.
  • Built a freestanding interface to manage (start, stop, reload) endpoints using JMS and EJB. An endpoint is a combination of gateway and mobile shortcode where text messages originate and can be received.
  • Created a strategy for running the system in a cluster of JBoss nodes.
  • Implemented the strategy and demonstrated its viability in a test environment.
  • Deployed code changes to production in a non-clustered environment.
Technologies: JBoss, SOAP, JMS, Enterprise Java Beans (EJB), Java, Java EE, Apache, Linux, SMS, Perl, Back-end, SQL

Software Engineer

2005 - 2006
Philips IP&S
  • Developed an online product license verification system where customs agents checking cargo at the border could use the system to request documents confirming that the products were genuine.
  • Created a series of SOAP web services for receiving requests. The product universe varied considerably, a fact which had an impact on the schema describing our XML.
  • Ensured that the requests could be processed asynchronously. The software was backed by a state machine written in Java. The eventual output was a PDF sent via email.
Technologies: Enterprise Java Beans (EJB), SOAP, Java, Java EE, Multithreading, AOP, Back-end, SQL

Architect | Software Engineer

2003 - 2005
Blinck International
  • Designed and implemented a platform written in Perl for delivering premium content via SMS/text-messaging to mobile users all over the world.
  • Conduced Apache configuration and optimization including Mod_perl.
  • Created and implemented modules to interface with gateways (text-messaging providers) for the purposes of sending text-messages, receiving status alerts, and billing.
Technologies: Perl, Apache, Linux, SMS, Back-end, SQL

Software Engineer

2003 - 2003
MarviQ
  • Worked on a single sign-on application based on the SAML and Liberty specifications for identity management.
  • Created a web-based application to keep track of billable hours (for internal use only).
  • Experimented with EJB technology deployed into WebSphere.
Technologies: SAML, SOAP, Apache Struts, Enterprise Java Beans (EJB), WebSphere, Apache Tomcat, JBoss, Java, SAML-auth, Single Sign-on (SSO), Back-end, SQL

Software Engineer

2002 - 2003
Expresso Paper Platform
  • Collaborated with a team to build and expand an eCommerce message exchange connecting clients with suppliers in the paper industry. Orders arrived via SMTP (email) and were processed in a queue-like system (ECXpert).
  • Worked on this message exchange between stops in the pipeline that occurred via SOAP. ECXpert was cumbersome, CPU-intensive, and no longer being actively supported.
  • Replaced the ECXpert proprietary system with a series of JMS components replicating stages in the pipeline and a daemon using JavaMail to retrieve incoming SMTP messages and submit them to the first stage.
Technologies: Oracle, JavaMail, LDAP, JMS, Java, Back-end, SQL

Software Developer

2002 - 2002
Holland House
  • Benchmarked an existing, proprietary printer spooling system and set a baseline for further improvement.
  • Designed a new interprocess communication layer for their printer management system based on JMS.
  • Worked directly with the architect to create prototypes as proofs-of-concept in migrating architecture from a proprietary system to a J2EE-based system.
Technologies: JMS, JBoss, Java, Multithreading, Back-end, SQL

Software Engineer

2001 - 2001
KGBE
  • Built and implemented a distributed content-management system for streaming video and audio. The content was used in various branded media portals. Metadata about the content was stored in LDAP. Web pages were generated via JSPs with access to LDAP.
  • Ensured that the content management tool had to populate LDAP and copy the corresponding media files from the designer's machine to the appropriate locations on the server.
  • Worked directly with Flash designers to create a tool to allow them to plan content in time slots, similar to TV programming.
Technologies: JBoss, LDAP, Enterprise Java Beans (EJB), Java, Back-end

Software Developer

2000 - 2001
Anachron
  • Worked on an online bill presentation and payment system.
  • Created a payment interface for Equens (Interpay).
  • Functioned as the team lead.
Technologies: Java, Back-end

Software Developer

1999 - 2000
NedStat
  • Worked on a web traffic tracking system written in Perl and Java with both free and paid services.
  • Created a JNI component written in C for performing UNIX-specific functions required by the platform.
  • Developed an interface in Java between a remote JDEdwards system and NedStat's internal system.
Technologies: Perl, C, JNI, Java, Back-end, SQL

Software Developer

1997 - 1998
Community of Science
  • Worked on a system for providing access to paid academic articles online. Clients could subscribe with various levels of access.
  • Kept track of user sessions which had to be done manually.
Technologies: Perl, Back-end, SQL

Software Developer

1996 - 1997
Credit Management Solutions
  • Created one of the first online tools accepting applications for consumer car loans.
  • Developed a Windows DLL for processing loan results and making them available to the online system.
  • Worked with the team in charge of the core credit scoring engine to ensure the online system's compliance with various state laws.
Technologies: C, Back-end, SQL

Software Developer

1996 - 1996
Applied Physics Lab
  • Helped to develop software that was intended to predict mechanical problems in tank engines before they actually occurred. It involved real-time data acquisition and comparison to previously obtained data profiles.
  • Worked closely with a mechanical engineer to make the physical data in the form of electric signals accessible to a computer system programmatically.
Technologies: C, Back-end

GenerateKeyRingsTask

This task is part of a PGP library that I wrote for Android and cannot be run independently of the larger framework. Tasks in the library are assigned the data that they require and run on a managed thread by another component. At the end of execution, interested components are notified via broadcast.

The GenerateKeyRingsTask generates a public/private key pair with zero or one sub-key pair, collectively referred to as a "key ring." It can also be used to add a sub-key pair to an existing key ring. The master key pair must use the RSA algorithm. Sub-key pairs for master keys using the DSA algorithm will be created using the ElGamal algorithm.

Tools

SMART on FHIR, Git, Apache Tomcat, Apache, Google Compute Engine (GCE), JBoss Drools, Gradle

Paradigms

HL7 FHIR Standard, REST, Agile, Fast Healthcare Interoperability Resources (FHIR), Reactive Programming, AOP

Languages

SAML, JavaScript, Java, TypeScript, SQL, C, Perl, C++

Frameworks

Spring Boot, Angular, OAuth 2, Apache Struts, JNI, Hapi.js, Electron, Next.js

Libraries/APIs

PrimeNG, Node.js, JMS, MyBatis, Java RMI, JPA 2, React, JAXB, JavaMail, Liquibase, Protobuf, Passport.js, React Redux

Platforms

Android, Java EE, JBoss, WebSphere, Oracle, Linux, Docker, Amazon Web Services (AWS)

Storage

MySQL, PostgreSQL, Amazon S3 (AWS S3), MongoDB, Redis, NoSQL

Other

SAML-auth, SMS, Asymmetric Encryption, Electronic Health Records (EHR), Multithreading, Public-key Cryptography, SOAP, Healthcare EDI, Single Sign-on (SSO), OAuth, Full-stack, Back-end, API Integration, LDAP, RMI, Plugin Development, WebSockets, Enterprise Java Beans (EJB), Spring Cloud, Microsoft Azure, PGP, Mobile Apps, Containers, HL7

1991 - 1995

Bachelor of Science Degree in Computer Science

Johns Hopkins University - Baltimore, MD, USA

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring