Undergraduate · open to internships & collaboration

Thisara Anjana

  • Machine Learning Engineer
  • Data Science
  • MLOps

Building prediction and detection models, data pipelines, and reproducible ML systems. I work in Python — training models on real datasets, then giving them the pieces they need to survive outside a notebook: versioned data, tracked experiments, a container, and somewhere to run.

Thisara Anjana, Machine Learning Engineer · Data Science · MLOps
Sri LankaPython · ML · MLOps

01About

I build machine learning systems, not just models.

ICT undergraduate at the University of Vavuniya, based in Sri Lanka, focused on machine learning, data engineering and MLOps.

Most of my early projects were notebooks — a dataset, a model, an accuracy number, and no way to get back to it a month later. The work since then has been about closing that gap: taking the same modelling and putting the surrounding system in place.

That meant learning the boring parts on purpose. Loading data as an Airflow DAG instead of a script. Declaring training stages in dvc.yaml so inputs are tracked. Logging runs to MLflow instead of comparing terminal output. Writing a Dockerfile so it runs somewhere other than my laptop.

Alongside that, my degree covers the general engineering base — databases, networking, systems and several languages beyond Python — which is why some of my repositories are a C# chat app or a Kotlin video player rather than a model.

Everything claimed on this page links to a public repository. If there is no repository behind it, it is marked as coursework instead.

Models on real data

Clinical measurement sets, image data and messy product listings — where the encoding and the class balance matter more than the algorithm.

Pipelines that re-run

Scheduled ETL into PostgreSQL, and training expressed as declared stages so a commit reproduces one exact result.

Models that leave the notebook

Tracked runs, versioned datasets, a Dockerfile, and a small app in front — so the work is usable by someone other than me.

Working stack

  • PostgreSQL
  • Apache Airflow
  • DVC
  • MLflow
  • Docker
  • AWS
github.com/Thisara-Anjana

02// Skills & Technologies

Technical Arsenal

Technologies, tools, and engineering concepts I use to build data-driven and machine learning systems.

28

Technologies

6

Domains

26

Backed by a repository

01ML / Data Science

02Data Engineering

03MLOps / Deployment

00

Everything

Every technology below is here because a repository, a certificate or my degree coursework stands behind it. No percentages, no ratings — click any card to see exactly where it was used.

07

Currently exploring

Kept deliberately separate from the list above — these are things I'm actively learning, not things I've shipped yet.

  • Advanced MLOps

    Model registries, promotion between stages, and monitoring a deployed model rather than just shipping it.

  • Cloud ML deployment

    Taking training and serving fully onto managed cloud services instead of a single AWS-backed tracking server.

  • Advanced Airflow workflows

    Sensors, backfills, dynamic task mapping and error handling beyond a linear extract-transform-load DAG.

00Pipeline

How data becomes a deployed model.

The stack below is the one I actually run, in the order it runs. Select a stage to see what it does and which repository it comes from.

PostgreSQL · Data storage

Destination for the ETL pipeline — tables written and queried from Airflow tasks.

Airflow-ETL-Pipeline-with-Postgres

The lifecycle I follow, stage by stage

  1. 01

    Data

    Pull the raw dataset in as an ingestion step with a config file, not a hand-copied CSV.

    • PostgreSQL
    • Airflow
  2. 02

    Exploration

    Notebook first — distributions, missing values, whether the target is even learnable.

    • Pandas
    • Jupyter
  3. 03

    Preprocessing

    Cleaning and schema validation promoted out of the notebook into a src/ module.

    • Pandas
    • DVC
  4. 04

    Feature engineering

    Encoding and scaling saved alongside the model so inference uses the same transform.

    • Scikit-learn
  5. 05

    Model training

    Hyperparameters live in params.yaml so a run is described by a file, not by memory.

    • Scikit-learn
    • XGBoost
  6. 06

    Experiment tracking

    Parameters, metrics and artifacts logged per run instead of compared by eye.

    • MLflow
  7. 07

    Versioning

    Data and model files tracked as DVC pointers so a commit reproduces one exact state.

    • DVC
    • Git
  8. 08

    Containerization

    A Dockerfile pins the environment so it runs the same off my machine.

    • Docker
  9. 09

    Deployment

    Served behind a small Flask app, with tracking and serving moved onto AWS.

    • Flask
    • AWS

03Selected work

Featured Projects

A selection of projects where I apply machine learning, data science, and software engineering concepts to practical problems.

  • 01
    • Machine Learning
    • Data Science

    Multiple Disease Prediction System

    case study

    Two separate clinical datasets, two separate models — and no way for anyone without a notebook to actually use either of them.

    DatasetPreprocessingTrainingEvaluationSaved model + scalerWeb app

    • Python
    • Scikit-learn
    • JavaScript
    • HTML/CSS
    Jupyter Notebook
  • 02
    • Data Science
    • MLOps

    End-to-End Data Science Project

    case study

    Research notebooks and shipped code usually diverge: the notebook explores, the app re-implements, and the two disagree.

    Data ingestionData validationTransformationModel trainerEvaluationFlask app

    • Python
    • Flask
    • Docker
    • YAML
    • Jupyter
    Jupyter Notebook
  • 03
    • Machine Learning
    • Data Science

    Laptop Price Prediction

    Laptop specification data is messy — memory, screen and CPU fields arrive as free text, not as numbers a regressor can use.

    Raw listingsFeature engineeringEncodingRegressionEvaluation

    • Python
    • Pandas
    • Scikit-learn
    • Jupyter
    Jupyter Notebook
  • 04
    • Machine Learning
    • Data Science

    Music Recommendation System

    Recommendation has no single right answer, so it can't be evaluated the way a classifier is.

    Track datasetFeature vectorsSimilarityRanked recommendations

    • Python
    • Pandas
    • Scikit-learn
    • Jupyter
    Jupyter Notebook

04Credentials

Certifications and credentials, in the order I earned them.

Short courses, not degrees — every entry carries the actual certificate, its issuer, its date and its verification ID where one exists. Open one to read it here without leaving the page.

Credentials / index · 9 of 9

2026

2025

05Journey

Education, and the path I'm taking toward ML engineering.

No employment history here yet — I'm an undergraduate. What follows is the actual progression: each step names the work that carried it, with no invented dates or achievements.

Progression

  1. 01

    ICT undergraduate

    Started the ICT degree at the University of Vavuniya — programming, databases and networking as the base, with statistics and software design alongside.

    Coursework — no repository attached.

  2. 04

    Data engineering

    Moved from hand-run notebooks to scheduled work: an Airflow DAG doing extract, transform and load into PostgreSQL, running under docker-compose.

  3. 05

    Reproducible pipelines

    Staged training with DVC so preprocess → train → evaluate re-runs from a commit, with data and models tracked as pointers rather than blobs.

Education

BSc (Hons) Information and Communication Technology

University of Vavuniya, Sri Lanka

2023 – 2027 (expected)

Undergraduate degree covering programming, databases, networking and systems, alongside self-directed work in machine learning and MLOps.

Relevant areas

  • Programming
  • Databases
  • Networking
  • Software design
  • Statistics
  • Systems

06Contact

Open to internships, collaboration and interesting datasets.

Whether it's an ML internship, a data pipeline that needs building, or a project you want a second pair of hands on — send it over.

This opens a pre-filled draft in your own mail client — nothing is sent through this site.