S M A Nahian

Projects

Most of what I build is open source; the code is on GitHub.

Dalek-Lite September 2025 – January 2026

Machine-checked proofs in Verus for Dalek-Lite, a fork of curve25519-dalek, the elliptic-curve library used by Signal and Tor. Part of my work at the Beneficial AI Foundation.

  • Proved 6 scalar and field arithmetic functions correct.
  • Specified limb bounds and modular invariants.
  • Found and fixed a wrong postcondition in square_multiply.

Built with Rust, Verus

BLANT October 2023 – August 2025

Basic Local Alignment of Network Topology, a tool from Prof. Wayne Hayes’s group at UC Irvine for analyzing large networks through their graphlets (small connected subgraphs). Ten of my pull requests were merged into it.

  • Redesigned two sampling methods, Node-Based Expansion (NBE) and Edge-Based Expansion (EBE), and derived their normalization formulas.
  • Wrote a faster algorithm for computing MCMC overcounting factors, cutting that step from 3.2 hours to 5.4 seconds for 8-node graphlets.
  • Developed a method to estimate absolute graphlet counts from star motifs.

Built with C, C++, Python

Chess Analyzer June 2025 – April 2026

A trainer that uses Stockfish to find the opening mistakes you keep making in your Lichess and Chess.com games and turns them into positions to practice. I built it to improve my own play.

  • Practice mode has hints, streaks, and session history.
  • Runs locally as a web app; you can upload PGN files or sync games straight from both sites.

Built with Python, FastAPI, SQLite, Stockfish, JavaScript

Bangladesh Election Map February – March 2026

An interactive map of Bangladesh’s 2026 general election, seat by seat.

  • Shows vote shares, winners, turnout, and margins, by constituency or by district.
  • Lets you put two maps side by side, plot any statistic against another with a regression line, and share a link to the exact view you’re looking at.
  • Uses the Election Commission’s official results, scraped by a Python pipeline and checked against counts merged from four Bangladeshi news sites.

Built with Python, pandas, JavaScript, Leaflet.js, GitHub Actions

ssehC September 2024 – April 2025

A chess engine I built in C to learn how engines work. The name is “chess” spelled backwards.

  • Closely follows BlueFeverSoft’s VICE tutorial (move generation, evaluation, and alpha-beta search).
  • Plays on Lichess as the bot sseh-c, which has reached a rating of about 2100 over more than 70,000 games.

Built with C

CP Calendar February – May 2022

A calendar of programming contests from more than 120 sites, built on the CLIST API. My first big open-source project, made because I wanted CLIST’s calendar with some long events filtered out.

  • Filters contests by site and by keywords you allow or block.
  • Turns your filtered list into an .ics feed for Google Calendar or any other calendar app.

Built with Python, Flask

BeatVote September 2025

A collaborative karaoke and party music room, built at HackMIT 2025 in a team of four. People search YouTube, add songs to a shared queue, and vote on what plays next.

  • Built the Flask and MongoDB backend, with logins, guest access, and a shared queue that stays in sync for everyone in the room.
  • Wrote a YouTube search proxy and a Chrome/Brave extension that plays the queue in the host’s browser, with an in-page player as another option.

Built with Python, Flask, MongoDB, JavaScript

Spotify Addon: lyrics from LRCLIB February 2024

An open-source Java widget by LabyStudio that shows the song playing on Spotify, with its synced lyrics.

  • Added LRCLIB (lrclib.net) as a new lyrics source, now the first one it checks, so songs in Bengali, Hindi, and other languages get synced lyrics.
  • Learned Java to do it; the author merged my pull request the same day.

Built with Java

PokerBros April 2026

A self-hosted Texas Hold’em game for playing with friends: run it on your laptop, share a tunnel link, and everyone plays in the browser.

  • Handles betting rounds, side pots, antes, straddles, bomb pots, and a turn clock with a time bank, for up to 9 players.
  • The host can change blinds, rebuy chips, and sit players out mid-game.

Built with JavaScript, Node.js, Express, Socket.IO