Benjamin Berman

Pittsburgh, PA, or Remote

Overview

I am a software engineer with a Computer Science Ph.D. and 9+ years of experience in industry. I have spent the past ~7 years working on microservices systems related to large-scale creation, analysis, storage, and retrieval of medical information. I would be happy to continue in healthcare technology, but I am open to working in other areas with similar challenges, especially where I can help people raise the bar on software quality.

Distributed systems are notoriously difficult to get right. One reason for this is that our traditional single-threaded unit tests do not catch problems related to network constraints and concurrency. We also sometimes make developing distributed systems more difficult by delegating a) deployment and configuration to a separate Ops team and b) E2E+performance testing to a separate QA team, typically late in our development process. My experience with these systems has made me particularly interested in broadly-scoped tests that tackle non-determinism, automated deployment as a way to tighten/remove debugging cycles, and bridging gaps between teams.

Testing is not the only tool in our belt for making systems that work well, though--our ability to read and understand code (and requirements) is essential. Disambiguating concepts, finding accurate identifiers, and judiciously applying functional programming techniques are examples of valuable activities from which I get a lot of satisfaction. I also enjoy working with junior colleagues to help them write better code and use their editing tools more effectively.

Although I currently consider Java+Spring Boot microservices to be my "bread and butter", I greatly enjoy learning new technologies as the need arises. I am particularly fond of Scala, for instance (though I want to emphasize that it is not appropriate for every job). I am also always eager for opportunities to continue growing my experience in architecture and data engineering.

Skills/Tech

Java, Bash, Scala, Ruby, JavaScript, TypeScript, Spring (Spring Boot, Spring WebFlux, Spring MVC, Spring Data JPA, Spring Cloud Stream), microservices, Angular, AngularJS, SQL (PostgreSQL, MySQL, Oracle), NoSQL databases (MongoDB, Redis, Elasticsearch), Gitlab CI/CD, Docker, Kubernetes, Terraform, Ansible, AWS (CCP Certified, EC2, EKS, Batch, MSK, Secrets Manager, Parameter Store, CloudWatch, S3, API Gateway, ELB, CloudFront, Route 53, Cognito, RDS, SQS, Java/Ruby SDKs, CLI), Project Reactor, Kafka, Kafka Streams, Kibana, Grafana, OAuth, JWTs, SSL/TLS, Java EE (Servlets, JSPs, EJBs), REST, SOAP, JSON, XML, YAML, nginx, Tomcat, JBoss, Unix/Linux cli tools (ssh, tmux, vi/vim, curl, gpg, etc.), Gradle, Maven, Ant, JUnit, TestNG, Git, Mercurial, Subversion, Coq, Alloy, Lustre, ESC/Java2, Flyway, Jackson, jEdit plugin development, Piccolo (Java library for zoom-able UIs),

Work Experience

UPMC Enterprises, Pittsburgh, PA
Senior Software Engineer, February 2022 to April 2024
Contributed to a large-scale medical records aggregation and analysis platform, consisting of a wide range of microservices and web apps. Highlights included:
  • Using reactive streams to improve throughput by more than 3x
  • Debugging our CI/CD pipeline to significantly improve job completion times (e.g. 8x)
M*Modal / 3M, Pittsburgh, PA (3M acquired M*Modal in February, 2019)
Senior Software Engineer, July 2017 to February 2022
Primarily Java+Spring Boot, with heavy usage of supporting technologies, plus leadership (included time as tech lead), architectural, and mentoring activities. The umbrella project was Computer Assisted Provider Documentation (CAPD) Services, a web service connecting a physician-facing GUI with a real-time natural language processor, providing layers for security and feedback customization. Highlights included:
Interactive Brokers Group, Greenwich, CT
Secure Application Developer, February 2015 to July 2017.
Primarily Java EE development, with some PL/SQL (Oracle), and emphasis on encryption and MFA.
The University of Iowa, Iowa City, IA
Research/Teaching Assistant, Instructor, August 2008 to December 2014
  • Taught and developed course material for introductory Java
  • Developed UIs for programming tools and conducted usability studies
    • Collaborated on securing NSF grant CCF-1250306
  • Assisted for various courses, including HCI and Formal Methods

Education

Publications / Presentations

Berman, B. A. and Hourcade, J. P (2014). Keyboard Card Menus: A New Presentation of Non-Standard Shortcuts. Journal of Universal Computer Science, Special Issue on Trending Breakthroughs in Human-Computer Interaction.

Berman, B. A. and Hourcade, J. P (2014). Keyboard Card Menus: Faster Learning of Many Fast Commands. In Proceedings of the XIV International Congress of Human-Computer Interaction (Interaction 2013), in the Spanish Congress of Informatics (CEDI), pages 105-112, Spain, 2013. ISBN 978-84-695-8352-4.

New Coq User Interfaces: Survey and Ideas. Presentation co-authored with Aaron Stump and Juan Pablo Hourcade. Presented at The Coq Workshop 2012, Princeton, NJ, USA, August 12, 2012.