Laurence Cullen, Machine Learning Developer in Plymouth, United Kingdom
Laurence Cullen

Machine Learning Developer in Plymouth, United Kingdom

Member since January 28, 2019
Laurence is a generalist full-stack developer with a strong interest in machine learning methods. He combines several years of experience in Python and exposure to a wide variety of other languages with his background in astrophysics with strong mathematics, statistics, and high-performance programming to produce high-quality results for his clients.
Laurence is now available for hire




Plymouth, United Kingdom



Preferred Environment

Go, Python, Vue.js, Firebase, Node.js

The most amazing...

...models I have trained are able to detect chemical weapons from spectrometer data, pneumonia from X-Ray images, and translate ancient Sumerian into English.


  • Machine Learning Engineer

    2019 - PRESENT
    Deeptrace BV
    • Assembled from scratch a video scraping (Python + youtube-dl), labeling (Vue.js), and dataset building pipeline for deep fake videos found in the wild.
    • Trained CNN models in PyTorch to accurately identify deep fake videos.
    • Built the companies MVP comprising a React web app deployed with Firebase and dependant on a number of async detector services able to identify a variety of media manipulation.
    • Productionized the deep fake detection model combining a preprocessing pipeline coordinated with a Pub/Sub architecture and deployed on GCP.
    • Built out a customer exposed API in Go using the go-kit toolkit to allow external customers to interface with our detector systems.
    • Contributed the majority of features and infrastructure leading to the companies successful seed round.
    • Developed a named entity recognition pipeline usng SpaCy for extracting the names of people mentioned in video titles.
    Technologies: Go, Python, PyTorch, JavaScript, Vue.js, React, Node.js
  • Technical Lead on Pre-incubator Team

    2018 - 2019
    Alacrity Foundation
    • Underwent web dev bootcamp building an image search engine in Laravel and DarkNet as a machine learning back end to do object classification as a final project.
    • Built prototype tool for wildfire reporting with machine learning powered upload filter to identify fraudulent fire reports.
    • Built ELO tracker for in office Ping Pong league on Firebase and with Vue.JS.
    • Contributed to business analysis, market segmentation, primary research into a wide range of industries.
    • Built computer vision system able to detect pneumonia from chest X-Rays with ~95% accuracy and fast enough to run on a mobile device.
    Technologies: PHP, Laravel, Python, Keras, Tensorflow, Flask, Vue.JS, HTML, CSS, Firebase, GCP, AWS
  • Data Analyst and Engineer

    2018 - 2018
    Owlstone Medical
    • Developed statistical and machine learning methods for detecting and classifying chemical weapons using Keras and Python.
    • Performed performance audit of core Python libraries and drove large scale improvements using high-performance libraries such as Numba.
    • Performed data exploration and analysis of discriminatory power of company spectrometers in telling chemicals apart.
    • Helped train team members in Python skills and best practices.
    • Developed within and extended CLI pipeline using Docker and Jenkins.
    Technologies: Python, Keras, SQL
  • Software Engineer

    2016 - 2018
    • Integrated LIDAR and high precision GPS sensors onto drone flight platform using Arduino and Python.
    • Built simulation environment in Python to test drone navigation strategies.
    • Processed imagery collected during drone surveys of agricultural land to provide actionable insights for farmers.
    • Prototyped novel cryptocurrency architectures and tested performance under variable network conditions.
    • Assisted in writing technical documentation, patent specifications, and job specs and helped with interviews.
    Technologies: Python, Arduino, C


  • Ping Pong ELO Tracker (Development)

    A full-stack application built in Vue.js with Firebase and utilizing Google Cloud Functions to track the ELO rankings of players in the office ping pong league at my previous job.

    I also built stripe integrations for an experimental gambling feature.

  • Sumerian to English Translation System (Development)

    Built a full NLP pipeline to translate raw transliterated Cuneiform script from the global archive of Cuneiform writings, focusing initially on the Sumerian Language.

    This involved building a tokenizing model from the text using Googles Sentence Piece tool. Building word and word fragment embeddings from the entire corpus to use as a pre-trained embedding layer for the translation model with Facebook's Fasttext encoding tool.

    Finally, building a sequence to sequence model using an encoder-decoder LSTM neural network in Keras and training it on the fraction of the Sumerian corpus for which translations exist. Some of the better experiments so far have achieved BLEU scores of 12.8, giving pretty sensible results for a good fraction of untranslated sentences.

  • Punch Out (Development)

    A machine learning-powered browser game in the style of Eye-Toy or Xbox Kinect where the game is controlled by the player's movement as seen by a webcam.

    Keras was used to design and train the model on a custom dataset of several thousand images assembled by hand of people in the different stances used to control the flow of the game. The model architecture used Googles MobileNet high-performance computer vision model with some extra dense layers thrown on top and fine-tuned on our dataset. After model training, the Keras model was converted to Tensorflow.JS format.

    The front end was built in vanilla JS using WebRTC to grab live video from the user's webcam and Tensorflow.JS to preprocess and run inference on the image frames taken from the webcam. Inference time for a single frame was about 40ms on a laptop with a decent processor.

  • Medical Ontology Alignment (Development)

    I undertook experiments aligning the SNOMED and HPO medical ontologies using sentence embeddings.

    I used the recently released Google sentence embedding model BERT to build embeddings of SNOMED and HPO terms and matched them based on cosine similarity. The results were surprisingly effective and in a majority of cases the system was able to correctly translate a term from one ontology to another.


  • Languages

    Python, Golang, JavaScript, HTML, Bash, Go, Regex, HTML5, ECMAScript (ES6), PHP, C, CSS, SQL, XML
  • Platforms

    Firebase, Linux, MacOS, Unix, Docker, Google Cloud Platform (GCP), Arduino, Raspberry Pi
  • Frameworks

    Flask, JSON Web Tokens (JWT), Laravel, Django
  • Libraries/APIs

    Keras, Pandas, NumPy, Vue.js, OpenCV, FFmpeg, SpaCy, Node.js, TensorFlow, React, PyTorch, REST APIs
  • Tools

    JetBrains, Git, CircleCI, Pytest, Webpack, Slack, Shell
  • Paradigms

    Agile, Test-driven Development (TDD), Data Science, Serverless Architecture, DevOps, Microservices, Microservices Architecture, REST, Testing, Test Automation, Automated Testing
  • Storage

    Cloud Firestore, Google Cloud, Google Cloud Storage, MySQL
  • Other

    Convolutional Neural Networks, Google Cloud Functions, Natural Language Processing (NLP), Pub/Sub, Scientific Computing, Algorithms, Machine Learning, Machine Vision, Deep Learning, Data Analysis, Software Engineering, Regular Expressions, pytest, Mathematics, Neural Networks, Recurrent Neural Networks, LSTM Networks, Serverless, Wikidata, Web Scraping, API Design, Physical Science, Artificial Intelligence (AI), Artificial Neural Networks (ANN), RESTful Microservices, Math, User Interface (UI), Shell Scripting
  • Industry Expertise



  • Bachelor of Science degree in Astrophysics
    2012 - 2015
    Exeter University - Exeter, UK


  • Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
  • Structuring Machine Learning Projects
  • Neural Networks and Deep Learning
    MAY 2018 - PRESENT
  • Machine Learning

To view more profiles

Join Toptal
Share it with others