01 / IndexColombo, Sri Lanka 6.93° N, 79.86° E

ShaveenUdayanga

I'm in my final year of Computer Science at the University of Sri Jayewardenepura. I like building things for people I can actually talk to. Who they were, and what we made together, is drawn out on the sheets below.

Some evenings end with a violin. Some mornings start at the gym. Some weekends belong to other people. Those are on the last sheets, if you make it that far.

Now

Looking for a six-month internship in software engineering, business analysis or product work.

Shaveen Udayanga in a black suit and white shirt against a plain wall
View AFront elevation
Studying
Final year, BSc (Hons) Computer Science, University of Sri Jayewardenepura.
Research
Stock price forecasting with LSTMs, supervised by Prof. T.G.I. Fernando.
Based in
Colombo, Sri Lanka. Open to on-site, hybrid or remote work.
Languages
Sinhala, English, and some German.
02Studio / S39 LabsSheet 02 of 06

The studio

I started S39 Labs in January 2026. It builds its own products and takes on a small amount of client work, from websites to backend systems. Every product starts with one person who has the problem, and is built with them.

s39labs.com

S39-01 Product Education

LectureVoice

Live since June 2026Open LectureVoice

Recording a narrated lecture can take a whole evening. LectureVoice takes the slides and a sample of the lecturer's voice, and gives back a finished video, narrated in that voice.

LectureVoice player showing slide 4 of 11, a line of narration and a waveform
Detail 1. The lecture player, from the product page.
  1. Slides

    Upload a PDF or PowerPoint and keep only the pages you want.

  2. Voice

    A short sample gives a quick voice. Ten to twenty minutes gives an HD voice tuned to you.

  3. Script

    A script is drafted for every slide. You read and edit it before anything is spoken.

  4. Audio

    Each slide is spoken in your voice. Regenerate any single slide, then render one MP4 with subtitles.

Parts list

How it is put together
ItemPartWhat it doesRuns on
01FrontendNext.js and TypeScriptVercel
02APIPython, FastAPI, RESTUbuntu on AWS EC2
03DatabaseManaged PostgreSQLNeon
04Voice and videoServerless GPU jobs, started only when neededModal
05Voice modelOne shared speech model, one small fine-tuned adapter per voiceChatterbox
06DeliveryEvery change is tested and deployed automaticallyGitHub Actions
  1. 1.

    Built for a professor at my university. It is free to use, with optional donations.

  2. 2.

    Your voice stays yours. It is used only for your own lectures, never shared or used to make anyone else's voice, and you can delete it at any time.

  3. 3.

    You stay in control. Read and edit every script before it is spoken, and regenerate any single slide you are not happy with.

  4. 4.

    Every clip carries an inaudible mark that identifies it as AI-generated.

Client work
CVAura landing page with a resume upload area

S39-02 Careers

CVAura

Upload a PDF, paste the job posting, get a score from 0 to 100 with the missing keywords and how to fix them. Resumes are parsed in memory and never stored.

cvaura.s39labs.com

S39-03 Hospitality

Sandy Edge

A website for a kite surfing resort and restaurant in Kalpitiya. Rooms, menu, experiences, packages, a gallery and a contact form. I worked with the owner from the first brief to launch.

sandyedgelk.com
03Work / RegisterSheet 03 of 06

Drawing register

University projects, research and things I built for events. Open a row for the details, what I did myself, and the code.

SU-04MOMFA-LSTMBSc final-year research, supervised by Prof. T.G.I. FernandoJune 2026 to mid 2027Python / PyTorch / pandasIn progress

Stock forecasting research that chooses which market indicators an LSTM sees and how the model is configured, together rather than one after the other.

  1. 1.Picks the input indicators and the model settings in one search, instead of one after the other.
  2. 2.Data pipeline for 10 Colombo Stock Exchange stocks is done: 25 indicators, leakage tests and a walk-forward split. Experiments are in progress.
  3. 3.Part of my degree. The research and thesis are due around April to June 2027.

Stack Python / PyTorch / pandas

SU-05LuminaHuman-Computer Interaction moduleDec 2025 to Jan 2026Python / MediaPipe / ESP32Done
Lumina, a small wooden robotic lamp, standing on a table

A desk lamp that follows hand gestures: Python tracks the hand through a camera and tells an ESP32 how to move the lamp.

  1. 1.Python and MediaPipe track the hand. Positions go to an ESP32 over UDP, which smooths them before moving two servos.
  2. 2.I built the hardware too: the wooden body, the wiring and a hand-soldered board around the ESP32.
  3. 3.A small OLED face, and short voice conversations through the Gemini API.

Stack Python / MediaPipe / ESP32 / UDP / Gemini API

SU-06Customizable Document Tracking SystemService Oriented Computing module, grade A, team of 3Aug to Nov 2025Java / Spring Boot / PostgreSQLDone
DocuTrace landing page

A web system that replaces paper approval files moving from desk to desk, built as separate Java and Spring Boot services.

  1. 1.I wrote most of the user and document services: login and access rules with Spring Security, the database entities, and the RabbitMQ messages sent when a document moves.
  2. 2.Unit tests with JUnit and Mockito, a test for the login check at the gateway, and the GitHub Actions setup that builds and tests every change.
  3. 3.Most commits in a team of three.

Stack Java / Spring Boot / PostgreSQL / RabbitMQ / Docker

SU-07Lamitie '25 registrationsUniversity event, Faculty of Applied SciencesJan 2026FastAPI / MySQL / AzureDone
Lamitie registration admin screen

Registration and check-in for a university event: 336 students signed up, each got a QR code by email, and attendance was scanned at the door.

  1. 1.336 students registered. Each got a confirmation email with a QR code, scanned at the door.
  2. 2.An admin view for the organisers. Deployed on an Azure server with GitHub Actions.

Stack FastAPI / MySQL / Azure / GitHub Actions

SU-08The Wheels in MotionData analysisDec 2024Python / Hugging Face / Plotly DashDone

Sorted customer reviews into topics with zero-shot classification and showed the results in a Plotly Dash dashboard.

  1. 1.Zero-shot classification from Hugging Face sorted reviews without labelled training data. Results in a Plotly Dash dashboard.

Stack Python / Hugging Face / Plotly Dash / pandas

04Record / Since 2023Sheet 04 of 06

Revision history

Study, the studio, and the student groups I helped run. Solid bars are done, hatched is still ahead, and a fading end means the date is an estimate. Select a row to read it.

StudioJan 2026 to now

Founder and Lead Engineer

S39 Labs

A software studio that builds its own products and takes on client work.

Education

BSc (Hons) in Computer Science

University of Sri Jayewardenepura, Nugegoda. June 2023 to around mid 2027, graduating around October 2027.

Minors in Mathematics and Physics. Selected into the Computer Science honours cohort: 18 students from a cohort of 120. Final-year research: MOMFA-LSTM, supervised by Prof. T.G.I. Fernando, with the thesis due around April to June 2027.

Relevant coursework

  • Data Structures and Algorithms
  • Software Engineering
  • Database Management Systems
  • Service Oriented Computing
  • Computer Security
  • Machine Learning

School

GCE Advanced Level, Physical Science stream
Nalanda College, Colombo 10, 2012 to 2020

05Spec / MaterialsSheet 05 of 06

Specification

The tools I use and how well I know them. Where something is basic, it says so.

Skills by area
ALanguagesPython Java SQL JavaScript TypeScript (basic)
BBackendFastAPI REST APIs PostgreSQL SQLAlchemy Spring Boot
CFrontendReact Next.js HTML CSS
DAI toolsClaude Code (daily, agent-first) Google Gemini API
ETestingManual and exploratory testing Bug reporting JUnit Mockito
FProductTurning user needs into features Writing requirements Deciding what to build next
GTools and cloudGit GitHub Actions Ubuntu on AWS EC2 Docker Cloudflare Oracle Cloud
HHardwareESP32 Soldering Sensors and servos

General notes

Off the clock
  1. 01

    Music

    I played keyboard in the Nalanda College orchestra. At university it is violin, and singing at campus concerts.

    Shaveen playing violin on stage at a university concert
    Detail B. On stage at USJ. Photo: J'pura Flames.
  2. 02

    Sport

    The gym most weeks. Rugby, rifle shooting and swimming when there is time.

    Mirror photo of Shaveen at the gym in a green T-shirt
    Detail C. The gym.
  3. 03

    Volunteering

    IEEE events, and We for Sri Lanka, where most of the work is with children. I help with relief work after floods and other disasters.

    Shaveen with the We for Sri Lanka team at Apeksha Hospital, Maharagama
    Detail D. We for Sri Lanka, donating to children at Apeksha Hospital, Maharagama.
  4. 04

    Getting out

    Hikes and road trips around Sri Lanka. Plenty of the country still left to see.

  5. 05

    Machines

    Cars, gadgets, rockets. I like knowing how a thing works before I trust it.

06Contact / TransmittalSheet 06 of 06

Write to me

About an internship, a project for the studio, or anything on this page. I usually reply within two days.

TransmittalTo: S. Udayanga
About