Faheem Saleem — Portfolio / 2026
Computer science graduate based in Manchester. I build mobile, embedded systems and AI projects, shipped my mobile app to 50K+ downloads and spent a year at Thales working across testing and software development.
Scroll
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.
Life of an intern
The same equipment behind every test procedure and defect above — a towed sonar array and ROV, 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 :)
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.
Free · Android · grab the latest APK straight from GitHub Releases.
Dynamic colour per account, drawn from your equipped player card.
Global chat, a "looking for game" board, profiles and friend requests.
Agents, ranks and party info the moment you load in, with a round-replay minimap.
Equip skins, sprays, cards and buddies, and save presets.
Your shop, friends and rank, right on your home screen.
Wishlist a skin, get alerted the second it hits your store.
Thousands of lineups by map and agent, with inline video.
PC, Xbox and PlayStation, with multi-account switching built in.
A look inside the app
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.
Built from scratch in Python & Pygame · DQN trained on an RTX 4060, NEAT evolved across 12 CPU threads.
Maze, pellets, power-ups and four ghosts — Python and Pygame, no pre-built RL environment.
A fresh maze every episode, BFS-validated so memorisation is impossible.
A Dueling DQN vs. a NEAT population evolving weights and topology — same 29-D environment.
No learning signal from scratch, so difficulty ramps across 8 stages, each gated by a rolling win rate.
Blinky chases, Pinky intercepts, Inky flanks and Clyde switches by distance — all via A* pathfinding.
CSV logging, fixed-seed benchmarks and Mann–Whitney U testing to compare both approaches honestly.
ROYA (Arabic: رؤية, "Vision") is an offline Quran companion I built with .NET MAUI. One app — Quran reader, AI verse search, prayer times, a Qibla compass and a verse scanner — running on Android, iOS, macOS and Windows from a single codebase. It started as a university project and turned into something I actually use.
Built with .NET MAUI · one codebase across Android, iOS, macOS and Windows.
The full Quran with three Arabic scripts, three English translations and eight reciters — downloaded once on first launch and read entirely offline.
Ask in plain English like "patience in hardship" and get the most relevant verses, ranked on-device with a MiniLM sentence-embedding model and cosine similarity.
A daily Salah schedule with a live countdown to the next prayer, cached by date so it keeps working long after the first fetch.
A real-time magnetometer compass that points towards Mecca, with live bearing, distance and alignment feedback as you turn.
Point the camera at a physical page or screenshot and it detects the verse reference and jumps straight to that ayah in the reader.
Bookmark any verse with a single tap, stored locally in SQLite with a timestamp and ready to jump back to in context.
Four themes including an OLED black default, with app-wide font sizing and switchable Arabic script, translation and reciter.
A one-time first-launch download builds the database and the on-device AI index — after that, the whole app runs without a connection.
I wanted genuinely accurate arrival times for my local bus, so I built a live tracker for Manchester's Bee Network 219. It pulls the DfT Bus Open Data Service's raw GPS feed and combines it with the published timetable to model each bus's live delay, instead of guessing from distance and speed. It ran as an always-on service on a Raspberry Pi, tracking both directions of the route, and logged every prediction against what actually happened so it could prove its own accuracy rather than just claim it.
Deployed as a systemd service on a Raspberry Pi · served over a REST API to a Tkinter departure-board GUI.
Pulls the DfT Bus Open Data Service's SIRI-VM feed — raw live positions for every 219 vehicle, the same open data Bee Network's own app reads.
Matches each bus to its scheduled journey and measures its live delay against the timetable, instead of guessing ETA from distance and an assumed speed.
Logs every prediction against the bus's actual arrival, so the model reports its own real accuracy — around a 1-minute median, 90% within roughly 3 minutes.
Live-traced a data-quality issue in the upstream feed that was corrupting over a third of raw delay readings, then fixed it at the source.
Runs the outbound and return legs of the route from a single shared feed fetch, not double the API calls.
Compares elapsed time since the last arrival against the timetable's expected headway to flag a likely no-show.
Re-discovers and re-downloads the published timetable automatically whenever the operator supersedes the dataset.
Ran as an always-on systemd service, serving live predictions over a REST API to a Tkinter LED-style departure board.
A selection of side projects across AI, hardware and the web.
Mostly played Minecraft and Need for Speed
Parrs Wood High School
9 GCSEs with English, Maths and Science
Xaverian College
Computer Science, Maths and Physics :')
Manchester Metropolitan University
First-Class BSc (Hons) Computer Science · 82%
Achieved 86%
Programming, Computer Architecture, Web Development, Mathematics, Databases
Achieved 80%
Networking, Data Structures and Algorithms, Operating Systems, Software Development,
Ethical Hacking
Worked at Thales as an IVVQ Engineer for my placement year!
Graduated with First-Class Honours (82%) 🎉
Project, Research Methods, Artificial Intelligence, Mobile Development
University of Manchester
Diving into AI & machine learning
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