{

"name": "Sulaiman",

"occupation": "Software Developer",

"likes": ["Video Games", "Reading"],

}

My Work

Project manager and research lead for Retrohunt; a retro game resale app

Portfolio

The game industry's widespread adoption of digital distribution, combined with the unfortunate closing of many smaller game's studios, has lead to the growing rarity of many physical games.

As such, players looking to purchase game's they experienced when they were younger may be out of luck on sites such as Amazon, as the site's ubiquity as a commerce platform has lead to multiple instances of fake cartridge's being sold to consumers by opportunists.

Retrohunt was my team's solution to this problem, as we believed these consumers would feel far more comfortable using an application centered around physical game commerce while emphasising local purchases and product verification.

Programmer, documenter and software tester for a cardiovascular disease risk calculator

Cardiovascular disease (CVD) is a group of disorders that impact the function of the heart, leading to the deaths of millions per year. Part of the NHS' role in safeguarding our nation's health is to analyze the risk factors a patient may have for a CVD disorder and assist them in taking steps to minimize said factors.

In 2022 I collaborated in an exercise with multiple like-minded individuals to create an online tool that could help NHS clinicians calculate a patient's approximate risk, generate a graph corresponding with their results over time, as well as print or email these findings to patients.

I'm very proud of the time I spent working on this project, as the many hours spent researching clinician needs, programming, testing the application and documenting this process granted me a deeper appreciation for the work that healthcare services put in behind the scenes to ensure that public health remains intact.

Project manager and sole developer for Q-Bot, an A.I. that could beat players in tic tac toe.

As an aspiring game developer, one of the most predominant issues I've encountered (whilst programming my own game as well as playing games) is the problem of balancing difficulty. Player's begin a game at varying levels of intelligence, curiosity, experience and reflexes, thus developers have to create challenges that aren't too easy for proficient players whilst also not being too hard for beginners.

Popular solutions (e.g. difficulty modes in single player games) seek to remedy this problem by sorting player into broad categories and presenting them with different challenges based on approximate skill. The problem with this is these systems are irresponsive; once the chosen difficulty is selected, the game does not adjust it according to the player's actual skill level. This unfortunately leads to situations such as player's burning themselves out of a game because they've set the difficulty too high without realizing or out of a sense of pride.

As part of my final university project I wanted to tackle this problem head on by using a technique not often utilized in the game development industry: reinforcement learning. By using the Q-Learning algorithm (a reinforcement learning algorithm that bases decision on a Q Table) I wanted to prove two things: that a self-trained AI can still gain a high level of competency and that this could be reasonably implemented by a small team of developers.

In the beginning there were numerous problems, such as learning how to utilize a machine learning algorithm for the first time as well as creating a methodology that combined elements of Scrum and Waterfall in order to fit the needs of a solo developer.

However after familiarizing myself further with the Python language and libraries such as NumPy, I can proudly say I finished the project according to my objectives and have gained practical experience in data science that I hope will serve me well into the future.

About Me

I'm a passionate software developer with proficiency in multiple programming languages (with a focus in C# and Python in particular). Across multiple development projects I've had the opportunity to refine my skills as a software tester, documenter and team leader, granting me the flexibility to fulfill a multitude of roles according to what the team needs.

Portfolio

In order to improve my skills as a programmer and express my creativity I'm currently working on a 2D game in Unity. This journey thus far has been a valuable experience for me, as learning a new engine from scratch and slowly building towards a final product has helped maintain the appetite for learning I fostered in university. Something I believe will be a valuable asset in a corporate environment.

Beyond my programming-related projects you'll often find me researching tips to improve my creative writing and noting them in my Zettelkasten. I spend a lot of time brainstorming fictional worlds and thinking of the writing challenges regarding worldbuilding that might pop-up. This provides me with both a great change of pace from the technical challenges of coding while still sharpening my problem solving skills.

Primary Technical Proficiencies

Python
C#/C++/C
Java
SQL
Unity

Wanna talk?

Contact me with any questions you have. I'm always open to talk!

© 2024