I am a third-year computer science (honours) and NUS College
student at the National University of Singapore,
specialising in machine learning. I am pursuing a minor in astronomy. I am currently working on a School of
Computing research project on physics-informed machine learning algorithms for symbolic regression under the
supervision of Dr Stéphane Bressan, to be presented at the NUS Undergraduate Research Conference 2025. I was
also recently serving as a teaching assistant for CS2109s (Introduction to AI & Machine Learning). I will
shortly begin my final-year project on the application of machine learning to desigining quantum algorithms for
the ground state problem for many-body systems under the supervision of Dr Patrick Rebentrost. I am currently on
exchange at the Warsaw University of Technology.
I am interested in further exploring the intersection of machine learning with physics and astronomy. This
page serves as my extended CV. You can reach me at saumya.shah@u.nus.edu.
Web Developer (intern), Sham Machinery Stores Buldhana, India
Feb 2021 - Nov 2021
Developed and maintained a dynamic inventory management platform, helping
transition from a paper-based inventory system, and reducing stock-out rates by 25 per cent.
Presented and evaluated multiple designs as well as the final website in consultation with the client and 20
users.
Research Assistant, NUS School of Computing Singapore
Dec 2023 - Present
Conducted research on physics-informed machine learning algorithms for symbolic regression like AI Feynman
under the supervision of Dr Stéphane Bressan.
Developed an extension to automatically find a canonical coordinate system for AI Feynman to generate a set of solutions with improved parsimony and accuracy.
Presented findings at the NUS Undergraduate Research Conference 2025.
Computer Vision Engineer Intern, NUS Smart Systems Institute Singapore
June 2024 - September 2024
Developed and tested machine learning and computer vision algorithms for object and gesture detection for The Other Me project (AR-enabled smart glasses with a context-aware AI assistant) using PyTorch, MRTK3, and Unity.
Assisted in the teaching of CS2109s (Introduction to AI & Machine Learning) by conducting weekly tutorials, grading assignments, and
providing feedback to students.
Created learning materials including assignments and slides for the course.
Quantitative Reasoning & Computing Student Assistant, NUS College Singapore
Aug 2023 - Aug 2024
Organised and developed teaching materials for sessions to assist students with quantitative reasoning and
computational concepts using R and MS Excel.
Conducted weekly sessions for GEA1000N students, helping them to understand quantitative reasoning concepts
and clarify doubts in assignments.
General Secretary, NUS Astronomical Society Singapore
Aug 2023 - Present
Managed recruitment and administrative records, liaised with external sponsors, and organised events for the
NUS Astronomical Society consisting of 500+ members.
Led a team of 6 to manage recruitment, liase with external sponsors and judges, and manage logistics for the
organisation of the 2024 and 2025 editions of AstroChallenge, an annual astronomy competition with more than 250 participants.
I am a self-motivated practical learner. So far, I have worked on the following projects
(in reverse chronological order within each section):
Academic
Impact Experience Project
A two-year $20k team project to improve waste management standards in rural
Cambodia in collaboration with the Young Eco
Ambassador organisation, consisting of managing the logistics, infrastructure, and execution of a
Bring Your Own Container programme and a corresponding awareness campaign to reduce plastic waste.
Done as part of the NUS College Impact
Experience programme (NEP3001).
A 12 kLoC GUI-based interactive desktop application for employee records management
optimised for CLI usage. Has commands to add, edit, and delete employee records, manage their leaves and
overtime hours, and track their metrics. Created for CS2103T (Software Engineering).
An integrated React web app consisting of a multiclass classification neural
network to identify constellations, an astrophotography forum, a learning tab, and a personal gallery of
astronomy photos.
Built using React.js and Chakra UI for the front-end, Redux for
application
state management, Supabase (a serverless database provider) for
relational database management, PyTorch with PyTorch
Lightning for creating and training the model, and Flask to make a REST API to send requests to the
model. Created for CP2106 (Independent Software Development Project)
A performant, extensible cellular automata simulator library with visualisation capabilities
built in Rust. Supports evolving cellular automata using genetic algorithms, as conceptualised by Mitchell et al.
A Python web app to analyse chat history, consisting of a sentiment analysis,
an analytics dashboard, and a chatbot to emulate conversations built using a custom Seq2Seq model.
Designed the back-end for an AI-based interview helper that records your
conversation and gives you live answers, created for the 2024 edition of the Hack & Roll hackathon.
A fast and scalable machine learning library built from scratch in Rust. Supports linear
regression, logistic regression, support vector machines, and multilayer perceptrons. Has more than 3.5k downloads on crates.io
A modular seawater desalination and rainwater harvesting system created for the
Engineering Innovation Challenge 2023 organised by Science Centre
Singapore.
I have experience with the following tools (in decreasing order of proficiency within each section and
sub-section):
Programming
Java: The language of choice for most of my NUS coursework, including DSA,
programming
methodology (OOP), and SWE. I've slowly come to appreciate its type safety, even if it's a little verbose at
times. A little annoying to use for functional programming with all of its monads and functors, but I've
managed to get by.
JUnit: Used it to test all of my Java apps. Has been a godsend for creating tests. I
appreciate its simplicity and versatility.
JavaFX: Used it in the SWE course to build UIs for two projects. Felt extremely
tedious. I will probably stick to other languages for my UI needs.
Python: My go-to language for most of my machine learning personal projects.
I'm quite
comfortable with its data science stack, although I probably need to develop better testing practices.
NumPy, Pandas, Matplotlib: Pretty familiar with these libraries. I've used them for
most of my data transformation and visualisation needs.
PyTorch: Having done a few projects with it, it's my go-to deep learning framework; it
feels more object-oriented and Pythonic than TensorFlow. I often use high-level interfaces on
PyTorch, like PyTorch Lightning to reduce
boilerplate.
TensorFlow: I've used it for a few projects, but I'm not as comfortable with it as I am
with PyTorch. Keras makes it really quick to whip up a model though.
Flask: I've used it to handle requests and connect frontend inputs to ML models in a
few web dev projects. Sort of familiar with its basic functions, and never really felt the need to go
much deeper
SciKit-Learn: I used it in my early days of learning ML. I don't really use it anymore.
Rust: Extremely fascinating language in how it combines high performance with
memory
safety. I'm familiar with the basics, but I sometimes run afoul of the borrow checker when using generics
or traits. It has also given me an opportunity to learn to implement from scratch some of the features I
take for granted in other languages.
Dioxus: A Rust library for creating desktop interfaces. I've used it for visualisation
purposes in a few projects.
Polars: A powerful Rust equivalent of Pandas. I've used it for data management in an ML
project and found it a little limited in its functionality compared to Pandas, but it's still promising.
Rocket: A web framework for Rust. I've used it in a few web dev projects, and I've
found
it quite intuitive.
Reqwest: A HTTP client for Rust. Used it for a Hackathon once. Found it
straightforward.
JavaScript: I'm very comfortable with JavaScript, having used it for years in most
of my
web dev projects. I found it quite painful to debug due to its weak dynamic typing, but TypeScript has made
it much more bearable and straightforward, even if at the cost of a little more verbosity.
React: Very familiar with it. Was initially a little sceptical, but it has become my
go-to language for building dynamic websites.
jQuery: Used it a lot when I was first learning JS and web dev. However, as I learnt
more JS and React, it has become largely superfluous. I only use it now once every few months to
maintain some of my older projects.
Unity, C#: I've used Unity for developing UIs for mixed reality wearables for an internship. I can use it for specific projects, but I'm not very comfortable with it.
SQL: Familiar with the basics of SQL and similar RDBMS's, including PostgreSQL and
MySQL.
Used it in a few web dev projects to manage databases.
Ruby: I'm familiar with the basics of Ruby, but I haven't used it much by itself,
mostly
using it in Rails projects.
Ruby on Rails: Not my first choice for backend, but I've used it in a few web dev
projects. I appreciate its simplicity and convention over configuration approach, but the MVC pattern
seems overly complicated for smaller projects.
HTML/CSS: I'm familiar with the basics of HTML and CSS, but often find myself
looking up
the docs for most features. I'd rather use JS libraries like React now.
PHP: I'm familiar with the basics of request handling using PHP, but it always
seemed
overly verbose and complicated to me. I've used it in a few web dev projects before I found out about
backend managment in JS and Python, but I've never really enjoyed using it.
MATLAB: I've used it for mathematical computation in courses like linear algebra.
C: I've used it for courses like computer organisation.
R: I've only used it for my quantitative reasoning course.
Others
Git/GitHub: Probably my most-used software after my code editor. I use it for version
control in most of my projects, and I'm quite comfortable with it.
Microsoft Office Suite: I use it for most of my coursework. Also, I spend a lot of time
adding pointless animations to PPTs to compensate for my lack of presentation skills.
LaTeX: I use it for taking notes and
writing reports. I'm kinda comfortable with it, though I need to look up the docs often.
Postman: I use it to test my API endpoints, although I haven't used it in a while.
Radiant: Learnt it for my quantitative reasoning course. When my knowledge of Excel
formulae fails
me, I use Radiant to do some basic data visualisation.
Canva: I've used it a couple times to make posters and infographics for NUSC courses. I'm
terrible at designing them though.