David Pullinger

$ whoami|

01

Dynamic, results-driven recent graduate with a robust academic background in Computer Science and Mathematics.

02

Excel at tackling intricate technical challenges and thrive in high-stakes scenarios, driven by a genuine passion for critical problem-solving.

03

Hands-on experience in full-stack development and a keen interest in cutting-edge technologies like big data, blockchain, and machine learning.

$ ls projects|

PixelBands

Professional Project • 2022

A cryptocurrency project which was the first generative art and music collection on Solana, creating 4444 Band Member NFTs playing either guitar, bass, drums, or keys. Developed the project's main website, as well as two full stack services: a launchpad allowing music artists to mint NFTs from their music, and a studio allowing owners of the 4444 band members to mix their NFTs into a single Band NFT.

Next.js

Node.js

Cryptocurrency

Javascript

CSS

TailwindCSS

pixelbands_main/1.pngpixelbands_main/2.pngpixelbands_main/3.pngpixelbands_main/4.pngpixelbands_main/5.pngpixelbands_main/6.pngpixelbands_main/7.pngpixelbands_main/8.JPG

3D Model Lighting

University Project • 2023

A graphics program which utilizes OpenGL, SDL, GLEW, and GLM to render models and textures. It features transformation controls for models and views, lighting manipulation, and implements normal mapping and skybox rendering. It allows loading various models and textures and offers interactive transformations and lighting adjustments.

C++

OpenGL

Graphics

Shaders

3d_model_lighting/1.png3d_model_lighting/2.png3d_model_lighting/3.png3d_model_lighting/4.png

Frame Shifter

University Project • 2022

A program designed to create a video from a massive input image by recording the movement of a smaller window across the image, and outputting the window's view to a frame at each timestep (with additional options of inverting the pixel colors, or reversing the frames). These frames form a sequence suitable for video creation using tools like FFMPEG.

C++

Image Processing

FFMPEG

frame_shifter/1.gifframe_shifter/2.gifframe_shifter/3.gifframe_shifter/4.gif

Connected Component Extractor

University Project • 2022

A image processor which utilizes PGM images to extract connected components and output them in the form of a binary image. It allows users to define minimum and maximum component sizes while setting threshold values for segmentation. It employs algorithms to identify and isolate cohesive regions based on user-defined criteria, aiding in comprehensive image analysis and processing.

C++

Image Processing

Unit Testing

connected_comps/1.pngconnected_comps/2.pngconnected_comps/3.pngconnected_comps/4.pngconnected_comps/5.pngconnected_comps/6.png

RL Package Finder

University Project • 2022

3 RL agents trained via Q-Learning which had 3 seperate objectives: to find 1 package, 3 packages (in any order) and 3 packages (in the order RGB) via the shortest path. Each agent has it's own reward function and various other hyperparameters.

Python

Q-Learning

ML

RL

package-finder/1.pngpackage-finder/2.pngpackage-finder/3.png

Handwritten Digit Recognition

University Project • 2022

Artificial Neural Network and Convolutional Neural Network classifiers for the MNIST handwritten digit dataset. Their performance with various parameters and hyperparameters is evaluated and compared.

Python

PyTorch

ML

ANN

CNN

digit_recog/1.pngdigit_recog/2.pngdigit_recog/3.png

X-Hand

University Project • 2022

A comprehensive X-ray image processor, focussed on extracting a hand from an X-ray. The X-ray image goes through a series of steps in a pipeline, including preprocessing, extraction, component analysis and realignment. A web application is also implemented to provide a user friendly interface for the X-ray processor.

Python

OpenCV

Numpy

HTML

CSS

JavaScript

xhand/1.pngxhand/2.pngxhand/3.pngxhand/4.pngxhand/5.pngxhand/6.png

Pychat

University Project • 2022

A network application that can connect two or more users running seperate client applications through a single server. The application uses UDP on the transport layer and its own protocol on the application layer. State such as messages, groups and chats are persisted using a database.

Python

Tkinter

SQL

Networks

pychat/1.pngpychat/2.pngpychat/3.pngpychat/4.png

Falling Words

University Project • 2021

A simple Java game where the player must enter words in a text field before they hit the bottom of the screen. Each word's animation/state is independently controlled by a single thread, and has a random speed. Longer words result in higher scores.

Java

Java Swing

Concurrency

Parallelism

falling_words/1.pngfalling_words/2.pngfalling_words/3.png

Parallel Median Filter

University Project • 2021

The median filter, a fundamental tool in signal processing and image analysis, serves to reduce noise while preserving essential features within a dataset. This project implemented and explored the efficiency and performance of serial and parallel implementations of the median filter applied to one-dimensional data.

Java

Parallelism

Concurrency

med_filter/1.pngmed_filter/2.pngmed_filter/3.jpgmed_filter/4.jpg