Eric Sohel

Software engineer working on backend systems, multi-agent AI, and security tooling.

New York City/ericsohel05@gmail.com

About

I'm studying computer science and applied math at Stony Brook University — graduating 2027. I just wrapped my second SWE internship at Capital One in NYC, where I built a multi-agent system that automates financial reporting — now used by 20 teams across Finance Tech.

Before that, I built a fuzzer for Meta's Pysa security analyzer through the MLH Fellowship — 10,000+ generated Python programs with known source→sink taint flows, uncovering 30+ flows Pysa missed. Right now I'm building Kalshi Tape, an order-book flight recorder for prediction markets, and DraftIQ, a production REST API for fantasy baseball auction drafting.

The Ride So Far

the eric local — makes all stops

hover or tap a stop.

Experience

Jun – Aug 2026

Capital One — SWE Intern, NYC

  • Built a multi-agent system using Python, LangGraph, and FastAPI that automates creating financial reports.
  • Designed a three-stage pipeline: natural-language-to-SQL retrieval across 2K tables, analysis, and an orchestrator rendering charts, tables, and commentary revisable via chat; features strict validation and intelligent remediation.
  • Cut report generation time 75% by parallelizing LLM calls; cut cost by caching retrieved data in Redis.
  • Adopted by 20 teams within Finance Tech with a 95% satisfaction rate.
NL prompt "may card-spend report" SQL generation prompt → queries warehouse 2K tables rows analysis trends · anomalies → template orchestrator fan out · validate · remediate commentary agent charts agent tables agent final report commentary · charts · tables ⟲ revise via chat
pipeline illustration — the diagram lights up as it runs
Jun – Aug 2025

Capital One — SWE Intern, Wire Transfer Platform, McLean

  • Built the React UI of a wire transfer platform that facilitated 5K+ daily payments worth ~$1B.
  • Implemented wire-execution and validation logic across the platform's Node.js and Fastify microservices, using idempotency keys so each wire executes exactly once despite network failures or duplicate requests.
  • Built a PostgreSQL-backed state machine coordinating checks across 4 verification services.
wires
idempotency key 7f3a…c2

An illustration of the flow — the real platform runs inside Capital One. Send the same wire twice and watch the ledger.

May – Aug 2024

Meta — SWE Fellow, MLH Fellowship · Pysa Static Analyzer

  • Built a fuzzer generating Python programs with known source-to-sink taint flows through randomized call graph patterns and nested objects, uncovering 30+ flows missed by Pysa, Meta's static security analyzer.
  • Added a live timer and performance metrics to Pysa's terminal output so engineers could track analysis runs.

10,000+ generated programs; landed upstream as scripts/pysa_fuzzer (from pyre-check#886) — since extended by Meta’s Pysa team.

taint-flow illustration — the class of bug the fuzzer hunts
name = request.GET["q"]  source
query = f"SELECT * FROM users WHERE name = '{name}'"
helper(query)
def helper(q):
    cursor.execute(q)  sink
Mar – Jun 2024

Stanford University — Teaching Assistant, CS 106A Programming Methodology

  • Led Python lectures and interactive lab sections for 200+ students, covering programming and data structures.

Stanford's free global CS 106A — 30,000+ learners across 100+ countries. Invited back as Head TA for the next cohort.

Projects

2026 — now

Kalshi Tape

  • Building an order-book flight recorder for Kalshi, which exposes no historical depth: raw WebSocket frames go to an append-only zstd tape before any parsing, and all prices and dollars are fixed-point integers.
  • Wrote the exchange client (RSA-PSS signing, a client-side mirror of Kalshi's token-bucket rate limits, a bounded-buffer WebSocket session), tested against a scripted fake exchange and live endpoints; 98% coverage.

PythonasyncioParquetzstdGitHub Actions

The recorded tape stays private (Kalshi’s data terms); the code, methodology, and integrity metrics are public. The panel above draws a live liquidity heatmap straight from the recorder’s feed — time across, YES price up, denser colour where more contracts rest — and the full WebGL viewer is one click away.

2025 — now

DraftIQ Player Data API

  • Built a fantasy-baseball auction draft assistant that computes a fair price for each of 1,300+ MLB players by distributing the league's total auction capital according to statistical player value.
  • Launched a developer portal with self-service API key management, secure password hashing, signed-cookie sessions, per-key IP whitelisting, sliding-window rate limiting, and a 30-day audit log.
  • Ingests live MLB data on a tiered scheduler and re-values every player with a z-score, replacement-baseline engine — full budget allocation in about 3 seconds.

Node.jsExpressSQLiteReactMLB Stats APIOpenAPI 3.0

MLB APItiered ingestz-score engineREST APIthis widget

2026 — now

Open Orderbook — trade $ERIC, right here

  • Built a low-latency limit order book and matching engine in C++17 with price-time priority, guaranteed price improvement, O(1) cancels; benchmarked at 24.3M ops/sec (41 ns/op) on a mixed workload of limits, cancels, and markets.

The C++ core also speaks NASDAQ TotalView-ITCH 5.0: it replays a full real trading day — 268.7M messages, 8,906 symbols, peak 1.9M live orders — with zero integrity violations. A JavaScript twin held to the same 12-case test list runs the live market below — a market maker quotes around a drifting fair value, a noise trader takes liquidity, and you trade against both.

C++17JavaScriptITCH 5.0zero dependencies41 ns/opGitHub Actions CI

The demo runs the JS engine entirely in your browser; the C++17 core in the repo passes the same test suite at 24.3M ops/s. The terminal trades this market too: try `buy 5`. ($ERIC is not listed. Yet.)

Skills

Languages
Python, C++, Java, TypeScript, JavaScript
Databases
PostgreSQL, MongoDB, SQLite, Redis.
Backend & Tooling
Node.js, Fastify, Express, React, Docker, Linux, Git, GitHub Actions, CI/CD, Jest, static analysis, AWS.

Awards

Bookshelf

The ones I push on people.

current position Thinking in Systems — Donella Meadows

research desk

puzzles & proofs

long-term holds

hover or tap a spine.

The Blotter

The music desk — real positions, live from the Spotify API.

Pulling live positions from the Spotify API… if the feed stays quiet, `nowplaying` in the terminal will tell you why.

Contact