Manchester ·

Faheem
Saleem

Computer science graduate in Manchester. I build mobile, embedded and AI projects: an app with 50K+ downloads, and a year at Thales.

Scroll

My 1-year internship at Thales

SI&T Intern MMCM project 12-month placement

I worked on MMCM, a mine countermeasures programme for the French and Royal Navies — starting in SI&T, then moving into software engineering to test the system and fix defects.

400+ test procedures completed
200+ test cases executed
100+ defects resolved

Life of an intern

Two MMCM unmanned surface vessels on sea trials off the south coast
MMCM unmanned surface vessels on sea trials · © Thales / Shaun Roster

What I did

  • Ran 400+ test procedures and resolved 100+ defects, tracked in Jira and Doors.
  • Fixed 8+ software bugs and shipped a UI feature for dynamic screenshot naming.
  • Built a Grafana/Prometheus monitoring dashboard, provisioned via Ansible playbooks.
  • Refactored a core module to accept multiple image formats, configurable via Ansible.
  • Ran 12+ rig updates — Linux, PXE boot, GPU driver fixes — and mentored two junior interns.

Skills & Proficiencies

Technical
Linux, Python, Kotlin, Java, Bash, YAML
Tools
Jira, Doors, VMware, Excel, Squish IDE, Ansible
Engineering
Testing, integration, QA, UML, configuration control
Soft skills
Communication, problem-solving, initiative, mentoring
The TSAM mounted on an MMCM unmanned surface vessel
The TSAM I helped test · © UK MOD / Crown copyright

The same equipment behind every test procedure and defect above — the TSAM, deployed from the USVs pictured earlier.

"A genuine, obvious enthusiasm for working with computers and software is a real asset. Clearly someone who has built a reputation in a short time of being a reliable asset to the project."

- Line Manager

"I was really impressed with what you did with the app development and see that you could be (are) a really good software developer. I think that software development will be where your future in Thales belongs"

- Matrix Manager

"Friendly quick learner that quickly integrated and became one of the main points of contact for the SI&T team, building a wide network amongst interns, developers and graduates."

- Apprentice

"Faheem has fitted into the team and interfaced with other teams very well. I would be happy to work with Faheem in the future should the opportunity arise."

- A cool guy :)

Statics — VALORANT companion app

Kotlin MVVM Material 3 Expressive Firebase Riot API

A companion app for VALORANT I've built solo since 2021 — live matches, rank, store and loadouts, plus its own chat and widgets, for PC and console. 50K+ downloads across the Play Store and GitHub.

50K+ downloads to date
v5.21 latest release
10+ languages supported

Free · Android · grab the latest APK straight from GitHub Releases.

  • UI

    Material 3 Expressive

    Dynamic colour per account, drawn from your equipped player card.

  • Social

    Statics Social

    Global chat, a "looking for game" board, profiles and friend requests.

  • Live

    Live match tracking

    Agents, ranks and party info the moment you load in, with a round-replay minimap.

  • Loadout

    Loadout studio

    Equip skins, sprays, cards and buddies, and save presets.

  • Home

    Home-screen widgets

    Your shop, friends and rank, right on your home screen.

  • Shop

    Daily shop & wishlist

    Wishlist a skin, get alerted the second it hits your store.

  • Lineups

    Lineups library

    Thousands of lineups by map and agent, with inline video.

  • Cross-play

    Built for every platform

    PC, Xbox and PlayStation, with multi-account switching built in.

Nature vs Nurture — teaching Pac-Man to generalise

Python PyTorch NEAT-Python Gymnasium Pygame Reinforcement Learning

My final-year BSc dissertation (85%). Most AI agents that "beat" Pac-Man just memorise one maze — this one tests whether an agent can handle mazes it's never seen, and whether how it learns changes the answer. I built the game and a Gymnasium environment from scratch, then trained DQN and NEAT under identical conditions and tested both on 100 unseen mazes.

37% NEAT win rate · unseen
26% DQN win rate · unseen
100 held-out test mazes

Built from scratch in Python & Pygame · DQN trained on an RTX 4060, NEAT evaluated across six CPU worker processes.

Game built from scratch

Maze, pellets, power-ups and four ghosts — Python and Pygame, no pre-built RL environment.

Procedural mazes

A fresh maze every episode, BFS-validated so memorisation is impossible.

Two minds, one arena

A Dueling DQN vs. a NEAT population evolving weights and topology — same 29-D environment.

8-stage curriculum

No learning signal from scratch, so difficulty ramps across 8 stages, each gated by a rolling win rate.

Four ghost AIs

Blinky chases, Pinky intercepts, Inky flanks and Clyde switches by distance — all via A* pathfinding.

Measured, not vibes

CSV logging, fixed-seed benchmarks and Mann–Whitney U testing to compare both approaches honestly.

ROYA رؤية — an intelligent Quran companion

.NET MAUI 9 C# MVVM ONNX Runtime SQLite Material 3

An offline Quran companion built with .NET MAUI — reader, AI verse search, prayer times, Qibla compass and verse scanner, on Android, iOS, macOS and Windows from one codebase.

6,236 verses, fully offline
On-device AI verse search
4 native platforms

Built with .NET MAUI · one codebase across Android, iOS, macOS and Windows.

Offline Quran reader

Three Arabic scripts, three translations and eight reciters, all offline.

AI semantic search

Search in plain English, ranked on-device with MiniLM embeddings.

Prayer times

Daily Salah schedule with a live countdown to the next prayer.

Qibla compass

A live compass that points towards Mecca as you turn.

Quran scanner

Point the camera at a page and jump straight to that ayah.

Saved ayahs

Bookmark any verse and jump back to it in context.

Themes & personalisation

Four themes including OLED black, plus font size, script and reciter options.

Offline-first by design

One download on first launch, then it runs without a connection.

Real-time ambient lighting

Python tinytuya mss Multithreading Arduino Selenium

My screen's colours, mirrored on my smart bulbs in real time. A threaded Python script grabs screen regions, averages the colour and sets the lights over the local network.

It's been a side project for five years: it started as a weather-to-wallpaper script and grew into a full lighting rig with a screen mode, a weather mode and Discord control.

5 yrsof tinkering, since 2020
2 modesscreen and weather
30 minweather refresh
LANlocal API, no cloud
  • Capture

    Screen regions

    Grabbed with mss, fast enough to feel live.

  • Average

    One colour per frame

    Each region is reduced to a single RGB value.

  • Send

    Local API

    Straight to the bulbs over my network, no cloud round-trip.

  • Recover

    Threaded and resilient

    Capture never waits on the network, and it reconnects if a bulb drops.

  • 2020

    Weather wallpaper

    Scrapes the weather and swaps my desktop wallpaper to match.

  • 2021

    Lights from Discord

    A bot that sets the bulb's power, colour and temperature from chat.

  • 2022

    Weather and screen modes

    The Tuya bulbs follow the weather, or whatever is on screen.

  • 2024

    Arduino build

    RGB LEDs on PWM pins, driven by pyFirmata over serial.

  • 2025

    Real-time rebuild

    Threaded capture with mss, local API and auto-reconnect.

Discord bots that do everything

Python discord.py aiohttp Selenium Firebase tinytuya

I run a server with my mates, so I kept building bots for it — game stats, PC builds, quizzes and even my room lights.

7bots built for my server
2020first bot, SprinkledRainbow
3.2klines in the biggest, ValoBot

A few other things I've built

A selection of side projects across AI, hardware and the web.

Timeline

Where it all began

When I'm not coding

Sim racing Logitech G923, and I'm mostly racing around Spa.
Badminton Four years of playing and I still can't do backhands lol.
Rubik's cubes 18s PB on a 3x3, and I own a Megaminx.
Collecting cars Models of F1 cars, plus car edits.
Ducks I just like ducks a lot.
Flying the drone DJI Mini 2 SE, with beautiful shots from all over the UK.
Biking 500 rides so far on the Starling Bank Bikes app.
Arduino & electronics Built some cool stuff with LEDs.
Chess I love glass chess sets.
Bhangra Punjabi dancing energy, let's gooo.

Contact

Open to roles, collaborations or just a conversation. Email is the quickest way to reach me, but I'm around on these too.

faheemsaleemsq@gmail.com
LinkedIn GitHub Discord