Skip to content

Résumé

Mohamed Aslam Abdul Gafoor

Software engineering student building automation, developer tooling and full-stack products

Diploma in IT student at Singapore Polytechnic on a year-long engineering internship at OCBC, working on automation reliability and observability. Outside work I design and ship my own systems: an open-source routing layer for AI coding agents, an offline-first Android alarm app with a Kotlin reliability core, and full-stack web products with server-enforced access control.

Singaporeaslam040607@gmail.com

Experience

Experience

  1. Automation & Tooling Intern · OCBC (via e2 Power)

    Apr 2026 – present

    Python automation, browser automation and observability for an enterprise technology team, inside a restricted corporate environment.

    • Migrated legacy coordinate- and image-based UI automations to Playwright browser automation, and standardised the Playwright setup across the team’s automation machines, removing a recurring source of breakage whenever an interface changed.
    • Designed and built a shared Python logging module (consistent format, levels and per-job log files) and am rolling it out across the team’s automation scripts in place of ad-hoc console output.
    • Designed and built an automation-health dashboard that discovers job logs, classifies each run as succeeded, failed or stalled from its most recent output, and summarises failures, so problems surface without anyone reading raw logs.
    • Maintain Python/pandas automations over large Excel datasets (100K+ rows), adding input validation so malformed or incomplete inputs fail loudly instead of producing wrong reports.
    • Diagnosed scheduling faults in production automations (unintended repeat runs, jobs that silently stopped running) and restored reliable scheduled execution.
    • Moved the team’s automation code into source control, inventoried and risk-classified existing scripts to prioritise hardening work, and ran a knowledge-sharing session on the new workflow.
  2. Founder, full-stack developer · StartupLink

    Apr 2025 – present

    Closed student–founder network. Verified onboarding, role-based access.

  3. Co-founder, full-stack developer · LocalLoco

    Sep 2024 – present

    Hyperlocal discovery. Community submission, volunteer moderation, QR redemption.

Internship work is described at the level of engineering approach; system names and implementation details are omitted for confidentiality.

Other work

  • Event Assistant, Adecco — polling station operations, Singapore General Election 2025 (Apr – May 2025)
  • Freelance video editor (Sep 2024 – present)

Projects

Selected engineering projects

  1. Open-source developer tooling

    ROUTR

    A routing layer for AI coding agents: small “router” skills that match a request to the right workflow and tell the agent what to read, in what order, and what to skip.

    Role
    Author and maintainer
    Problem
    Agents with dozens of installed skills pick the wrong one and burn their context window reading whole files.
    Built
    • 28 router skills with explicit “use when / not for” boundaries, and multi-step route plans capped at three steps with one router active at a time
    • A skill validator that runs in CI on every change, and an eval set of 153 prompts for measuring routing accuracy
    Key decision
    Routing is decided from short skill descriptions alone, so the agent loads only the one full playbook it needs.
    Outcome
    MIT-licensed and installable with one command. The README reports 97–99% routing accuracy in blind model runs against the eval set, with the method published so it can be reproduced.
    Stack
    Python · PowerShell · Shell · GitHub Actions
  2. Mobile · offline-first

    Nudgio

    An Android alarm and reminder app that plays the user’s own media, designed to work with no backend and no Internet permission.

    Role
    Sole developer
    Problem
    An alarm has to fire on time even when the OS kills the app or the device restarts, and it has to fail gracefully when the chosen media file has been moved or deleted.
    Built
    • A Kotlin native core for scheduling, notifications and backup, exposed to a React Native UI through a typed native-module bridge
    • A layered TypeScript codebase with a mock bridge, so UI and service logic are testable without a device
    Key decision
    Register only the single earliest alarm with the OS rather than one per reminder. Recorded with the project’s other design choices in 21 architecture decision records.
    Outcome
    In active development, built against a 23-document spec with a requirements traceability catalogue. Not yet released.
    Stack
    React Native · TypeScript · Kotlin · Android AlarmManager · Room · Jest
  3. A closed network where students and verified student founders find each other.

    Role
    Founder and sole developer
    Problem
    Trust is the product: founder status has to be verified, and each role may only see its own data.
    Built
    • Server-side founder verification in a Cloud Function, so it cannot be bypassed from the client
    • Role-based access enforced in Firestore security rules rather than in UI components
    • Multi-step onboarding that keeps partial progress across sessions
    Key decision
    Authorisation lives in database rules, not the interface, so a modified client still cannot read another role’s data.
    Outcome
    Working MVP deployed publicly. No user numbers yet.
    Stack
    Next.js · TypeScript · Firebase Auth · Cloud Firestore · Cloud Functions · Tailwind CSS
  4. Full-stack web · geospatial

    LocalLoco

    Neighbourhood deal discovery: residents submit offers, volunteers moderate them, and QR redemption tells a business which promotions actually got used.

    Role
    Co-founder and full-stack developer
    Problem
    Location queries that stay fast as data grows, and a moderation queue small enough for a few volunteers to clear.
    Built
    • A Next.js front end and a separate FastAPI service so each deploys independently
    • Location queries in PostGIS instead of application-side filtering
    • Separate submission and moderation stages so unreviewed content is never public, plus QR redemption tracking
    Key decision
    Chose PostGIS early, which avoided a rewrite once real data existed.
    Outcome
    Running on its production domain with authentication in place.
    Stack
    Next.js · TypeScript · FastAPI · PostgreSQL · PostGIS · Supabase
  5. Hackathon · data and ML

    DoorLens

    Nebula X 2026 submission that classifies recorded train-door movements from sensor telemetry, with a tool for testing whether recording assumptions change a result.

    Role
    Developer
    Problem
    A small labelled dataset (110 training cycles) and no ground truth for the test set, so any claim about accuracy had to be honest.
    Built
    • A pipeline that validates uploaded CSVs, segments door cycles and runs a frozen classifier
    • A sensitivity probe that rescales or resamples a cycle and re-runs the same model to show whether the label holds
    Key decision
    Models are frozen, hashed artefacts: uploads never retrain them, and every result carries the identity of the model that produced it.
    Outcome
    Submitted with a written limitations document and verification notes.
    Stack
    Python · NumPy · pandas · FastAPI · Next.js · pytest · Docker

Skills

Technical skills

Grouped by depth of use rather than self-rated mastery. Strong means used repeatedly in the internship or across several of the projects above.

Technical skills by area and depth
LanguagesStrong working knowledge:TypeScript, JavaScript, Python, SQLUsed in projects:Java, Kotlin, PowerShell, HTML, CSS
FrameworksStrong working knowledge:Next.js, React, Tailwind CSSUsed in projects:React Native, FastAPI, pandas, ZodExposure:NumPy
AutomationStrong working knowledge:Playwright, Python scripting, Windows Task SchedulerUsed in projects:Excel automation (openpyxl)
Data and backendStrong working knowledge:PostgreSQL, Firebase (Auth, Firestore, Cloud Functions)Used in projects:Supabase, PostGIS, MySQL, Firestore security rulesExposure:Room (Android)
AI and LLM toolingStrong working knowledge:AI coding agents (Claude Code, Codex), Agent skill and workflow designUsed in projects:Eval set design
Testing, observability and deliveryStrong working knowledge:Git and GitHub, Structured logging, VercelUsed in projects:Jest, pytest, GitHub Actions, Docker

Education

Education

Diploma in Information Technology

Singapore Polytechnic · 2023 – present

  • Object-oriented programming (Java)
  • Web development
  • Database systems (PostgreSQL, MySQL)
  • Secure coding practices
  • System analysis and design
  • Software testing and quality assurance

Recognition

Competition placings

  • 1st place · Youth Action Challenge, Season 6

    National Youth Council · 2025

  • 2nd place · Batey Hackathon 2024

    Singapore Polytechnic · 2024

  • 3rd place · AI for Good (Youth) — Student Facilitator

    AI Singapore · 2025

Communication

Teaching, documentation and facilitation

  • Ran a knowledge-sharing session for my internship team on moving automation code into source control, and keep README documentation next to the scripts it describes.
  • Facilitator and teaching assistant at hands-on AI build workshops and hackathons run by AI Builders (2026), helping participants who fell behind the instructor debug and finish their builds.
  • Taught a technical workshop for the Nosana Builders Challenge Singapore (2026).
  • Student facilitator in AI Singapore’s AI for Good (Youth) programme; placed 3rd for leadership and facilitation (2025).
  • Write architecture decision records, specs and READMEs for my own projects: 21 ADRs for Nudgio; an API contract, limitations and verification notes for DoorLens.

I also host and emcee technology events. Event portfolio → emcee.mohdaslam.dev

Leadership

Committees

  • Organising committee

    LEAP 2026, School of Computing

    2025 – present

  • Assistant Quartermaster

    SPCyclists main committee

    2025 – present

  • ExCo (Events)

    Freelance Academy, Media Arts and Design

    2024 – present

Contact

Get in touch

Last updated 2026-07