PNC: Software Engineer, Data Streaming Platform

As a Software Engineer on PNC’s Data Streaming Platform team, I work on the systems that support much of the retail bank’s real-time data movement and event streaming. Our team owns and supports Kafka-based streaming infrastructure used across a wide range of retail banking applications, and most of my application development is done in Java and Spring Boot. My work spans building and maintaining streaming applications, provisioning Kafka topics, improving platform observability and performance, and helping other engineering teams integrate with our APIs and streaming systems.

I have contributed to multiple Kafka Streams applications across different projects. For an early-pay initiative that enables eligible customers to access direct deposits up to two days early, I helped design the Kafka topic architecture across raw, ingested, repartition, and changelog streams and worked on the payment notification pipeline itself. I have also worked on longer-running streaming applications, including extending mapping logic, standardizing account-number handling, filtering malformed events, and adding event-time mappings to improve downstream monitoring and reliability.

Because our platform is shared by teams across the bank, I also support engineers who build on top of our systems. This has included provisioning Kafka topics for new projects, handling support tickets related to Kafka Streams, internal APIs, and existing platform applications, and troubleshooting issues that arise as other teams integrate with the platform.

More recently, I have focused on improving the efficiency of our streaming workloads in OpenShift. I analyzed Dynatrace CPU telemetry across hundreds of applications, tuned Kubernetes resource limits and Kafka stream-thread configurations, and built Python tooling to automate CPU analysis and deployment updates. This work eliminated CPU throttling for one production application while reducing its processing time by 1.5 hours, and helped reduce CPU allocation across validated workloads from 96% to 81%. I also extended an internal observability dashboard with Dynatrace mappings for more than 700 Kafka connectors, using session-level caching to bring repeat-load latency down to 0.11 seconds.

Working on the Data Streaming Platform has given me experience across both the application and infrastructure sides of distributed systems, from designing and maintaining Kafka-based data flows to supporting platform consumers, improving observability, and optimizing production workloads running at scale.

PNC: Software Engineer

As part of PNC Bank’s Software Engineer Rotational Program, I contributed to the development and deployment of large-scale internal platforms used across multiple business units. My work centered on building and enhancing enterprise dashboards with Angular, Java, and Spring Boot, supporting over 1,000 internal users and enabling better visibility into key enterprise systems.

I played a key role in extending C# APIs to integrate Teradata-sourced data via MongoDB, designing new endpoints, data types, and mappers to streamline data flow across services. Additionally, I delivered significant upgrades to internal APIs and dashboards that were adopted by PNC’s enterprise architecture community (~300 developers), improving system observability and reducing troubleshooting time.

Throughout the program, I guided features through PNC’s full release pipeline (RND → UAT → QA → Production), ensuring secure, stable, and reliable deployments at scale. This experience strengthened my ability to work within complex enterprise environments, ship production features across diverse technology stacks, and collaborate with cross-functional teams to deliver high-impact solutions.

PNC: Technology Intern

During my internship, I utilized cutting-edge machine learning techniques to automate and enhance the quality control process for SOX (Sarbanes-Oxley) reports. My work primarily focused on creating and refining algorithms to detect anomalies and streamline data processing using scikit-learn and JupyterHub. By implementing a range of supervised and unsupervised models, I significantly improved anomaly detection capabilities.

I conducted thorough data preprocessing, including feature selection and dimensionality reduction, which greatly enhanced model input quality and boosted model efficiency by 20%. Furthermore, I integrated advanced statistical methods and employed ensemble techniques to develop more robust and scalable models. This process involved rigorous cross-validation and the application of relevant performance metrics.

In addition to algorithm development, I increased overall data processing efficiency by 30%, contributing to a 60% reduction in manual quality control time. Through iterative tuning and validation, I improved anomaly detection accuracy by 15%, achieving a final model accuracy of 92%. These advancements not only automated a previously manual process but also significantly improved the accuracy and efficiency of quality control for SOX reports, highlighting the potential of machine learning in enhancing regulatory compliance workflows.

About Me!

I graduated from Rutgers University with a double major in Computer Science and Cognitive Science and a minor in Philosophy, which I pursued for the love of the game. I now live and work in Dallas, Texas, where I’m a Software Engineer on PNC’s Data Streaming Platform team.

At work, I spend most of my time working with Java, Spring Boot, Kafka Streams, Kafka, and Python across a pretty wide range of problems. What I’ve enjoyed most recently is the scale of the work. Being part of a team that supports data streaming across an entire bank means there are a lot of interesting systems and optimization problems to think through. I’ve always liked making things faster, more efficient, or just generally better, so getting to work on those kinds of problems at a large scale has been especially satisfying.

Outside of work, I really enjoy reading and writing, and I recently finished the first draft of my first novel. I’ve also gotten into gardening and am currently very invested in keeping my cilantro alive. I still love probability problems, and in general I’m always trying to learn something new, whether that means picking up a new technical skill, reading about something completely unrelated to computer science, or trying out a new hobby.

A lot of what I enjoy, both in and outside of work, comes back to learning, building, and figuring things out. I like problems that make me think, projects where I can see something improve over time, and having enough variety in what I’m doing that there’s always something new to get better at.

Apartment Copilot

Watch demo on YouTube

Personal Project | Full-Stack Web Application (FastAPI + React + SQLite)

Apartment Copilot is a full-stack web application designed to streamline the apartment-hunting process by automatically scraping, ranking, and explaining rental listings. Users can input links to multiple apartment sites, and the system consolidates data into a unified, AI-powered dashboard that ranks the top options based on customizable criteria.

On the backend, I built a FastAPI service that asynchronously fetches and parses listings, applying deduplication, error handling, and polling mechanisms to maintain real-time data accuracy with minimal latency. The results are persisted in a lightweight SQLite database, making it easy to deploy while ensuring reliable state management during scraping and ranking.

On the frontend, a React interface displays ranked listings and explanations in real time, providing users with a clean and intuitive way to compare apartments side-by-side. The system currently scales to 200+ listings during testing, with a modular design that will support more complex ranking logic and AI-driven explanations going forward.

In upcoming iterations, I plan to explore prompt engineering to generate more natural, context-aware summaries. Beyond the technical improvements, I aim to deploy Apartment Copilot and engage with local apartment agencies to pilot the tool on their websites. This would provide real-world user feedback, allowing me to iterate quickly and refine both the system’s capabilities and its user experience—moving the project closer to a production-ready, impactful solution.

Rutgers Hackathon

Worked on a 3 person team to make a web app that displays crowds in our university gyms using live user input as data for the crowd meter. We created an interface to take in user input for what their perceieved crowd level at the gym is, we also deleted data that was older than 15 minutes old to keep meter fresh and accurate. We used python for the back and front end, utilized Streamlit API for the webpage and user input, and we launched online with AWS. I learned how to use python and AWS for this, and was able to experience working on a team for a real world project. Our efforts won us the health track for the 2023 Rutgers Hackathon.

Huffman Coding

Implemented a Huffman coding algorithm to compress text files, achieving up to 50% reduction in file size. Used a priority queue (min-heap) to build a binary tree, reducing time complexity for tree construction to O(nlogn). Assigned binary codes to 256 unique characters based on their frequencies, optimizing for space efficiency. Encoded text into binary format, reducing the average character representation length from 8 bits to as low as 3 bits for the most frequent characters.

My Writing

Outside of software, I love to write! My main pieces are my first novel that I am currently in the process of writing (200 pages strong!) and a variety of essays exploring philosophy, technology, and personal reflections. This section contains some of my favorite works!

Theory Theory as a Superior Theory of Mind

A comparison between two prominent theories of mind: Simulation Theory, arguing we understand others' minds by imagining ourselves in their shoes, and Theory Theory, arguing we use knowledge and principles to understand others' minds, improving iterativly.

Demystifying Marx's Commodity and Analyzing the Rise of Manufacture

A dual objective paper, aiming to analyze Marx's concepts of the Commodity and the Fetishes we build around them, as well as how the modern age has effected our relationships and family dynamics.

An Analysis of Freudian Sexuality Theories

This paper looks at Freud's theories of the effect sexual experiences during development may have on the development of children and adult fixations.

Elements

Text

This is bold and this is strong. This is italic and this is emphasized. This is superscript text and this is subscript text. This is underlined and this is code: for (;;) { ... }. Finally, this is a link.


Heading Level 2

Heading Level 3

Heading Level 4

Heading Level 5
Heading Level 6

Blockquote

Fringilla nisl. Donec accumsan interdum nisi, quis tincidunt felis sagittis eget tempus euismod. Vestibulum ante ipsum primis in faucibus vestibulum. Blandit adipiscing eu felis iaculis volutpat ac adipiscing accumsan faucibus. Vestibulum ante ipsum primis in faucibus lorem ipsum dolor sit amet nullam adipiscing eu felis.

Preformatted

i = 0;

while (!deck.isInOrder()) {
    print 'Iteration ' + i;
    deck.shuffle();
    i++;
}

print 'It took ' + i + ' iterations to sort the deck.';

Lists

Unordered

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Alternate

  • Dolor pulvinar etiam.
  • Sagittis adipiscing.
  • Felis enim feugiat.

Ordered

  1. Dolor pulvinar etiam.
  2. Etiam vel felis viverra.
  3. Felis enim feugiat.
  4. Dolor pulvinar etiam.
  5. Etiam vel felis lorem.
  6. Felis enim et feugiat.

Icons

Actions

Table

Default

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Alternate

Name Description Price
Item One Ante turpis integer aliquet porttitor. 29.99
Item Two Vis ac commodo adipiscing arcu aliquet. 19.99
Item Three Morbi faucibus arcu accumsan lorem. 29.99
Item Four Vitae integer tempus condimentum. 19.99
Item Five Ante turpis integer aliquet porttitor. 29.99
100.00

Buttons

  • Disabled
  • Disabled

Form

function scrollToSection(sectionId) { const section = document.getElementById(sectionId); if (section) { section.scrollIntoView({ behavior: 'smooth' }); } }