Skip to content
SS · Siddhanth Sethi, home

// Siddhanth Sethi

// Portfolio © 2026

SIDDHANTH
SETHI

Product Manager, Full-Stack Engineer, UI/UX Designer, Writer, Educator

I close the gap between what should exist and what does.

Scroll down to explore.

002 · About

About

I'm a CS engineer from IIIT Agartala who works across the whole product: deciding what to build, designing how it feels, engineering how it scales, and explaining it so others can build on it.

  • Product managementDirectionDecides what is worth building before anything is built.
    • Product Management Intern, Darwix AI: conversational AI for the BFSI sector
    • Core Team Member, Entrepreneurship Cell (E-Cell), NIT Agartala
  • Full-stack & systemsStructureBuilds systems that fail gracefully.
  • UI/UX designFormMakes the complicated feel obvious.
    • UI/UX Trainee, Techugo: wireframes and interactive Figma prototypes
    • Design Team Lead, Developers & Coders Club (DCC), NIT Agartala
    • This site: designed and built end to end
  • Writing & researchRecordWrites the manual so others can build on it.
  • TeachingTransmissionExplains it until it clicks.
    • Vice-President, CODE, IIIT Agartala
    • Design Team Lead, DCC, NIT Agartala
Quick facts
Class of 2026IIIT Agartala
PM InternDarwix AI
UI/UX TraineeTechugo
LeetCode KnightTop 3.28%
2 flagship systemsLogPort · GraphSTL
BaseIndia · IST
003 · Work

Work

  1. 001● Shipped

    LogPort

    LogPort · Real-time log ingestion pipeline

    LogPort architectureClients send logs to a Fastify API, which authenticates and rate-limits each request. For every accepted log the API does two things: it pushes the log onto a Redis list (LPUSH) and publishes it on a Redis Pub/Sub channel. A separate worker pops up to 100 logs at a time (LMPOP) and inserts them into ClickHouse in batches, retrying with exponential backoff and moving batches that still fail to a dead-letter queue. The WebSocket server subscribes to the Pub/Sub channel and pushes each log to the dashboard. The worker never publishes.LPUSHPUBLISHLMPOPINSERTCLIENTSbatched writesFASTIFY APIauth · rate limitREDIS PUB/SUBlogport:liveREDIS LISTlogport:queueWORKERflush 100 / 2sCLICKHOUSEMergeTreeDLQafter 3 retriesWEBSOCKET/ws · 3s retryDASHBOARDlive tail · pause/resume
    ━ each log, on the request path━ batches, off the request path┅ failed → DLQ
    Problem
    Take in logs at volume without losing them when the database fails, and show them live as they arrive.
    Stack
    ReactNode.js · FastifyRedisClickHouseWebSocketDocker

    Highlights

    • Ingestion: a Fastify API validates, authenticates and rate-limits batched writes, then LPUSHes each log onto a Redis list; a separate worker drains it with LMPOP in batches of 100 into ClickHouse.
    • Fault tolerance: failed inserts retry with exponential backoff (500 → 1000 → 2000 ms), then move to a capped Redis dead-letter queue that can be replayed.
    • Live and secured: the API publishes every accepted log over Redis Pub/Sub to a WebSocket feed with auto-reconnect and pause/resume; JWT or API-key auth; a Redis sorted-set limiter per key and endpoint.
  2. 002● Shipped2026

    GraphSTL

    GraphSTL · Header-only C++17 graph library

    GraphSTL example graphA directed weighted graph of six nodes, A to F. Dijkstra from A to F follows A, C, D, F.42103515ABCDEF
    #include <GraphSTL/graph.h>#include <GraphSTL/graph_algorithms.h>using namespace custom_stl; graph<char, int, true> g;  // directedfor (char c : {'A','B','C','D','E','F'}) g.addNode(c);g.addEdge('A','B',4); g.addEdge('A','C',2);g.addEdge('B','D',10); g.addEdge('C','E',3);g.addEdge('C','D',5); g.addEdge('D','F',1);g.addEdge('E','F',5); auto [cost, path] = dijkstra(g, 'A', 'F');// cost = 8, path = A C D F
    Problem
    Give C++ a graph container that feels like the standard library, with algorithms decoupled from the container.
    Stack
    C++17CMakevcpkgGitHub Actions
    12
    Graph algorithms
    46
    Unit tests in CI
    0
    Dependencies

    Highlights

    • graph<T, Weight, IsDirected> with O(1) average-case node lookup (hash maps both ways between node data and IDs) and STL-style forward iterators.
    • 12 algorithms as free functions: BFS, DFS, Dijkstra (heap and naive), Bellman-Ford, A*, Floyd-Warshall, Kruskal's MST, Kahn's topological sort, Kosaraju's and Tarjan's SCC, plus cycle detection.
    • 46 unit tests run in GitHub Actions CI, plus a benchmark comparing heap-based Dijkstra, O((V+E) log V), with the O(V²) linear scan.
004 · Skills

Skills

Core

All skills

Languages
CC++JavaScriptTypeScript
Technologies
HTML5CSS3Tailwind CSSReactNode.jsFastifyWebSocket
Databases
MongoDBSQLRedisClickHouse
Fundamentals
Data structures & algorithmsOOPOperating systemsDBMSDistributed systems
Tools
GitGitHubVS CodeDockerCMakeFigmaCanvaFilmoraAdobe Acrobat

Numbers

1961
LeetCode rating · Knight
3.28%
Global top, LeetCode
305
Problems solved, LeetCode
39,725
JEE Main 2022 AIR
005 · Contact

Let's build something meaningful.