Zachariah Newbery

Final Year CS Student
University of St. Andrews

I am a final-year computer science student at the University of St. Andrews with a natural curiosity nurtured through self-motivated learning with like-minded students to learn multiple programming languages, alongside a broad academic and linguistic foundation.

Education


MSci Computer Science

University of St. Andrews

  • Academics
    • Overall Grade: First Class with Honours (18.3/20)
    • Fifth Year: Mean Grade 17.2/20 (First)
      • Machine Learning, Concurrency and Multi-Core Architectures, Interactive Hardare and Software, Software Architecture, Individual Masters Programming Project
    • Fourth Year: Mean Grade 18.8/20 (First)
      • Programming Language Design and Implementation, Audio-Visual Signal Processing, Software Programming Principles, Computer Security, Data Visualisation, Video Games, Computer Architecture, Language and Computation (NLP)
    • Third Year: Mean Grade 18.4/20 (First)
      • Logic and Reasoning, Operating Systems, AI/ML, Computational Complexity, Databases, HCI, Software Engineering Team Project
    • Second Year: Mean Grade 17.7/20 (First)
      • Data Structures and Algorithms, Computer Systems, Advanced Programming Projects (Group), Linear Mathematics, Multivariate Calculus
    • First Year: Mean Grade 18.4/20 (First)
      • OOP, Programming with Data, Programming Projects (Group), Mathematics, Organic and Biological Chemistry 1, Astronomy and Astrophysics 1
    • Class Representative for First-Year Computer Science
  • Extra-Curriculars
    • Taekwondo Society: IT and Alumni Representative (First-Second Year), Treasurer (Second-Fourth Year)
    • Singapore Society: Treasurer (First-Third Year)

June 2023

St. Andrews, United Kingdom

International Baccalaureate

St. Joseph's Institution International

  • Overall Grade: 43/45 Points (Diploma Awarded)
  • Higher Level: Physics (7), Chemistry (7), Mathematics (7)
  • Standard Level: Psychology (7), Spanish Ab Initio (7) English Lang/Lit (6)
  • Core Points: 2/3

November 2017

Singapore, Singapore

Experience


Site Reliability Engineering Intern

Google

  • Working within the AdsML team to aid in the data visualisation of user browsing data for client usage.

May 2022 - Aug 2022

Dublin, Ireland

Part-time Undergraduate (Software - GPU)

ARM

  • Working within the Central Engineering GPU-SW team at ARM as a student ambassador during the academic term.
  • During summer, working on an assigned project to improve offline tooling for GPUs, through the addition of features using Python and Typescript to work with flow control and post-processing analysis, so as to further my skills in software engineering in a professional environment.

March 2021 - May 2022

Cambridge, United Kingdom

Undergraduate Research Assistant

University of St. Andrews

  • Implemented data visualisation within a biological evolutionary simulation (S.E.E) using C# within Unity, alongside a GUI for user-guided customisation.
  • Currently working on the improvement of Docker containerisation for a Jupyter kernel for GAP, a mathematical programming language, alongside the usage of the kernel in the online collaborative workspace Deepnote.

September 2020 - December 2022

St. Andrews, United Kingdom

Senior Student Ambassador

University of St. Andrews

  • Provided tours to potential students, whilst managing a group of Junior Ambassadors to ensure a smooth operation.
  • Helped prospective students by answering their queries about life in St. Andrews, and adjusting to it

September 2018 - May 2023

St. Andrews, United Kingdom

Teaching Provider (Part-Time)

St. Joseph's Institution International

  • Aided teachers in ensuring students understood and had learnt material. Primarily worked with 6-10-year-old children, helping with Math and Science.
  • Assisted a student who was in remission from Leukaemia, to ensure that her readjustment to school life after hospitalization went smoothly.

January 2018 - August 2018

Singapore, Singapore

Data Enterer (Part-Time)

Holmusk

  • Entered nutritional data into a large database to help collate data for nutritional analysis.
  • Researched using a multitude of methods to ensure accuracy of data

June 2016 - August 2016

Singapore, Singapore

ECA Provider (Part-Time)

St. Joseph's Institution International

  • Introduced and taught a group of ~25 6-12-year-old students programming.
  • Ensured all students were kept engaged, with none of them out of their depth, whilst organizing lessons to ensure all students had something to learn.

June 2015 - December 2017

Singapore, Singapore

Dental Work Experience Intern

Thompson Medical Centre

  • Shadowed a dentist for two weeks in order to experience the schedules and life in dentistry, alongside learning about the technologies utilised by the medical industry.

June 2015 - July 2015

Singapore, Singapore

Academic Awards


Dean's List, Fifth Year

University of St. Andrews

The Dean's list is intended to honour high intellectual achievement across the entire spread of a student's modules in a given year. Only students with a credit-weighted mean for the year of 16.5 or above are admitted to the list.

June 2023

St. Andrews, United Kingdom

Dean's List, Fourth Year

University of St. Andrews

The Dean's list is intended to honour high intellectual achievement across the entire spread of a student's modules in a given year. Only students with a credit-weighted mean for the year of 16.5 or above are admitted to the list.

June 2022

St. Andrews, United Kingdom

Dean's List, Third Year

University of St. Andrews

The Dean's list is intended to honour high intellectual achievement across the entire spread of a student's modules in a given year. Only students with a credit-weighted mean for the year of 16.5 or above are admitted to the list.

June 2021

St. Andrews, United Kingdom

Christopher Strachey Prize

University of St. Andrews

Awarded to the best student in CS2001/2101 (Data Structures and Algorithms)

January 2020

St. Andrews, United Kingdom

Dean's List, Second Year

University of St. Andrews

The Dean's list is intended to honour high intellectual achievement across the entire spread of a student's modules in a given year. Only students with a credit-weighted mean for the year of 16.5 or above are admitted to the list.

June 2020

St. Andrews, United Kingdom

Dean's List, First Year

University of St. Andrews

The Dean's list is intended to honour high intellectual achievement across the entire spread of a student's modules in a given year. Only students with a credit-weighted mean for the year of 16.5 or above are admitted to the list.

June 2019

St. Andrews, United Kingdom

Additional Awards


Professional Skills Curriculum Award

University of St. Andrews

The Professional Skills Curriculum is a co-curricular development programme for students at the University of St Andrews. Participants complete a skills analysis to help them identify a number of professional skills areas to develop in, deemed important by graduate employers. The skills are delivered via a mixture of lectures, practical skills sessions and online workshops. Participants are encouraged to apply their learning to their studies, extra-curricular activities and work experience.

June 2021

St. Andrews, United Kingdom

3rd Degree Black Belt in Taekwondo

Singapore Taekwondo Federation (STF)

June 2018

Singapore, Singapore

2nd Degree Kukkiwon in Taekwondo

World Taekwondo Federation (WT)

June 2019

Singapore, Singapore

Bronze Medal in Poomsae

National Student Taekwondo Championships

February 2019

Manchester, United Kingdom

NYAA Gold Award

National Youth Achievement Award Council

The National Youth Achievement Gold Award is presented to students demonstrating the highest level of commitment and dedication to both self and community. It shows a perseverance in sports, community service and creative arts, creating skills cultivated over multiple years.

January 2018

Singapore, Singapore

Grade 5 in Saxophone

Associated Board of the Royal Schools of Music (ABRSM)

January 2018

Singapore, Singapore

Gold Medal in Kyorugi

2016 International School Taekwondo Championships

April 2016

Singapore, Singapore

Volunteering Work


Asian Women's Welfare Association (AWWA)

Student Volunteer

  • Returned to AWWA to aid with a few classes in preparation for the next academic year
  • Planned and prepared classroom and common areas, alongside some teaching materials

October 2016 - November 2016

Singapore, Singapore

Juara Turtle Project

Challenge Week Volunteer

  • Planned a self-funded charity trip to Tioman Island in aid of the Juara Turtle Project
  • Organised fundraising events in order to secure money for the trip
  • Helped to raise awareness during the week-long expedition, whilst ensuring that the habitat were safe for the new wave of hatching eggs occuring after we left

April 2016 - October 2016

Singapore, Singapore

St. Joseph's Institution International

Maths/Science Tutor

  • Tutored three struggling students in Mathematics with supplementary aid in the Natural Sciences
  • Focused mainly on Maths, Physics and Chemistry, with sessions conducted weekly

January 2016 - December 2016

Singapore, Singapore

St. Joseph's Institution International

Peer Support Mentor

  • Provided a class of younger students (Year 7) a mentor/big-sibling figure, helping them to adjust to the stresses and challenges of High School
  • Joined the class on their week-long trip to Loola in aid of the orphanage, as well as building a library

January 2016 - December 2016

Singapore, Singapore

Asian Women's Welfare Association (AWWA)

Student Volunteer

  • Helped students with special needs in their after-school classes
  • Aided in setting up the classroom for the kids, alongside interacting and playing with them
  • Attempted to help the kids artistic and basic motor skills develop

April 2015 - July 2015

Singapore, Singapore

Lee Ah Mooi Old Folks Home

Student Volunteer

  • Returned to Lee Ah Mooi for a few months
  • Continued with tasks done previously, alongside a few extra logistical tasks

January 2014 - June 2014

Singapore, Singapore

Loola Orphanage

Student Volunteer

  • Week-long trip to Bintan, helping in teaching/playing with young children from a nearby orphanage
  • Fundraised cash to give to the orphanage prior to the trip

August 2012 - August 2012

Singapore, Singapore

Lee Ah Mooi Old Folks Home

Student Volunteer

  • Visited old age home weekly, interacting with the residents there
  • Served meals to them and helped feed a few of those with deteriorating motor skills

January 2012 - December 2012

Singapore, Singapore


Tools


Unit Testing
LaTeX
HTML/CSS
Sphinx (AST)
Cabal

Languages


Java
C
Python
SQL
Typescript
Haskell
Rust

Skills


Agile Management
Project Planning
Leadership
Problem Solving
Organisation

Projects

Note: Coursework repositories are set to private in order to ensure good academic practice, and prevent plagiarism, but are accessible on demand.

CS5033 - Story Plot Management System

Architectural analysis of a specification for a collaborative story writing system, alongside a skeletal implementation (method stubs).

CS4201 - MiniJava Typechecker

Implementation of a type & scope-checker for the MiniJava language, making use of the ANTLR parser to generate an AST to work with.

CS4201 - Lambda Calculus Translator and Evaluator

Implementation of a translator for the Funl language (a restricted subset of Haskell) to the lambda calculus, and an evaluator that would reduce the lambda calculus representation to its normal form.

CS4303 - Ballista Command Video Game

Implementation of a variation of Missile Command (1981) written using java-processing. Functionality included wave-based difficulty progression, projectiles affected by gravity & drag, phase transitions, and custom sprites and sounds.

CS4303 - Robotron4303 Video Game

Implementation of a variation of Robotron: 2084 (1982) written using java-processing. Functionality included wave-based difficulty progression, AI-based enemies with variable behaviours, procedural level generation with binary space partitioning, and custom sprites and sounds.

CS4303 - Wanderer's Path Video Game

Implementation of the game Wanderer's Path, a self-designed game combining the concepts of snake-based movement and tower defence as a top-down RPG. Functionality included range-based auto-attacks via a ray-casting algorithm, novel AI pary-based behaviours, procedural level generation, unique player upgrade trees, boss battles, and a GUI alongside custom sprites and sounds.

CS3105 - Searching Methods in AI

Implementation of Best First Search (with both Manhattan and A* heuristics) to determine the number of moves to solve the eights puzzle, with customization allowing for sizes beyond 3x3. Iterative Deepening search with Branch and Bound characteristics was also added for comparison.

CS3105 - Multi-Level Neural Network

Implementation of a multi-level neural network utilising MiNet to recognise hand-written digits. Analysis was conducted on the effect of numerous hyper-parameters on the performance of the network.

OpenCV Facial Recognition

Personal project getting a handle of the OpenCV library, implementing live facial detection via a webcam, using Haar and LBP cascades, and facial recognition with a trained EigenFaceRecogniser model.

CS3101 - Squash Club Database + GUI

Implementation of a database given a relational schema and scenario description, alongside a GUI written with JavaFX to perform queries and insert/access data without any user interaction with the database.

CS2001 - FSM

Developed a program which can intepret basic Finite State Machines from a description of the transition table giving rise to the machine. Furthermore, ensured definitions were legal.

CS2001 - Algorithmic Complexity

Implementation of merge and selection sort within Java, alongside numerical analysis in order to determine their complexities in comparison to the literature values.

CS1006 - Hex

Creating a working simulation of the game Hex using Java , allowing connection between a client and a server, or 2 players on the same device. Developed alongside a GUI for comfortable user interaction. Furthered network skills, and UX programming.

CS1006 - Mini-Compiler

Paired work writing a LOGO to PostScript compiler, requiring skills in lexical analysis, tokenisation, and error reporting.

CS1006 - Starcraft Optimiser

Optimisation of the populat game Starcraft II: Wings of Liberty. Attempts to locate the fastest path to a user-defined goal via simulation and heuristic pruning. Also developed alongside a basic GUI.

CS4204 - Parallel Pattern Interface

Header-only library implementing a high-level interface for two stream-parallel patterns - farms and pipelines - using pthreads, abstracting over the lower-level functionality pertinent to parallelism and allowing pattern nesting.

CS4204 - Concurrent Set

Implementation of three different strategies to achieve safe concurrent access to a Set data structure - a global mutex, a finer-grained lazy-deletion, and a lock-free atomic compare-and-swap strategies.

CS4202 - Branch Predictor Component Simulator

Implementation of four different branch predicition algorithms (always-taken, bimodal, gshare and spotlight) to be used on trace files for accuracy evaluation.

CS3104 - Simple File System

Implementation of a simple FAT file system in C, stored on a local file, extended to have measures for concurrency control and access.

CS3104 - Simple Shell

Implementation of a simple shell making use of system calls in C. Subset of Unix bash commands implemented, alongside file redirection and piping, background execution and the usage of shell variables (alongside environment variables).

CS2001 - Character Counter

Simplistic C program written to determine the counts of individual characters within a text file, to get a feel for contructing simple data abstraction in C.

CS2001 - Logic

Development of a program which looks at logical inference, determining whether a set of user-defined clauses will lead to a contradiction. Made use of part of the DPLL algorithm in order, namely unit propagation.

CS2001 - Thread Safety

Multi-threaded program simulating a fixed-size generic Stack. Ensured thread-safety and blocking functionality, through the usage of semaphores and mutexes.

CS3099 - Federated Social Media (Backend)

Rust-based backend to post and query to a MariaDB remote database using Diesel for MySQL functionality. Used to store usernames, posts and communities on the federated network.

CS2006 - REPL Calculator

Group project coded to create a simulation of a scientific calculator, allowing for function creation amongst other features.

CS2006 - Othello

Console-based implementation of the board game othello, alongside multiple user enhancements, some basic AI opponents, and network playability.

CS5014 - Seal Image Classification Model

Evaluation of several classification algorithms to classify aerial seal images, using k-fold cross validation and hyper-parameter tuning to determine an optimal model

CS5014 - Bean Type Regression Model

Logistic regression model that could predict a type of bean given 16 image features within a provided dataset.

CS5012 - Parts-of-Speech Tagging in NLP

Implementation of three alternate algorithms for parts-of-speech tagging (eager, viterbi, local decoding) for accuracy comparison and evaluation, using the Universal Dependencies treebanks for multiple languages.

CS4203 - Rhythmic Keylogger Authentication

Keylogger application written to log keypresses and the rhythm of a user to aid in the assessment of typing rhythm as a plausible biometric authenticator.

CS3052 - Complexity Analysis

Implementation of three different algorithms solving the closest-pairs problem, including a randomised linear-time sieve algorithm. Code was also written to plot and conduct data analysis on said algorithms through matplotlib and scipy.

CS2006 - Distorted Integers

Implementation of a new arithmatic operation (Distorted Integers), and functions to ensure that mathmatical properties are upheld. Also included an algorithm to determine the span of such an operation with given parameters.

CS2006 - Dataset Analysis

Program written to analysis wikipedia data dumps, checking the consistency of the data, and performing moderately complex descriptive analysis of the data using the pandas library.

CS5041 - Interactive Museum Exhibit

Two independent web interfaces visualising data sourced from several IoT sensors - a modular dashboard created with React through the Expo framework, providing digestible summaries of the sensor data; and a creative P5 sketch of a generative landscape based on sensor values.

CS5041 - Melody Match-Up Game

Melody-matching game making use of the Microsoft Kinect and a simple Arduino piano to teach students about the spatial mapping of musical notes - aiding in music education.

CS5041 - Shared To-Do List

To-do list web app to help increase productivity and higher communication between collaborating users, allowing them to create and login to personal accounts to create, view, delete and edit to-do list items containing descriptions, due dates, and assignees (other users).

CS5041 - Asteroids:Reloaded micro:bit Controls

Alternative control scheme for an adapted version of the game `Asteroids:Reloaded` comprising of two BBC micro:bits (1x v1, 1 x v2) and enabling players to control the game through a WebSerial connection

CS3099 - Federated Social Media (Frontend)

Web server to serve posts handled by Rust backend, allowing for user authentication and navigation.

CS5044 - D3 Data Visualisation

Hand-written website employing HTML, CSS, JavaScript alongside the D3 and Bootstrap libraries to create an interactive data visualisation based on input CSV files.

Research Intern Project - Data visualisation in S.E.E.

Implemented data visualisation within a biological evolutionary simulation (S.E.E) using C# within Unity, alongside a GUI for user-guided customisation. Improved the process flow for capturing data points for post-simulation analysis, removing previous file-dumping overhead.

Research Intern Project - GAP in Jupyter

Implementation of a docker container to aid in the usage of Jupyter notebooks with the GAP language for usage in deepnote for collaborative projects.

CS4302 - Audio Processing

Matlab program written to remove common background noise from provided signals to isolate a base audio file.

CS4302 - Image Processing

Matlab program written to automatically segment an image taken of a pile of pills to count the number of pills within the image (and extended to work with different types of pills).

CS5012 - Grammar Design

Designed a grammar to model a sub-set of the English language, via basic terminal rules for lexical entries, non-terminal productions for basic sentences. Advanced features such as verb forms, number agreement, preterite, gerundive and modal verbs in verb phrases, and subcategorisation of verbs were also implemented.