Work Experience

Writings about what I've pushed to production

Bloomberg LP

Software Engineer

Current

At Bloomberg, I'm deeply immersed in the Java ecosystem, working on high-performance, mission-critical financial software applications. I collaborate with a team of engineers to develop and maintain robust systems that process vast amounts of financial data and support critical business operations.

Core Responsibilities:

  • Design and implement JVM-based solutions for complex financial data processing systems
  • Optimize application performance for handling large-scale, real-time market data
  • Develop and maintain microservices within Bloomberg's expansive tech ecosystem
  • Collaborate on API design and implementation for internal and external services
  • Participate in code reviews and technical design discussions
  • Work within agile development methodologies to deliver features and improvements

Technologies Used:

Gradle
JUnit
Java
Kafka
Microservices
PostgreSQL
RESTful APIs
Spring Boot

Projects I've Worked On

Core Java Infrastructure

I'm a leading member of a group of 30 people who maintain the core JVM libraries at Bloomberg. We maintain libraries that are used by thousands of developers at the core of Bloomberg.
My slice is usually build systems and CI pipelines, where I maintain the Gradle and Maven builds of the libraries. I also provide help for teams looking to migrate into the JVM ecosystem.
Recently, I've been working on streamlining code generation for Bloomberg's proprietary RPC protocol. This involves generating Kotlin code, as well as implementing a Kotlin codec for the protocol. This would eliminate Bloomberg's reliance on many external dependencies, which has caused migration issues in the past.

Model Driven Architecture Platform

Many teams at Bloomberg developed in silos. This means that each team developed their own model of the same financial concepts. In the modern era, many clients are interested in using Bloomberg as a provider for all of their financial data. This means that we need to have a single source of well-defined data models, both for our clients and for our internal teams.
We're building a platform that allows teams to define their data on a UI, then have code artifacts generated based on those models. We provide the messaging schemas, the database schemas, and a mapping between them. The ultimate goal is for developers to simplify business logic development, communicate using the same format, and have unified data storage.

Indication of Interest (IOI) pipeline

My first ever project at Bloomberg. The team wanted to migrate their legacy end-of-day C++ pipeline to a more real-time aggregation system. I was tasked with building a proof of concept utilizing Flink.
I set up the build, CI/CD, and Kubernetes deployment. I also ported the existing business logic to Flink, first using Java and then Kotlin.
The project was a success, and the team is deploying more and more of their data pipelines using Flink and Kotlin.

Technical Skills

Languages

Java
JavaScript
Kotlin
Python
SQL
TypeScript

Frameworks

Flink
Hibernate
JUnit
React
Spring Boot

Tools

Docker
Git
Gradle
Jenkins
Maven

Databases

Comdb2
PostgreSQL

Concepts

CI/CD
Domain-Driven Design
Microservices
RESTful APIs
Test-Driven Development

Interested in working together?