πŸ‘¨β€πŸ’»Petros Xenofontos

Backend Software Engineer / London, UK πŸ‡¬πŸ‡§

Email: petros.x12@gmail.com

Phone: Please Ask

About Me

Hi I’m Petros (pronounced peh-tros) πŸ‘‹!

πŸ‘¨β€πŸŽ“ I’m a MEng Computer Science graduate with First Class honours from University College London (UCL).

πŸ‘¨β€πŸ’» I’m currently a backend software engineer at Genomics England, a healthcare technology company which aims to improve lives of people by providing better healthcare treatments through genome analysis. Besides coding in Python, I work heavily with AWS services and write Infrastructure-as-Code (IaC) in Terraform. I’m a strong believer engineers should own their infrastructure and having full visibility of how and where the code is running has many benefits such as debugging, resiliency, performance and cost optimisation.

πŸ’» My passion for coding came from a really young age, up until now, I’ve been involved in programming olympiads, numerous hackathons and coding workshops.

πŸ’‘ Topic areas that interest me are distributed systems, software refactoring and optimisation, concurrency & parallel computing as well as systems security.

πŸ“– My dissertation had a focus on automatic program parallelisation using OpenACC along with Genetic Improvement (GI) by identifiying parallelisation patterns in high performance computing applications and creating a framework to achieve fully automatic program parallelisation.

My CV is available upon request.

Work Experience

Genomics England

https://www.genomicsengland.co.uk/

Python Backend Engineer

August 2021-Current

Working on the whole backend stack ranging from researching/implementing architectural decisions on AWS, writing Terraform and Python code.

In my current role I aid the team with architectural decisions taking into account the domain and the specific problem needs.

I work with Python, AWS and Terraform to write cloud-native solutions.

Being a health-tech company, compliance is very high, and hence both the code and infrastructure-as-code try to adhere to best practices.

Experience

EMIS Health

https://www.emishealth.com/

Data Engineering/Software Engineering Intern

July-September 2020

Implemented a high-performance framework for parallel execution of inter-dependent SQL queries

Deployed to production a framework in Python that used multi-threading libraries to push down inter-dependent queries concurrently on Presto by borrowing techniques from Apache Spark (like DAG creation).

Flame graphs were used to identify bottlenecks and optimise the framework and hence achieving a speed-up of up to 10x from the original framework.

A large number of concurrent queries could be executed at the same time with up to 100 running at the same time from preliminary benchmarks.

The code was fully documented using DOCSTRINGS and a >80% test coverage was achieved.

The data analytics teams worked in a fully agile environment with sprints and demos as part of the Search and Reports Team. This allowed me to become very familiar of how agile development works and be able to follow up in any team..

Cocoon Creations

https://www.cocooncreations.net

Software Engineering (Back-End) Intern

June-August 2019

Designed APIs using Python/Django

Utilised the Django framework and my existing knowledge in Python to write a fully-fledged API back-end for a mobile application.

I used a test-driven (TDD) approach, writing my tests first on the models to ensure data integrity and then proceeding to my endpoints.

I experimented with Celery to perform asynchronous jobs such as sending email reports for application usage. I also had the chance to experiment with Redis and see its extreme performance gains.

Finally, I played around with the Flutter framework and attempted to create a cross-platfrom front-end for the API I designed. This proved to be rather challenging due to the recent nature of the Flutter framework.

Education

University College London (UCL)

MEng Computer Science

September 2017 - June 2021

First Class Honours - Computer Science with Integrated master

Some of the modules:

  • Architecture & Concurrency
  • Computability & Complexity
  • Logic & Database Theory
  • Systems Engineering
  • Distributed Systems & Security –> 😍
  • Mathematics & Statistics
  • Connected Systems
  • Security

Projects

PixelPeep Back-End Rebuild

www.pixelpeep.com

Currently rebuilding the back-end infrastructure using a serverless architecture & replacing REST with GraphQL.

I’m currently working on rebuilding the backend infrastructure of PixelPeep with guidance from its founder, Michael Schinis.

The project involves the following:

  • Re-writing the backend in NodeJS.
  • Migrating from a REST API to a GraphQL one.
  • Part of the rebuild involves migrating to a serverless architecture on AWS.

My contribution to the project:

Re-writing back-end function infrastructure in Node.js from PHP and re-writing models to support GraphQL.

3rd Place at hack{cyprus} 2019 hackathon - A real-time productivity monitoring tool utilising Python, Flask and a Raspberry Pi.

Application that monitors and records the users screen usage written in Python.

The user selects and categorizes desktop apps as productive and unproductive. The categorization is then used to determine the overall productivity of the user.

Productivity data is then transmitted to a RasberryPi through a Flask API which uses a DotMatrix and RGB LED-lights to convey it to the user.

Finally, the Dot-Matrix displays overall productivity while the RGB LED-lights provide information about real-time productivity.

My contribution to the project:

Wrote back-end code for data extraction from application and the Flask API to communicate with the Raspeberry Pi

UCL Systems Engineering project for the NHS

https://petrosxen12.github.io/team7Website/

A project which utilises the HoloLens platform to extract medical entities in real-time from speech and display definitiona and diagrams in augmented reality.

An application for the HoloLens (Gen. 1) which utilises medical entity extraction in real-time and shows definitons and diagrams of the medical entities in front of the users eyes through augmented reality.

We are using the HoloLens platfrom to utilise the power of Mixed Reality (MR) to aid clinical teaching and training. The application gives young medical professionals the unique experience to jump from the hospital straight into the world of Mixed Reality.

It gives them the chance to access interactive medical information just in front of their eyes without disturbing any patient consultation.

Annotate a room with notes such as dosologies or patient information as well as extract medical entities from speech to see definitions and diagrams.

My contribution to the project:

I was the team leader in a team of 3 and responsible for making sure our project met our clients (NHS) requirememnts. Furthermore, I did all the backend implementation of the project meaning all the API integrations and testing as well as the medical entity infrastructure. Everything was done in C# and Unity 3D.

Plog - Travel Experiences

https://plog-travel.herokuapp.com/

1st Place at UCL Porticode 2017 - An platform for people to share their travel experiences visually.

A platform for sharing travel experiences through sequence of photos accompanied by a small story.

Instead of reading numerous reviews about places, it is much easier to see pictures, as they say, a picture is worth a thousand words.

Each picture set is accompanied by a small story explaining the experience, thus providing a holistic overview of the trip.

My contribution to the project:

Worked on the front-end writing css/html and utilising the Twitter Bootstrap toolkit for a mobile-first approach.

Skills

I like to experiment with different technologies so when the time comes, I know which technology is best suited for the job.

Below is a small list of technologies/languages I’m comfortable working with.

🐍 Python

  • Strong Understanding of multiprocessing libraries and how to implement them to solve difficult problems
  • Can effectively write APIs in Flask and Django in a TDD fashion.
  • Extensive experience in unit-testing and coverage reports using the language.
  • Very good knowledge of internal data structures and situations they are best suited.

β˜•οΈ Java

  • Comfortable writing in a TDD fashion and using design patterns.
  • Can identify refactoring opportunities in an existing codebase.
  • Demonstable experience in data structures & algorithms.

πŸ’» Golang

  • Currently experimenting with its use in distrbuted systems.
  • Experimenting it its use as a back-end in web-development

πŸ•Έ HTML/CSS/JS

  • Basic experience using NodeJS to write simple back-end code.
  • Proficient in HTML/CSS and Bootstrap to create front-facing content.

More about me

When I’m not coding, I enjoy reading fiction and technical books as well going to the gym for weightlifting and Muay-Thai.

Whenever I get the chance (a.k.a when its winter time) I go skiing. Honestly the skiing feeling, in my opinion, is as close as we can get to ultimate freedom. If you ever get the chance, try skiing!

Some technical books I really loved and I highly recommend:

A phenomenal book about how and why certain startups such as Uber, Tesla and Facebook succeded, and what is needed to differentiate your product from others.

A great read about 12 future technologies that will (or are?) shape our future.

Presented by some as the de-facto book on startups, a good perspective and tips on how to go to market fast using the β€œlean” methodology.

Some non-technical books I highly recommend:

An amazing piece of fiction by the legendary J.R.R Tolkien. A must for those days were you want to zone out and relax.

A great read about high-frequency trading, about how and why it started in an easy to read way.