Should I Click This Link?

Criminals use all sorts of tricks to make their phishing attacks look legitimate. How can I tell if a link is suspicious before I click it? If a human can tell that a link looks fraudulent, can we teach a computer to do the same?

Machine Learning
Java
SQL
See More
Should I Click This Link?

Criminals use all sorts of tricks to make their phishing attacks look legitimate. How can I tell if a link is suspicious before I click it? If a human can tell that a link looks fraudulent, can we teach a computer to do the same?

See More
Machine Learning
Java
SQL
See More
Aurebesh Is Fun!

Flying is for droids, reading is for nerds. Unless you happen to work on the Death Star 2.0, at which point you'll need to know how to read those terminals! Just don't tell Vader that his shiny new monitors are printing gibberish...

JavaScript
HTML
Sass
See More
Aurebesh Is Fun!

Flying is for droids, reading is for nerds. Unless you happen to work on the Death Star 2.0, at which point you'll need to know how to read those terminals! Just don't tell Vader that his shiny new monitors are printing gibberish...

See More
JavaScript
HTML
Sass
See More
Convincing Perl to Talk With C

Not all Perl modules are created equal, and quite often they're never created at all. What happens if we want to use a C library instead, but we love Perl a bit too much? Take a quick expedition into the guts of Perl with XS.

Perl
C++
Opus Codec
See More
Convincing Perl to Talk With C

Not all Perl modules are created equal, and quite often they're never created at all. What happens if we want to use a C library instead, but we love Perl a bit too much? Take a quick expedition into the guts of Perl with XS.

See More
Perl
C++
Opus Codec
See More
Can Biology Help Us Build A Robot?

Finding your way around the edge of a room might seem easy, but then you've had millions of years to figure it out. Can we learn from Nature and create some basic intelligence using a couple of sensors and some lego?

Robotics
Java
leJOS
See More
Can Biology Help Us Build A Robot?

Finding your way around the edge of a room might seem easy, but then you've had millions of years to figure it out. Can we learn from Nature and create some basic intelligence using a couple of sensors and some lego?

See More
Robotics
Java
leJOS
See More

2018 - Now

Netcraft

Development Manager

  • Reviewing and releasing code changes
  • Organising the direction of development, driven by customer interaction
  • Training incoming staff, and providing ongoing support
  • Pitching new services to industry partners
  • Interviewing prospective applicants

2017 - 2018

Netcraft

Internet Services Developer

  • Automating the detection and removal of phishing websites, using computer vision and machine learning
  • Maintenance and extension of a business-critical, legacy codebase
  • Supervising the work of summer placement students
  • Exposure to a wide variety of technologies, including JavaScript, HTML5, CSS3, TypeScript, JQuery, React, Apache, Nginx, Puppet, Systemd, AWS and Digital Ocean

2016 - 2017

University of Bath

BSc (Hons) Computer Science - Final Year

  • Graduated with First Class Honors
  • Final year project published in a techincal report series
  • Selected modules included HCI, Intelligent Agents, Cognitive Systems, Computer Vision and Parallel Computing

2015 - 2016

Netcraft

Internet Services Developer - Placement Year

  • Static analysis and deobfuscation of phishing kits
  • Remotely fingerprinting web content management systems
  • Detecting vulnerabilities in web applications
  • Exposure to Perl and PHP, as well as Linux systems, Git and MySQL

2013 - 2015

University of Bath

BSc (Hons) Computer Science - First and Second Year

  • Modules included Networking, Systems Requirements & Design, Computer Graphics, Discrete and Analytical Maths, Systems Architecture and Computational Theory
  • Exposure to a wide variety of languages and technologies, including C, C++, Python, Java, Lisp, Prolog, Haskell and C#