← All blogs

Reflections after a Susquehanna internship

I spent this summer in Philadelphia as a Trading Systems Engineer intern at Susquehanna. This post is mostly a diary of the ten weeks: what the program looked like, what I built, and life outside the office. Toward the end I also reflect on how it went, since I came away with more to think about than I expected.

Me in front of the Susquehanna sign

Context

I interviewed at Susquehanna during my junior year for a summer internship. The trading systems engineer (TSE) role interested me for its emphasis on C++. I had a lovely time throughout the process, and was very happy to pass my first onsite.

Through the rest of spring semester, I picked Vimficiency back up (after being on hold for recruiting) and worked on my C++ fundamentals: reading Effective Modern C++ and Design Patterns, and watching CppCon talks about trading systems. I wanted to go in very prepared, because it was a great opportunity.

I can’t divulge much of the actual content due to NDA, but I would like to reflect on the experience.

General education

The first two weeks were introductory speakers and general education shared by all the interns. Each day had roughly three blocks of notebooks: interactive guides to riptable (an internal tool similar to pandas), financial terminology, option theory, and trade types. The notebooks were openly graded by Claude (we did not get access to Claude ourselves yet), which I wasn’t sure how to feel about. Since I’m less familiar with Python, I struggled a bit with the syntax, though as expected the interns in non-technical roles did too. Like everyone else I asked my deskmates when I was stuck, but it was hard to tell how much these scores actually mattered.

Talks covered firm philosophy, a day in the life, financial structure, and so on, from Jeff Yass, Mark Dooley, and Doug Costa. The most surprising was a talk by Bjarne Stroustrup, the creator of C++. It was a bit unusual for him to go into detailed C++ ideas for such a wide variety of interns, but it was my favorite talk.

Along the way, I kept thinking about what the technical side of my work would look like. Learning is integral and fun, but I wanted to develop my specific skills. I made it a mission to find the other TSE interns, since there wasn’t a centralized listing of them.

General education continued into the later weeks through talks, mock trading, and an options theory quiz. I did alright (82%) on the options quiz, which I heard was a big deal for traders but wasn’t sure about for TSEs, and not too great in mock trading, but I learned a lot.

Philly

Interns were provided housing in Philadelphia, which meant commuting to and from work (about 30 minutes) every day. I lived at the Residence Inn in Center City, so the 44 bus was pretty direct, though occasionally I took a rideshare if I was running late. A lot of interns split rideshares frequently.

Center City was quite nice. I didn’t go to many of the historical spots, but I enjoyed having Reading Terminal Market nearby, and went to the FIFA Fan Festival for the 2026 World Cup. I really liked Chinatown: lots of great places to eat, and I explored a lot this summer. I posted a lot to Beli (a restaurant-rating app), but some of the other interns had an insane Beli presence.

I also started rock climbing at Movement. It’s pretty fun, and an employee recognized the SIG logo on my water bottle once. Overall, Philly is a pretty nice smaller-scale NYC.

Project 1: market maker

Starting in week 3, the interns were separated by role. There were 12 TSE interns in total.

Weeks 3 through 7 were spent on a mock market maker. We were placed in teams of three, given access to a limited set of internal libraries and some rough goals, and, finally, access to Claude.

We had daily meetings with our mentor and weekly presentations of our progress. The week 1 goal was basically to build the entire system to support click trading. We got off to a rough start: our use of Claude and a lack of coordination led to the difficult decision to reset the codebase and start from scratch at the beginning of week 2. During that start, I felt like I was grasping the terminology and architectural design more slowly than my peers, and the lack of documentation for the libraries didn’t help. I focused a lot on getting our team working well with CI/CD and a standard merge request structure, since we were often stepping on each other, and primarily worked on market data ingestion, risk controls, bracketing, and latency measurements throughout.

Looking back, two things stand out. First, I often started on a feature and then wasn’t sure how to build on it; a teammate would offer some advice and end up carrying it later on. Perhaps I didn’t stand up enough for the features I wanted to be mine. Second, when people think of a market maker, the strategy is the most important part, and I could have pushed for more avenues to make ours more sophisticated. I held back because I didn’t want to take away from our understanding, like what happened in the first week.

Project 2: exchange

The next project, weeks 7 through 10, was individual, split between VWAP (more strategy-focused, in Python) and Exchange (more infra-focused, in C++). I requested the exchange and am happy with my choice. Unlike the market maker, we were now on the exchange-building side, with no internal libraries to depend on. My mentor was someone I remembered from my interviews, and they were great at giving feedback and fun to talk with about architecture, software design, and self-reflection in general. A lot was similar to the market maker, but having ownership of every part felt quite different. We started by creating a shared spec and binary encoding protocol, and later weeks followed up on correctness, latency, throughput, and some optional features. The scope was adjusted as we progressed.

The tests were run against everyone’s exchange and playfully ranked, but I would have liked more specificity on how important each test was and how they would be structured. What traffic patterns to optimize for, for instance, is a difficult design decision for an exchange. Perhaps the vagueness was intended (it certainly was with the spec, which had a process for adjustments and clarifications), but as a result I think I spent a lot of time on aspects that weren’t very important in the final evaluation. Throughout, I felt I had less understanding of networking fundamentals and the low-level optimization cycle than I would have liked. I particularly enjoyed the emphasis on documenting AI usage and design decisions right in the repo, and I came to understand the value of metacognition more through meetings with my mentor.

Reflections

I felt decent about general education, however much of a factor that was. Going into the first project, I didn’t feel great because of my slow start, but tried to be a good team member throughout. My mid-internship feedback was mostly positive, with a tip to take more ownership. I took that to heart in the second project, and felt good about the feedback from my mentor, which carried into the final feedback session. So I was pretty devastated to get the result that I would not be getting a return offer.

I didn’t get explicit reasons, but I immediately started thinking about what went wrong. My first project definitely did not go as well as I would have liked. More generally, my technical foundations felt shakier than ideal. I prepared and tried very hard, and took initiative wherever it was reasonable; should I have prepared and tried harder? I believe I would perform well, but I’m maybe upset that maybe I didn’t prepare the right things. I had asked my program manager for topics to prepare in advance, but an answer from someone more familiar with the program, like the mentor or project lead I ended up with, might have pointed me toward networking, operating systems, the latency improvement cycle, or building a market maker or exchange from scratch beforehand. Any of those would have been a much more helpful background.

As a result, I’m in one of the worst positions for an upcoming graduate: no guaranteed offer at graduation. I’m thankful that the internship gave me great experience (particularly with the quant field) and the drive to stay focused on my studies and recruiting, but I do miss being able to relax in my final year. I had a great time this summer, and the people were incredibly smart and driven, but every day I regret not doing better while I was there.

Thinking back to the comment about ownership, perhaps I shouldn’t have been so focused on treating the project as a team project, and instead pursued features and exploration more individually and visibly. Why did I forget that? I should have been able to point every day to something I worked on, and I definitely had the curiosity to explore, but I got distracted on tasks that were not as visible. But I can’t really know.

It’s lunchtime. I’m hungry, and I got a whole day ahead of me.