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, can we teach a computer to do the same?

AI
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, can we teach a computer to do the same?

See More
AI
Java
SQL
See More
Aurebesh Is Fun!

Ever wondered what those shiny new terminals on the Death Star 2.0 are saying? Turns out, it's all gibberish!

JavaScript
HTML
Sass
See More
Aurebesh Is Fun!

Ever wondered what those shiny new terminals on the Death Star 2.0 are saying? Turns out, it's all 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

2024 - now

Netcraft

Software Engineering Manager

  • Month-to-month roadmapping of engineering priorities, aligned with broader business objectives and driven by stakeholder interaction
  • Modernising our SDLC processes through the introduction of agile workflows
  • Presenting regular product updates to upper management
  • Managing pay and promotions for direct reports

2021 - 2024

Netcraft

Software Engineering Team Lead

  • Week-to-week planning and resourcing of development objectives
  • Liasing with internal and external stakeholders to establish requirements and priorities
  • Managing the performance of 8 direct reports, setting goals and holding regular 1:1's
  • Transitioning team workflows to Jira

2019 - 2021

Netcraft

Senior Software Engineer

  • Designing and implementing solutions to complex engineering problems within the Takedown service
  • Reviewing and releasing code changes
  • Onboarding and mentoring junior developers
  • Interviewing prospective applicants

2017 - 2019

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#