
Candidates describe Tower Research Capital Software Engineer interviews as a coding assessment followed by technical rounds on C++, Python, operating systems, networking and design, plus project and behavioral conversations.
$180K
Avg. Base Comp
$200K
Avg. Total Comp
3-6 rounds
Typical Rounds
Not reported
Process Length
Candidates describe the Tower Research Capital Software Engineer interview as warm in tone but demanding on language and systems fundamentals rather than puzzle-solving alone. Every report we have ends without an offer, so this is best read as a map of where people felt tested.
C++ comes up most often. Candidates mention smart pointers, templates, virtual functions and vtables, copy and move semantics, and how std::vector and std::unordered_map work internally, along with testing and networking basics. One person implemented smart pointers and discussed design patterns in a short live round with two questions. A separate report centered on Python: parsing sample datasets and defending the choice of built-in structure and its cost.
Systems questions are the second theme. Reports cover operating systems, virtual memory, CPU caches, TCP versus UDP, and multicast, and one candidate fielded low-latency prompts such as a market-data feed handler. Design questions elsewhere included a file system, a book management service with a database schema, and an object-oriented C++ system.
Algorithms matter but are not always the hardest part. One candidate described a three-question, competitive-programming-style assessment that included binary exponentiation and still advanced with partial credit; others got LeetCode-style live coding.
Expect to walk through past projects, including tradeoffs, bottlenecks and scalability. One candidate who traveled to Montreal found the onsite format different from what they expected, so confirm round types and format with your recruiter first.
Synthesized from 7 candidate reports by our editorial team.
Had an interview recently?
Share your experience. Unlock the full guide.
Real interview reports from people who went through the Tower Research Capital process.
What caught me off guard at Tower was how little the loop felt like a puzzle contest. I had spent weeks on math and algorithm problems, expecting the usual whiteboard grind, but the real focus was whether I could write Python that was clean, correct, and efficient. The tasks involved parsing and working with sample data sets. They were fairly simple on paper, but I kept second-guessing choices I'd normally make without thinking, like which built-in structure to reach for and whether a loop was costing more than it should.
The process ran over several rounds across a few weeks, all conducted by video with different members of the team. Alongside the coding, the conversations covered my past experience and the projects I had worked on, so I'd recommend being ready to walk through previous work in real depth, including the tradeoffs you made and why. The interviewers were friendly, and the recruiter kept communication clear throughout, which made the gaps between rounds easier to handle.
I didn't get an offer. Looking back, I underestimated how much the language itself would be tested. I'd suggest spending time on Python's standard library, its core data structures, and the performance characteristics of each, rather than relying only on algorithm practice.
Prep tip from this candidate
Drill Python-specific efficiency by practicing parsing and manipulating sample datasets with the standard library, and be ready to explain why you chose a given data structure and what it costs. Reviewers stressed clean, efficient code over clever algorithms.
Share your own interview experience to unlock all reports, or subscribe for full access.
Sourced from candidate reports and verified by our team.
Topics based on recent interview experiences.
Featured question at Tower Research Capital
Select the 2nd highest salary in the engineering department
| Question | |
|---|---|
| Employee Salaries | |
| Merge Sorted Lists | |
| Subscription Overlap | |
| Closest SAT Scores | |
| Empty Neighborhoods | |
| Top Three Salaries | |
| Monthly Customer Report | |
| Rolling Bank Transactions | |
| Find the Missing Number | |
| Maximum Profit | |
| Bagging vs Boosting | |
| String Shift | |
| Prime to N | |
| Comments Histogram | |
| Top 5 Turnover Risk | |
| Like Tracker | |
| Find the First Non-Repeating Character in a String | |
| Size of Joins | |
| Total Spent on Products | |
| Google Maps Improvement | |
| P-value to a Layman | |
| Rectangle Overlap | |
| Cumulative Distribution | |
| Top 3 Users | |
| Over-Budget Projects | |
| Slacking Employees Salaries | |
| Hurdles In Data Projects | |
| Sum to N | |
| Over 100 Dollars |
Synthesized from candidate reports. Individual experiences may vary.
Candidates report an initial screen whose form varies. One took a HackerRank test of multiple-choice questions on how C++ concepts work. Another faced three hard competitive-programming-style problems, including binary exponentiation, solved one fully and part of another, and still moved forward. A third described two virtual coding interviews before any onsite.
Several candidates describe video interviews with different team members that mix a walkthrough of their CV and projects with technical questions. Reported topics include data structures and algorithms, C++ fundamentals, Python data processing and storage, and object-oriented programming. Interviewers were described as friendly, and one candidate said mistakes were fine if corrected later.
Some candidates were asked about operating systems, virtual memory, CPU caches and networking, including TCP versus UDP and multicast. Design prompts included an object-oriented C++ system, a file system with directories and listing and deleting methods, a book management service with a database schema, and a market-data feed handler. Depth appears to vary by interviewer and seniority.
Hands-on coding tested language knowledge as much as final answers. One candidate got two questions in about 30 minutes, including implementing smart pointers in C++. Another parsed sample datasets in Python and explained the cost of each data structure choice. A third did LeetCode-style problems live and debugged existing C++ code.
Later conversations focused on background and communication. One candidate had a hiring manager round on low-level system design that moved on to past projects and internships, then an HR round with standard behavioral questions. Another had a behavioral round about a recent project and its scalability tradeoffs. One was asked why they were changing jobs.