Chris Gregori


Design & Code

London, England


My Name is Christopher Gregori. I am a Software Engineer graduate living in London.
I enjoy fun little programming projects and working with fun people.
Contact me if you want to find out more.


BSc (Hons) Software Engineering - City University, London

September 2010 - July 2014

A specialist focus on the programming and development of large and complex software, with an emphasis on dependable systems.
Classification: Class I Honours

Year 4
Programming in C++ 80.4%
Games Technology 73.1%
Individual Project - Triple Module Dissertation 82.0%
Electronic Commerce 78.0%
Data Mining 82.5%
Requirements Engineering 80.0%
Year 3 - Industrial Placement with Thomson Reuters
Professional Experience - Placement Reports 76.0%
Year 2
Data Structures & Algorithms 66.0%
Formal Methods 72.4%
Networks and Operating Systems 64.6%
Object-Orientated Analysis and Design 75.1%
Professional Development in IT 73.0%
Software Measurement and Reliability 57.7%
Team Project - Double Module 67.0%
Year 1
Computation and Reasoning 81.8%
Mathematics for Computing 69.6%
Software Engineering 60.8%
Systems Architecture 56.8%
Programming in Java 80.5%
Business Systems 78.0%

(Team Project)
This application was created during my second year of University in a team.
This desktop application built in Java utilised the JDBC MySQL driver to hook into a back-end database of record data to provide an application suite for a mock Photography firm.

The system features functionality to record orders, manage staff and customer records, and produce PDF receipts of complete jobs.

The solution was designed as a team and implemented by me.
Competition Assessor Scoring System
Cyber Security Challenge (CSC) is a non-profit company that runs IT security-related competitions and events with the aim of attracting talented cyber specialists to the IT security industry.

The purpose of this project was to work with CSC to develop a system with capabilities to efficiently and securely collect, assess, collate and automatically normalize data from CSC events.

The new system aimed to reduce time spent administrating, analyzing and normalizing event candidate scores through the implementation of a normalization engine. The system increased efficiency and robustness of the data via a software implementation over the previous paper-based system and increased security of all aspects of event data through the use of encryption and dedicated file formats.

I achieved a grade of 82% for this dissertation and was invited to the Made@City event to exhibit the application.
Games Coursework
A recreation of the video-game 'Asteroids' built using OpenGL and C++ 11.
Involved programming collision detection, bounding shapes, and automatic enemy AI.
C++ Coursework
Simple console application built to demonstrate the usefulness of C++ Templates, Abstract classes and virtual tables by transforming 2D shape coordinates.
E-Commerce Coursework
PHP 5.4
Mock online shopping site built to sell Video Game Art.

Incorporated Twitter Bootstrap as a CSS framework, jQuery for animation, MySQL as a database, and PHP as the backend for constructing sessions, carts, orders and hashing passwords.
Java Coursework
Designed, prepared and created a side-scrolling action game during my first year of university utilising the Box2D engine (used by the popular game, Angry Birds).

Contains and includes fully animated sprites, sound effects, 3 levels, a main menu, and a high score system; it was created using the Java programming language during my first year of University.
Video Preview


Work Experience

Net-A-Porter - Graduate Software Engineer

September 2014 - ...

Graduate Software Engineering Scheme based on rotations in Software Testing, Software Development and Dev Ops. Exposing me to various technologies, including Java, Perl, Scala, Ruby, JavaScript and iOS development.

ActiveMQ JMS
Enhanced and maintained several core production backend applications in Perl 5 utilising PostgreSQL, DBIx and the Catalyst MVC Framework.

Built a new in-house admin tool as part of a two man team using Perl, Catalyst, ActiveMQ JMS, AJAX and PostgreSQL.

Refined best practises via daily code reviews using Reviewboard.

Source code managed using Git.

Projects managed in JIRA.
Java Spring
Worked on various areas of the Mr.Porter web application implementing RESTful API endpoints.

Integration with backend API's via POJO's, DAO's, Services and Circuit Breaker design pattern.
Responsive SASS/Styling
Worked on various areas of the Mr.Porter site furniture, adding mobile-first responsive CSS for tablet and desktop versions.

Refactored javascript to updated best practises.
Ruby Automation
Site Prism
Worked with automation testers to enhance, maintain and improve a BDD Ruby Gherkin Test suite used to frequently test core applications by writing gherkin scripts and native ruby code.
CentOS 5
Provisioning and promoting application RPMs using Jenkins continuous integration.

Deploying and provisioning applications on OpenStack Cloud instances.

Thomson Reuters - Junior Software Engineer

July 2012 - August 2013

Developing, implementing and maintaining tools in C++, C# and VBA to monitor and improve the Elektron Traffic Management System.

Statistic Analyser Tool
Regular Expressions
This application was created during my placement at Thomson Reuters.

My first application built in C#, replaced a legacy application which would analyse server log files by passing data into an XML customisable analysis engine, and output graphs in XLSX format.

The application required no pre-requisite installs other than the .NET framework.

The original application took 1-2 minutes per graph generation, this version took ~8 seconds per graph. This application continues to be used and further developed after my leave.

Further information unavailable due to client disclosure agreement.
Log File Inspector
Regular Expressions
This application was created during my placement at Thomson Reuters.

This desktop application built in C# provided the analysis of:
  • Server log files (content and time span)
  • Windows event files
  • Raw text files
The XML customisable tests could allow for inclusion/exclusion of user-defined errors, minimum/maximum timespan of server files, the number of errors and other user customisable settings.

The results could be viewed on a line-by-line basis, and could be exported to reports.
Other features included:
  • Built in XML editor (with code folding and syntax highlighting) to customise and load new tests.
  • Built in folder-recursive .tgz file extraction.

Further information unavailable due to client disclosure agreement.
Diagnostic Application Monitor
This application was created during my placement at Thomson Reuters.

My first GUI application built in C++. This application displayed real-time server information updatable at customisable intervals, and allowed for actions such as server state alteration, and pushing and pulling of files to the server remotely.

Further information unavailable due to client disclosure agreement.
VBA Scripts
Several VBA scripts were designed and implemented during my placement at Thomson Reuters.

These scripts connected to backend databases to automatically pull statistics and values to populate a Microsoft Spreadsheet - this data was plotted and analysed for use within the company.

Further information unavailable due to client disclosure agreement.


Personal Projects

These projects are small pieces of work I develop in my own time to either learn something new, practise a skill or simply test out an idea.

Rainbow Drop
A fast-paced 2D slide-action game with rogue-like features.

Out now on Android for free!

Google Play Store Game Page!
A fast and challenging 2D slide-action game. Swipe your square around the block and dodge the incoming projectiles!

Out now on iOS for free!

iOS Store Page!
Play Date
Twitter Bootstrap
Built natively in Javascript and PHP, Play Date is a mobile-friendly, responsive site I created to help gamers keep up to date with the dates their favorite games are scheduled to be released.

It took about a day to make and would not be here without Full Calendar or Giant Bomb's API.

The site also uses Twitter Bootstrap for stylistic purposes as a CSS framework.

Play Date has been featured in several articles across several popular technology/gaming news sites and blogs. The immediate exposure brought in 40,000 hits in 3 days, and took the average daily user base to 1000+.

The flood of requests led to me to implement RSS feed support and iCalendar and Google Calendar export and subscription meaning users are now able to subscribe to the site and have an automatically updating video-game calendar on their preferred device.

Articles regarding Play Date:

Visit the site here!
Play Date iOS
Cocoa Touch
The well received web application comes native to iOS! Built natively in Swift for both iPhone and iPad, the Play Date iOS application lets you view game release dates for the consoles you care about!
  • Filter by Consoles!
  • Filter by Regions - UK, USA, Australia and Japan!
  • Set yourself iCal reminders straight into your phone for the games you care about!
  • 100% Free!

iOS Store Page!
Hot Cloud
Twitter Bootstrap
Built in PHP, Javascript and JQuery, Hot Cloud is a real-time video game news aggregator I created to help games keep up to date with the latest news in gaming.

All of the information is pulled on page load from various gaming RSS feeds, unwanted terms are blacklisted and listed by size (the bigger the word, the more popular the topic).

Visit the site here!
Google Image Grabber
A Python script I built to grab random images from Google Image Search, add them to an array and return it to be used in other modules.

The search term, number of values and option to print is available.

GitHub Page
Reddit Auto Image Bot
A bot built in PRAW (Python Reddit API Wrapper) to automatically reply to comments with images specified based on contents of the comment found on the popular social networking service and news website, Reddit.

Uses the previously mentioned Google Image Grabber script I created to function.

GitHub Page
Java Type Checker
Validates types for given and desired values in Java.

GitHub Page
Recursive File Deleter
A Python script to recursively run through folders and delete files based on file name and extension.

GitHub Page
Simple File Organiser (Windows)
C# GUI Tool to organise files in directories based on search terms.

The tool will take your files from the directories specfied, search for the added search terms and begin to find files matching.

GitHub Page
Reddit Image Downloader
Reddit User Image Downloader using RedditSharp.
Enter the user to download from, the subreddit their pictures have been taken from, and press the button to select an output directory.
Press Download to retrieve the pictures.

GitHub Page
A Tiny URL lookup tool I created for a friend.

Fill the JSON file with the keyword->URL references and load the page.
Entering the keyword into a configured input and searching will redirect you based on the keyword entered.

A very small snippet created in about an hour.

GitHub Page
Chrome Extension
A Tiny Chrome Extension lookup tool I created.

The extension adds an option to your chrome context menu to allow you to search MyAnimeList (an Anime Encyclopedia site) for the term highlighted.

A slightly faster way to get information about your anime.

Well recieved, used 1100+ times in it's first week of publishing!

Used 10000+ times in it's first six months of uptime!

Chrome Store Link
Chrome Extension
A Tiny Chrome Extension I created which compliments MALit!.

The extension automatically crawls MyAnimeList (an anime encyclopedia) links on to provide statistics for said anime next to said link!

A slightly faster way to get information about your anime.

Well recieved, generated 21000+ instances of information in it's first week of publishing!

Generated 150,000+ instances of information in it's first six months of uptime!

Chrome Store Link
A Tiny NodeJS application I created on a Sunday to try out Node.

The application uses the redwrap reddit API wrapper and the CollagePlus JQuery plugin to gather images from a subreddit specified and return an image collage.

Generated 500+ collages in it's first week of uptime.

Site Link


Contact me

Social Media