Sheet 01Dar es Salaam, Tanzania06°49′S 39°17′E

KshitijJha

I build backends and the interfaces that sit on top of them. I like the problems where you have to go and read how the thing works.

Now
Dev intern, Imatic
Next
Kent, September 2026
Seeking
12-mo placement, 2027
Status
Open
Scroll to sound the depth
01

The short version

Who / where / why

I’m twenty, I grew up in Dar es Salaam, I studied in Mauritius, and in September I move to Canterbury to start stage 2 of a Computer Science degree at Kent. Two internships came before the degree rather than after it, which was not the plan but turned out to be the useful order.

The work I like is the kind where the answer isn’t in the documentation. At my current job I was handed a reporting stack nobody had written down, and the only way through was to read the network traffic and work backwards. That investigation is now informing a decision about 300+ reports. That’s the pattern I keep coming back to: go one level lower than you have to, and the problem usually stops being mysterious.

I write backends in C#, Go, Python and a lot of SQL, then build the interfaces on top of them in Next.js because I don’t enjoy handing off an API and never seeing it used. Outside of that I dive, I lose to FromSoftware bosses, and I reinstall Fedora more often than I need to.

  • Grew up
    Dar es Salaam
    6.7924° S 39.2083° E
  • Studied
    Port Louis
    20.1609° S 57.5012° E
  • From Sept 2026
    Canterbury
    51.2802° N 1.0789° E
Based
Dar es Salaam, Tanzania
Canterbury, UK from September 2026
Currently
Software Developer Intern
Imatic Technologies Limited
Reading
BSc Computer Science with a Year in Industry
University of Kent, stage 2
Available
12 month placement from July 2027
UK, full time, right to work from September 2026
02

Where I've worked

2026 to now
Jun 2026 to now
Dar es Salaam, Tanzania

Imatic Technologies Limited

Software Developer Intern

I was hired to build one API. I ended up building it twice, in two different stacks, so the team could argue about a migration using numbers instead of opinions.

  • Built 9 REST endpoints across 6 resources in C#/.NET 8, then rebuilt the same API in Node.js so the team could compare the two while deciding whether to move off ASP.NET MVC.
  • Developed the Next.js prototype that consumes both services, including a proxy layer and role conditional routing.
  • Wrote MSSQL stored procedures handling multi mode read and write paths against a 7 table schema, working in SSMS with SQL Server running in Docker.
  • Delivered a Stimulsoft Reports.JS proof of concept by reverse engineering integration patterns nobody had documented. The write up fed a stakeholder decision affecting 300+ Crystal Reports.
C#/.NET 8Node.jsNext.jsMSSQLStimulsoftDocker
Jan 2026 to Mar 2026
Dar es Salaam, Tanzania

CubeStone Consulting

Software Developer Intern

My first real codebase with someone else's money on it. Solo build, front to back, and I wrote the schema too.

  • Built a Fleet Management REST API on my own in C#/.NET 8, using Dapper for data access against SAP HANA, and authored the supporting table schema.
  • Developed a React Native client that consumes the API end to end.
C#/.NET 8SAP HANADapperReact Native
Sept 2026 to 2029

University of Kent, Canterbury

BSc Computer Science (Hons) with a Year in Industry

Stage 2. Kent International Scholarship holder. Placement year runs 2027 to 28, so I am free for a 12 month contract from July 2027.

2025 to 2026

Middlesex University Mauritius

Certificate of Higher Education

03

Things I've built

7 selected

Why

I wanted to actually understand concurrency instead of trusting the runtime to sort it out for me.

What it is

Raw TCP, no framework. A listener hands each connection to its own goroutine, a shared register maps connections to users, and a mutex guards that register because several goroutines write to it at once. I got failures out of it: deadlocks, a concurrent map access race, WaitGroup misuse. I found each one by reasoning through the synchronisation model instead of adding sleeps until the crashing stopped. It's the smallest project on this list and the one that taught me the most.

Gonetgoroutinessync.MutexWaitGroupSource ↗
Client AClient BClient CListenergoroutine× N, one per connMutexRegisterWAITGROUP MISUSEFIXEDDEADLOCKFIXEDRACEFIXED
found by reasoning through the model, not by adding sleeps until the crashing stopped.

Why

I wanted to know whether the strategies people post online survive contact with live data. Mostly they do not, and I wanted that answer from my own logs rather than somebody's screenshot.

What it is

Gold, silver and copper CFDs on the Capital.com API. EMA 9/21 crossover with RSI(14) confirmation, ATR(14) for stop sizing, a 1.5x ATR stop against a 3x ATR target, 1% account risk per trade, one open position per instrument. I fixed the stopping criteria in advance so I could not move them once it started losing. The lesson that stuck was infrastructural: GitHub Actions' built in cron was unreliable across a two hour test window, so the schedule now comes from an external trigger and the workflow listens.

PythonCapital.com APISQLiteGitHub ActionsDiscordSource ↗

Why

A university brief I refused to keep small.

What it is

A Tkinter GUI talking to a multithreaded TCP socket server over SQLite. The brief asked for none of that. I added live currency conversion across USD, GBP, INR and MUR, plus sales analytics in matplotlib. It was the first time I had two processes that needed to agree with each other, which is a specific and annoying kind of problem.

PythonTkinterSQLitesocketsmatplotlibSource ↗
Seraphim Records — live interface

Fig. 04 — live capture

Why

An excuse to use XML and XSLT instead of treating them as legacy trivia, and to find out how messy real music metadata is. It is messy.

What it is

A record store front end where the album data gets scraped in Python from music APIs, structured as XML, then transformed into HTML with XSLT. The transformation layer does the job frameworks hide from you, which was the whole reason I built it that way.

HTML/CSSJavaScriptPythonXMLXSLTSource ↗

Weekends, hackathons, team builds

Shipped fast and with help. Some of it mine, some of it a teammate’s, some of it a model’s. Worth showing, worth being straight about.

NitiLens — live interface

Fig. 05 — live capture

Why

Hackathon, team of four, built against the clock. The idea was to push a policy through the perspectives of the people it lands on instead of the people who debate it.

What it is

A four stage pipeline sitting on top of an LLM. A classifier, then four specialist agents reading risk through a fiscal, labour, equity and regional lens, then up to 50 synthetic personas grounded in NSSO and Census 2011 demographics, then a coordinator that pulls the disagreements into one briefing. Most of the engineering is orchestration and prompt design rather than novel modelling. The hard part was batching the persona calls so the thing returned inside a demo slot. We sanity checked it against MGNREGA, which has twenty years of published outcomes to check against.

Next.jsFastAPILLM agentsVercelRenderSource ↗

Why

An experiment in whether a prediction market prices weather badly, and an excuse to read about forecast verification, which I knew nothing about going in.

What it is

It blends ECMWF, GFS and UKMO ensembles with two deterministic providers into a single distribution, adds a climatological prior weighted by how far out the forecast is, and only logs a prediction when its edge over the market clears ten points. Everything resolves against historical records and scores itself on win rate, ROI and calibration. It is still running. The honest verdict is that the sample is nowhere near big enough to claim an edge.

PythonOpen-MeteoSQLiteGitHub ActionsPolymarket APISource ↗
Halo Student Drives — live interface

Fig. 07 — live capture

Why

Campus transport was expensive and students were already driving the same routes anyway. The hard part was trust, not the software.

What it is

A ride sharing platform pairing verified student drivers with riders. Driver verification, a dashboard with listings and analytics, route filtering, ratings, all on Firebase Auth, Firestore and Storage. Built with Harshil Patel and shipped to a live campus audience.

Next.jsTypeScriptFirebaseTailwindVercelSource ↗
04

Tools

What I actually reach for
Languages
C#GoPythonTypeScriptJavaScriptSQL
Frameworks
.NET 8ASP.NET MVCReactNext.jsReact NativeFastAPIDapper
Data
MSSQL / SSMSSAP HANASQLiteStimulsoftCrystal Reports
Tools
GitGitHub ActionsDockerVercelLinux (Fedora)

Recognition

  • MDX Speed Coding Competition 2026

    1st Runner-Up

    50+ competitors across several universities.

  • Kent International Scholarship

    Holder

    Awarded for entry to the University of Kent.

  • Oracle Academy

    Certificate

    Database Foundations.

05

Off the clock

The non-CV half
06

Get in touch

I’m looking for a 12-month placement starting July 2027, and I’ll answer anything before then.

Student visa holder from September 2026, eligible for full-time employment during the assessed placement year. If you want to talk about backends, Go concurrency, diving, or why a boss fight feels good, that also works.