Faheem Saleem — Portfolio / 2026

Faheem
Saleem

Computer science graduate based in Manchester. I build mobile, web and AI projects, shipped my mobile app to 50K+ downloads and spent a year at Thales working across testing and software development.

IRL
Computer science graduate · sim racer · likes building things and seeing them work
Edu
High First-Class BSc Computer Science · 82% · placement year at Thales
Next
MSc Artificial Intelligence at Manchester · starting Sept 2026
Open
Open to graduate roles, internships & freelance work · Manchester or remote

Scroll

About me

Software developer, AI postgraduate

Faheem Saleem
Manchester Thales placement 50K+ downloads Android · Web · AI

I’m a Manchester-based computer science graduate with a year of industry experience at Thales, where I worked as a Systems Integration & Test intern across testing, software support and delivery.

I’ve been building software since 2017, with projects spanning Android, web, discord bots and embedded systems. My biggest project is Statics, a native Android app that has passed 50K+ downloads, alongside a self-hosted cloud server and an offline AI assistant.

I like work that mixes clean engineering with practical impact: reliable systems, polished UX, and features that actually make people’s lives easier.

82%First-Class BSc
Thales12-month placement
50K+Statics downloads
2017started building software

Thales experience

My internship at Thales

SI&T Intern MMCM project 12-month placement

I worked on MMCM, a mine countermeasures programme for the French Navy and the UK Royal Navy. I started in SI&T, then transitioned into a software engineering role to help test the system, raise defects, verify fixes and support software changes when needed.

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

What I did

  • Ran 400+ test procedures and tracked the results in Jira and Doors.
  • Raised and worked through 200+ defects across the MMCM system.
  • Moved from SI&T into software development during the placement.
  • Helped with software changes, including a UI update for dynamic screenshot naming.
  • Supported rig setup, troubleshooting and a work trip to London for testing.

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

"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

"You have been a valuable member of the team and you have truly contributed towards the delivery of critical systems to the customer."

- Matrix 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. He became well integrated into the company building a wide network amongst other interns, developers and senior developers, graduates and more; making him a good fit for the company."

- Apprentice

"Efforts you've made to improve on the tools and processes applied, and your enthusiasm to learn and apply more SW skills - this is a real strength and something I think you should continue to highlight and leverage in your career as you move forward."

- Functional Manager

"Faheem has fitted into the team and interfaced with other teams very well. This is due to his enthusiasm and willing to engage with not only his team but others he comes into contact with. I would be happy to work with Faheem in the future should the opportunity arise."

- A cool guy :)

Flagship project

Statics — VALORANT companion app

Kotlin MVVM Material 3 Expressive Firebase Riot API

Statics is a companion app for VALORANT that I've built solo over 3+ years. It started as a simple stats checker and grew into a full app: it pulls live data from Riot's APIs to track your matches, rank, store and loadouts, then adds its own chat, wishlist alerts and home-screen widgets on top. Works on console as well as PC.

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

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

Material 3 Expressive

Dynamic colour, springy motion and haptics, themed for each account from your equipped player card.

Statics Social

A built-in community: a global chat with message reactions, a "looking for game" board, public profiles and friend requests — all powered by Firebase.

Live match tracking

See agents, ranks and party info the moment you load in, with full match history, rank history and an interactive round-replay minimap.

Loadout studio

Browse and equip skins, sprays, cards, titles and buddies, save presets, and see how complete your collection is.

Home-screen widgets

Your daily store, friends' activity, rank and win-rate, right on your home screen — tap to jump into the app.

Daily shop & wishlist

Wishlist the skins you want and get an alert the moment one hits your store — or shows up in a live match lobby.

Lineups library

Thousands of ability lineups, searchable by map and agent, with inline video playback so you can learn setups without leaving the app.

Built for every platform

Works on PC, Xbox and PlayStation, with multi-account switching and 10+ languages.

Dissertation · 85%

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 are quietly cheating — they memorise one fixed maze and fall apart if a wall moves. This project asks whether an agent can play mazes it has never seen before, and whether how it learns changes the answer. I built the whole game and a Gymnasium environment from scratch in Pygame, then trained two very different algorithms — DQN (deep reinforcement learning) and NEAT (neuroevolution) — under identical conditions on procedurally generated mazes, and tested them on 100 unseen ones.

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 evolved across 12 CPU threads.

Game built from scratch

The full Pac-Man — maze, pellets, power-ups and four ghosts — written in Python and Pygame, with no pre-built RL environment underneath.

Procedural mazes

A fresh maze every episode via depth-first backtracking, with BFS flood-fill validation rejecting any layout with unreachable areas before training starts — so memorisation is impossible.

Two minds, one arena

A Dueling DQN with prioritised experience replay versus a NEAT population that evolves both weights and topology — both plugged into the exact same 29-dimensional Gymnasium environment.

8-stage curriculum

Training the full game from scratch gave no learning signal, so difficulty ramps across eight stages — empty mazes up to four ghosts at 1.85× speed — each gated by a 150-episode rolling win rate.

Four ghost AIs

Blinky chases, Pinky intercepts, Inky projects vectors and Clyde switches by distance — each using A* pathfinding to apply pressure from several directions at once.

Measured, not vibes

A full training pipeline with CSV logging, fixed-seed benchmarks and statistical testing (Mann–Whitney U) to compare the two approaches honestly on held-out mazes.

Recent project

ROYA رؤية — an intelligent Quran companion

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

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.

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

The full Quran with three Arabic scripts, three English translations and eight reciters — downloaded once on first launch and read entirely offline.

AI semantic search

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.

Prayer times

A daily Salah schedule with a live countdown to the next prayer, cached by date so it keeps working long after the first fetch.

Qibla compass

A real-time magnetometer compass that points towards Mecca, with live bearing, distance and alignment feedback as you turn.

Quran scanner

Point the camera at a physical page or screenshot and it detects the verse reference and jumps straight to that ayah in the reader.

Saved ayahs

Bookmark any verse with a single tap, stored locally in SQLite with a timestamp and ready to jump back to in context.

Themes & personalisation

Four themes including an OLED black default, with app-wide font sizing and switchable Arabic script, translation and reciter.

Offline-first by design

A one-time first-launch download builds the database and the on-device AI index — after that, the whole app runs without a connection.

A few other things I've built

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

Timeline

Where it all began

Get in touch

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