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.