Work Experience
Writings about what I've pushed to production
Bloomberg LP
Software Engineer
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:
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.