Edward Atkin

edwardatkin@edwardatkin.co.uk

About Me

I am a coding enthusiast who entered the world of digital creation at the age of 11, driven by a desire to bring my video game ideas to life.

With a dynamic array of technical skills, my educational background in Mathematical Physics drives my passion for programming and problem solving. From web development to data science, I'm always looking for fresh opportunities to stretch my abilities.

From the humble days of learning to code with Gamemaker 6 in the early 2000s, my path has brought me through to mastering the art of data science through Le Wagon's world-class data science bootcamp, and I'm now looking to apply my skills to a new challenge.

Technical Skills

Data

  • Python
  • SQL
  • Google Cloud Platform
  • StatsModels
  • SciKit-Learn
  • TensorFlow
  • Keras
  • Matplotlib

Games

  • Gamemaker Studio 2
  • Socket IO

Web

  • HTML5
  • CSS3
  • JavaScript
  • Responsive design

Developer Skills

  • Git/Github
  • Docker
  • Bash/Z Shell
  • Visual Studio Code
  • Make
  • Vim
  • 6502 Assembly

Data Science Projects

Horse Racing Predictor

Project objective: Train a machine learning model to predict the outcome of horse races.

Horse racing

Horse Racing Predictor

Project objective: Train a machine learning model to predict the outcome of horse races.

Close overlay

Horse Racing Predictor

Visit the Website

Project Overview

My first step into the world of gambling was through matched betting - a no-risk methodology which uses Bookmaker offers to guarantee profits. This was what first sparked my interest in betting systems and technically-driven approaches to gambling.

As gambling is addictive, it's very easy to become emotionally involved and make bad decisions. A robo-betting strategy provided by a machine learning model removes the emotional decision making. The bettor does not have to review racecards or analyse horses, nor do they need to analyse their wins and losses.

Chart of predictions
The dashboard is built using Streamlit and provides raw data alongside visualisations of the predictions.

Key Features

  • Automated data collection and racecard scraping
  • Two machine learning models, a deep neural network and a random forest classifier, making predictions
  • Data dashboard to visualise daily predictions and provide interpretations
Confusion matrix showing Random Forest Classifier model performance
Confusion matrix to show model performance of a Random Forest Classifier on the data. Modelling complex data such as horse racing shows the difficulty in balancing precision and number of predictions.

Technologies Used

  • Python
  • SQL
  • Bash
  • Tensorflow
  • Scikit-learn
  • FastAPI
  • Streamlit
  • MatPlotLib
  • Seaborn
  • Docker
  • Google Cloud Platform
  • Google Big Query

Reddit Sentiment Analysis

Project objective: Analyse the sentiment and emotion of Reddit comments.

Reddit Sentiment Analysis

Reddit Sentiment Analysis

Project objective: Analyse the sentiment and emotion of Reddit comments.

Close overlay

Reddit Sentiment Analysis (Offline)

Source Code on GitHub

Project Overview

This project was our final group project at the Le Wagon Data Science bootcamp.

Reddit is a social media platform where users can post content and interact with other users. It is a popular platform for discussion, with many subreddits dedicated to specific topics.

The project outline was to analyse the sentiment and emotion of Reddit comments, specifically those posted on the infamous Wall Street Bets subreddit, which is dedicated to stock market discussion.

The project was inspired by the recent GameStop short squeeze, which was driven by the Wall Street Bets subreddit.

A comment analysis
Analysing a user inputted comment

Key Features

  • Automated data collection system gathering comments from Reddit's Wall Street Bets Subreddit
  • Natural language processing used to analyse sentiment and emotion of comments
  • Results presented in a dashboard, giving and overview of the Subreddit's sentiment and emotional composition
Analysing the sentiment of reddit posts
Analysing the sentiment of Reddit posts

Technologies Used

  • Python
  • Plotly
  • FastAPI
  • Streamlit
  • Docker
  • Google Cloud Platform
  • Bash

Codewars Web Scraper and Data Visualisation

Project objective: Build a Web Scraper for Codewars Problems and Create a Data Visualisation Notebook.

Codewars problems

Codewars Web Scraper and Data Visualisation

Project objective: Build a Web Scraper for Codewars Problems and Create a Data Visualisation Notebook.

Close overlay

Codewars Web Scraper and Data Visualisation

Codewars Scraper Source Code Exploratory Data Analysis Source Code Analysis Presentation Codewars Solutions Repository

Project Overview

Codewars is a platform for coding challenges, known as katas, where users can solve problems and compare their solutions with other users.

I have been using coding problems on Codewars to further my technical capabilities since I started learning Python and also use them as a way to explore new languages and paradigms.

As the amount of katas I solved grew, I wanted a way to archive my solutions, visualise my progress and see how my problem solving skills have developed over time.

Chart showing distribution of difficulties for each programming language
Chart showing distribution of difficulties for each programming language

Key Features

  • Customised Selenium-based web scraper for retrieving and categorising Codewars problem solutions
  • Jupyter Notebook to parse solutions into a dataframe, collect further information through the Codewars API and conduct exploratory data anlysis
  • Presentation slides to visualise data and explore interesting features
Codewars scraper running in command line
The Codewars Scraper is a command line based Python program

Technologies Used

  • Python
  • Selenium
  • BeautifulSoup
  • Pandas
  • Matplotlib
  • Seaborn
  • Jupyter Notebook
  • Codewars API

Game Development Projects

Other Minds

Project objective: a 2d platformer where players can take control of any other entity in the game.

Other Minds title image

Other Minds

Project objective: a 2d platformer where players can take control of any other entity in the game.

Close overlay

Other Minds

Visit Game Page View Source Code Watch Trailer Watch Longplay

Project Overview

Other Minds draws its roots from philosophy, specifically looking towards the question; why are we ourselves, and why is understanding the consciousness of others so difficult? This is a concept in philosophy aptly knows as the problem of other minds - how do you know others experience consciousness?

Other Minds is an exploration of this concept. You inhabit a character known as Ed, accompanied by a floating prescence called Sage who allows you to possess other entities in the game. Through this unique mechanic, the player can step into the shoes of other characters, use them to solve puzzles and advance the narrative of the game.

Other Minds draw influence from Seiklus , a cornerstone of Gamemaker's legacy. By combining the influence of this game with innovative gameplay mechanics, Other Minds is a game which allows the player to explore the concepts of consciousness and embark on an exploratary adventure.

A challenging scenario in Other Minds
A challenging scenario in Other Minds

Key Features

  • Unique gameplay mechanic allowing the player to take control of any entity in the game
  • Large, open world to explore
  • Challenging puzzles and platforming
  • Complex emergent behaviour for enemies
  • Unique art style
  • Original soundtrack
  • Mostly made by one person
Dr Death boss fight in Other Minds
Dr Death boss fight in Other Minds - Dr Death is able to navigate platforms to pathfind to the player

Technologies Used

  • Gamemaker Studio 2
  • Aseprite
  • Logic Pro X

Date and Game

Project objective: Create a framework for 2-player online games to integrate into a dating app.

Date and Game Project

Date and Game

Project objective: Create a framework for 2-player online games to integrate into a dating app.

Close overlay

Date and Game

Visit the Website

Project Overview

Date & Game is a company integrating online games and dating into one app. Users match with other users and connect to play games together.

I was the lead games programmer for the company, in charge of creating the online game framework to integrate with the Date&Game API and programming gameplay.

I collaborated with the app developers for API integration and worked alongside game designers and artists to create several bespoke, two player experiences.

Route 69
In Route 69, players use various tools to solve puzzles together - here they are playing noughts and crosses together

Key Features

  • Robust online framework using Gamemaker Studio 2
  • Socket IO based networking
  • Integration with Date&Game API to allow custom usernames, avatars and high scores
  • Meticulous data storage methods allowing users to restore game state if they leave
  • Bespoke data encoding and use of bitmasking for seamless transfer of information
Dungeon Date
In Dungeon Date, players collaborate to escape the dungeon, choosing how to split their loot.

Technologies Used

  • Gamemaker Studio 2
  • Javascript
  • Socket IO
  • JSON

Web Development Projects

David Social Command Line Interface

Project objective: Create a social media command line interface

David Social CLI Homepage

David Social Command Line Interface

Project objective: Create a social media command line interface

Close overlay

David Social Command Line Interfacec

Github Repository

Project Overview

David Social is the most centralised social media platform on the internet. To join David Social, you must contact David.

This project uses the David Social API and Curses to create a command line interface for David Social.

Most features of the web app are available through the CLI, including interacting with posts in the usual way, making new posts, viewing feeds, viewing profiles and petting the David Social cat.

Petting the David Social Cat
David Social has many unique features such as a cat to pet. The CLI allows you to pet the cat in the usual way.

Key Features

  • Command line interface built with Curses library, allowing keyboard navigation and interaction
  • Uses the David Social API to interact with the David Social platform
  • Allows users to interact with posts, make new posts, view feeds, view profiles and pet the David Social cat
  • Generates ASCII art to display images in the CLI
Viewing a Profile
Viewing my profile through the CLI

Technologies Used

  • Python
  • Curses
  • Object Oriented Programming
  • APIs
  • ASCII Art

Personal Homepage

Project objective: Create a personal homepage to host projects I've made.

Homepage

Personal Homepage

Project objective: Create a personal homepage to host projects I've made.

Close overlay

Personal Homepage

Visit Homepage View Source Code

Project Overview

Over the years I've worked on a lot of games, pieces of music, and other projects, and I wanted a place to host and write about these projects.

I have deep sense of nostalgia for the Web 1.0 era, a time when hosts like Freewebs and Geocities proliferated. These websites had a charming, amateur quality with a distinct personal touch which left an impression on the viewer.

Inspired by this, I chose to use web hosting service Neocities , the spiritual successor to Geocities.

Blog post
An example of a blog post

Key Features

  • Homepage with links to things I've made
  • Responsive design for mobile and desktop
  • Blog with RSS feed
  • Games page with CSS-based filtering
  • Tools to automate building pages, updating links and RSS feeds
  • Automated website updating script using Neocities API
Games page
An example of the games page with CSS-based filtering

Technologies Used

  • HTML
  • CSS
  • Javascript
  • Python
  • Neocities API
  • BeautifulSoup

Tombstone Tapes

Project objective: Create a website for a bespoke casette tape production company stylised after Windows 95.

Tombstone Tapes

Tombstone Tapes

Project objective: Create a website for a bespoke casette tape production company stylised after Windows 95.

Close overlay

Tombstone Tapes

Visit Website View Source Code

Project Overview

Tombstone Tapes is a small business creating bespoke, novel cassette tapes. Inspired by the redundant cassette tape format, we decided to look back to the past for inspiration and created a website stylised after Windows 95.

The design of the Tombstone Tapes homepage is modelled after Windows 95, with colours and fonts emulating those from the operating system itself.

This design choice opened up opporunities for fun elements on the website to interact with, such as a fully functional start menu, complete with icons to external sites and displayed in 16-bit Windows colour palette, along with a real time clock along the task bar.

The containers on the website are Windows 95 dialogue boxes, including image containers stylised after MS Paint containers.

An MS Paint style image container
The website's containers take inspiration from Windows 95, with the image containers being stylised after Paint

Key Features

  • Windows 95 inspired design
  • Fully interactive start menu
  • Real time clock
  • Responsive design
The start menu
Tombstone Tapes' homepage features a fully interactive start menu

Technologies Used

  • HTML
  • CSS
  • JavaScript
  • VirtualBox

Blogs

Coding Heaven

Coding Heaven is an entertaining blog features personal coding stories and fun, creative approaches to computer programming.

Examples include Off-By-One Horrors, the story of how it took me three weeks to solve an off by one error, along with Hello World but it Becomes Increasingly Disturbing, a look back at the classic Hello World program and how we can have fun by completely over-engineering it.

Edward Atkin's Blog

This is my personal blog I use for writing about life annecdotes, memories and personal reflection.

Examples include In Which I Break Free From My Sister's Banana Boycott, the story of how I didn't eat bananas for 25 years because my sister didn't like them, and On The Dusty Drawers of Abandoned Hobbies, a reflection on hobbies I felt very enthusiastic for, only for them to be left to gather dust.

Weird Indie Shit

Being an indie game developer has given me experience in the sheer difficulty of getting your games noticed. As programming video games becomes increasingly accessible, the rate at which games are uploaded is constantly accelerating.

Upon making the observation that several hundred games are uploaded to Itch io every day, most of which would never be seen or played, I decided to embark on some indie game archaeology to discuss a few games that nobody has ever heard of.

Certifications

Python for Data Science and Machine Learning Bootcamp

This Udemy course is an introduction to data science and machine learning using Python. It covers a wide range of topics, including data visualisation, data analysis, machine learning, and deep learning. It provides a good foundation for any aspiring data scientist to work from, with many practical projects to work through along with mathematics and theory.

View certificate

The Git & Github Bootcamp

This course covers all major aspects of Git and Github. It covers the basics of Git, such as branching, merging and resolving merge conflicts. It also teaches more advanced concepts including stashing, interactive rebasing and checking out commits.

The course also teaches various git workflows including pull requests and rebasing, and how these workflows may be integrated into Github repositories.

It also takes a look at how Git works under the hood.

View certificate

Design a CPU

The Design a CPU course provides a guide to building circuitry for an 16-bit CPU right through to executing Assembly code.

Using freeware software Logisim, the course covers basic logic gates, building memory cells and registers and eventually building up to show how each individual component can be combined to create a full CPU.

View certificate

Learn Assembly Language by Making Games for the Atari 2600

This course teaches the basics of Assembly language by creating a game for the Atari 2600.

Using the Stella emulator, the course covers the basics of the 6502 Assembly language, including memory addressing modes, branching, subroutines and interrupts.

View certificate