Career
Ten years of public code: what changed from 2016 to 2026
My first public repository is a custom styled HTML5 video player from October 2016, built for an internship application. Ten years later the newest commit on this profile is the site you are reading. In between are a few dozen repositories that trace, more honestly than any résumé, what I was working on and what I cared about each year. This is a walk through them.
I have tried to keep this factual. The dates come from the repositories themselves; the reflections are mine.
2016: learning in public by accident
VideoPlayerCss was HTML and CSS and nothing else. A month later ProductsDisplay rendered a product catalogue from JSON with jQuery and Bootstrap, and in December I pushed an unofficial PayTM API written in PHP, which was me poking at a wallet's request flow to understand how it worked. GitHub was simply where code went so I could show it to someone.
The jQuery of that year looked like this, and I wrote a lot of it.
$.getJSON('products.json', function (data) {
$.each(data, function (i, p) {
$('#grid').append(
'<div class="col-md-3"><h4>' + p.name + '</h4>' +
'<p>' + p.price + '</p></div>'
);
});
});
2017: freelance PHP
This is the year I started getting paid for code. A fantasy league voting portal on Lumen in January, this website (then a Jekyll theme) in February, a Node backend for an ice cream shop's ordering app in April, and in the same month city_cars, the reporting engine for a car dealership that I kept maintaining until 2019. PHP and Laravel were a good default for small business work: cheap hosting, fast to build, easy to hand over.
2018: Node, experiments, and the first model
2018 is the busiest year on the profile. A multi-level marketing platform with tree algorithms, a fleet management system on Loopback and AngularJS, an HTTP proxy that injected scripts into pages for testing browser plugins, an Instagram image downloader, and pwa_notes, my first offline-first app with a service worker.
The one that mattered most was captcha_ai, started in January. A scikit-learn pipeline that segmented captcha images into letters and classified them, served behind a PHP API. It was the first time I trained a model that did something useful, and the first time I understood that most of the work in machine learning is the preprocessing.
2019: the turn to markets
The year started as freelance usual: a distress alarm that broadcast video over Socket.io rooms in January, and in February the whole food delivery product (Laravel backend, Bootstrap frontend, Ionic app), an Ionic accounts diary, and a Node order API built for a coding challenge.
Then in November I pushed option_chain_analysis. A Node app that fetched the NSE Nifty option chain and classified every strike into long buildup, short buildup, short covering or long liquidation. It is still the most starred repository on my profile, and it marks the point where I stopped building whatever a client asked for and started building what I wanted to use. A year later I joined Algo Maker LLP in Mumbai as a full stack developer, building trade execution algorithms over WebSockets and an Angular dashboard for risk, and trading tools became the job.
2020: trading tools and data
Every 2020 repository is about markets or numbers. A PHP port of the option chain analyser for shared hosting, an accounting app, a daily cash versus futures spread chart on Express, and in October the Dream11 fantasy cricket team builder, which was really a constraint solver dressed up as a sports app. On the fork side I picked up the 5paisa Node SDK and a repository of option pricing formulas used by clearing houses, both of which I adapted for my own tooling.
2021 to 2023: UMass Boston
I moved to Boston for an M.S. in Computer Science. The public code slows down, which is what you would expect; most coursework is not meant to be published. Two things did go up. umbtrading, my CS615 User Interface Design project from December 2021, an options trading interface for beginners. And cs240-lecture-programs, the sample C programs from the Fall 2022 Programming in C course I supported. I also went back and fixed the READMEs on captcha_ai and pwa_notes in late 2021.
2023 to 2025: Viasat
I joined Viasat in 2023 as a software engineer doing full stack and platform work on large systems, and stayed until December 2025. Almost nothing from those years is public, for the obvious reason. The forks tell the story of what I did with my evenings instead: a Python remote client for Hummingbot in 2023, the Go client for Zerodha Kite Connect in 2024, and the Node client for the XTS Interactive API in 2025. Each one I forked, adapted, and used in my own tooling, and I contributed fixes back where I hit bugs.
2026: independent
Since January I have been working on my own: trading tools, broker SDKs, and writing, including this site and this blog. I am open to full time and contract roles. The site itself was rebuilt this year from a 2017 Jekyll theme into a static page with no build step, rendered from a single data file. Ten years on, I am back to plain HTML, CSS and JavaScript, this time by choice.
The decade in a table
| Year | Notable repositories | What I was doing |
|---|---|---|
| 2016 | VideoPlayerCss, ProductsDisplay, PayTM-API-UnOfficial | Student, first internship applications |
| 2017 | Fashmash-VotingPortal-Lumen, aadityatamrakar.github.io, sic_app_backend, city_cars | Freelance, mostly PHP |
| 2018 | captcha_ai, multilevel-marketing-app, fleet_management_app, proxy_http_web, pwa_notes | Freelance, Node and first ML |
| 2019 | DistressAlarmSystem, food_delivery_app (×3), accounts_diary_android_app, nodejs_challenge, option_chain_analysis | Freelance, then option chain analysis |
| 2020 | option_chain_php, creative_accounting, futures_spread_chart, dream11-cricket-team-builder, 5paisa-js (fork), option-pricing (fork) | Algo Maker LLP |
| 2021 | umbtrading | M.S. at UMass Boston |
| 2022 | cs240-lecture-programs, timesheet-app (fork) | M.S. at UMass Boston |
| 2023 | hbot-remote-client-py (fork) | Graduated, joined Viasat |
| 2024 | gokiteconnect (fork) | Viasat |
| 2025 | xts-interactive-nodeJS-api-v2 (fork) | Viasat, until December |
| 2026 | aadityatamrakar.github.io (rebuilt), this blog | Independent |
What changed in the tooling
The obvious shift is from PHP to JavaScript to Python and Go, but that undersells it. In 2016 the stack was decided by what shared hosting would run. By 2020 it was decided by which broker had an SDK. Now it is decided by what I can maintain alone, which has pushed me toward fewer dependencies, not more.
Some specific changes I notice reading the old code:
- jQuery to nothing. The 2016 snippet above is a template literal and a
fetchcall today, with no library. The browser caught up. - Callbacks to async/await. The 2018 Node code is nested callbacks. Everything I write now is
asyncfunctions, and it has made error handling something I actually do. - Frameworks to data files. The food delivery app had three repositories and two frameworks. This site is one HTML file and one data object. Now I add structure when the code asks for it.
- Scraping to SDKs. option_chain_analysis shelled out to cURL because the NSE blocked Node's HTTP clients. The last three years of forks are proper broker clients with authentication and typed responses. The data access problem got solved by the industry, not by me.
- Reports as email to reports as code. The 2017 dealership engine emailed tables to an owner. My tools now write to a database and I query it. Same idea, different reader.
const data = await (await fetch('products.json')).json();
grid.innerHTML = data.map(p =>
`<div class="col"><h4>${p.name}</h4><p>${p.price}</p></div>`
).join('');
What changed in how I work
- I write the README first now. The 2017 and 2018 repositories have one-line READMEs or none. I went back in 2021 to fix the ones I still cared about, and the lesson stuck: if I cannot describe it, I do not understand it yet.
- I build for a user I can name. Freelance work taught me to build what was asked. The trading tools taught me to build what I would use. The CS615 project taught me to build what a specific other person could use. The third one is the hardest and the most useful.
- I ship smaller. The food delivery product in 2019 was three repositories in one push. Everything since has been a single repository that does one thing.
- I am less precious about frameworks. AngularJS, Ionic 1, Loopback and Bootstrap 3 are all in this history and all effectively gone. The code that still runs is the code with the fewest moving parts.
- Public code is a journal. I did not plan this profile as a record, but it is the most accurate one I have. That alone is a reason to keep pushing things even when they are small.
If there is a theme, it is that the interesting work started when I stopped waiting for a client to define the problem. The next ten years of this profile will be more trading tools, more SDKs, and more writing like this. Everything is at github.com/aadityatamrakar >.