David Nugent's Portfolio

I'm an independent Software Engineering & AI Consultant from Dublin, Ireland. In this site, I'll take you through the story of my career so far, chronologically.

If you don't have much time, looking at the pictures should give you a good overview!

Chapter 1: Academic Achievements

To understand my career path and attributes, a good starting point is my education at secondary school level. I used the Irish equivalent of the SATs, the Leaving Certificate, as an opportunity to prove myself and gain confidence. I got the maximum number of points possible, 625, which means I scored over 90% in six varying subjects. Another confidence boost for me came unexpectedly, when I was one of three students in Ireland to get 100% in the Applied Mathematics exam.

625 points, achieved by 0.3% of students in Ireland in 2018

100% in Applied Mathematics, achieved by three students in Ireland in 2018

For university, I chose to study Computer Science, because I had tried out programming a few times before and felt that I had a natural talent for it. Being a Dubliner, Trinity College was my destination.

Trinity has a historic set of exams that students can sit in second year, named Schols, which give people the opportunity to gain a full five-year scholarship, along with accommodation and meals. I really wanted to move out, so I gave it everything I had. I managed to win the scholarship, placing first in Computer Science.

I placed 1st in Trinity College's Schols exams for Computer Science, which awarded me a full five-year scholarship including accommodation and meals

Chapter 2: Skills in practice

After I got Schols, I wanted to start prioritizing creation over examination. When the first covid lockdown happened, I kept myself occupied by doing some online courses in AI. I then made a mobile app named BarPath which uses AI to track the path that a barbell takes during weightlifting. The more straight the path, the more efficient the lift. This was my first time training an AI model, and also my first time making a free product which was used and enjoyed by real people.

An app I made which used AI to track the path of a barbell during lifts. My first time training an AI model, in 2020

During the third year of my degree, I got involved with a new self-driving racecar team in Trinity, Formula Trinity Autonomous. Making new friends on this team got me through the remaining lockdowns. It was so much fun to work with like-minded people, while learning about autonomous vehicles. That year, I was the Perception Lead.

Some training I made for the new autonomous vehicles team I had joined: Formula Trinity Autonomous

The highlight of our year was running the AI Grand Prix, a virtual autonomous racing competition for college students. Installing robotics software was a big barrier to entry, so I developed a system which allowed competitors to write a simple Python script which took LiDAR data as input, and output a speed and steering angle, abstracting everything else away from them.

A virtual AI Grand Prix we hosted. I developed a submission method that allowed teams to control their racecars using a single Python script.

Meanwhile, to earn some money, I had been correcting Applied Maths exams for my old teacher, Oliver Murphy. When he decided to write his new textbook, he took me on board to write the teacher's solutions to the book's questions, and to provide suggestions about its contents.

I wrote the teacher's solutions for the currently used Applied Maths book in Ireland

At the end of third year, I felt it was time for some industry experience, so I applied for an internship in Evervault, an early-stage cryptography startup in Dublin. Their interview process at that time involved choosing a project from their website. I didn't know what they were expecting, and I felt afraid of not impressing them enough, so I tried to get it done as soon as possible, to a high standard. The result was a Python implementation of the Raft consensus algorithm, written in less than two days.

A Python implementation of the Raft concensus algorithm

That summer, as Evervault's sixth employee, I experienced the intensity, pressure, and excitement of an early stage startup. I also became proficient in Rust, which helped me to mature as a programmer.

The Evervault logo when I joined as an intern in their early days

The Rust programming language, my favourite for systems that need to work efficiently

Chapter 3: Leading

When I returned to college for my final year, the Autonomous team was finally working together in-person. This year, I got to lead the team with two of my best friends. I was tasked with leading the software engineering, which gave me the chance to take the skills I'd learned in Evervault, and use them in my own leadership style.

Our first competition was F1Tenth, in Prague, where we programmed an autonomous RC car to whir around the track autonomously. We were really proud about this, because we'd only received the vehicle six days before the competition.

Competing in F1Tenth in Prague

Our car racing around the track autonomously

A few months later, we competed at the Formula Student AI competition at the Silverstone Formula 1 racetrack. We won the Best Newcomer award, which we were chuffed with, because this competition had been the target of the Autonomous team since its inception.

Competing in FS-AI at the Silverstone racetrack

Winning the Best Newcomer award at FS-AI

For my undergrad thesis, I combined my interest in AI with my newfound cryptography interest, by proposing my own idea: using homomorphic encryption in credit card fraud detection AI models. It has two citations!

My undergraduate thesis, which combined my interests in AI and cryptography

Chapter 4: Professional

When I graduated with a First, I went back to Evervault for a year. I wanted to try out the forty-hour-a-week lifestyle of a career software engineer. I think Evervault was a great place to do that, because they have a combination of interesting, challenging, technical work along with the stability of venture capital funding. It also gave me the chance to sit beside and learn from excellent engineers.

By the time I returned to Evervault, they had a new logo

I began working on the Enclaves team, where we built Evervault's confidential computing solution. Once that product was launched, I got to lead a couple of projects myself: File Encryption and Optimizing the Encryption Engine. I had previously led teams in Formula Trinity, but this assured me that I could also do it in the 'real world'.

I worked on the Enclaves team when I came back

File Encryption, a project I led

I optimized Evervault's encryption engine, and wrote this accompanying blog post

When working at the cutting edge, I often have ideas that I want to put in writing. Here are a few of the blog posts I made for Evervault about topics I found important or interesting.

Shamir's Secret Sharing: Explanation and Visualization

Code Attestation Needs to be Easier

This Code Encrypts Itself

Chapter 5: Independent

I felt that I had ideas which I couldn't explore while I was working full-time for one company. AI was also causing the world of software engineering to be in constant flux, and I wanted to experiment with my own ways of working with it.

I decided to start freelancing. I think it has been the right choice so far, as I have been able to learn lots of new skills, express my creativity, and I've been happier. For IP reasons, I can't discuss every project I've done as a freelancer, but some of the skills I've picked up include WebGL, WebAssembly, ThreeJS, Unity, Prompt Engineering and more. AI has helped me to learn these new skills a lot quicker.

Some of the extra skills I've picked up since I started freelancing

I continued doing some technical writing for Evervault. This gave me a chance to play with my passion for education. I wrote some blog posts that combined text with other mediums, such as code, diagrams, and most importantly – mathematical visualizations.

The Story and Math of Differential Cryptanalysis

Building a Key Sharing Product Using Enclaves

I had made educational material before, but it was all based around autonomous vehicles.

Object Detection Tutorial Using PyTorch

I created and held a series of workshops on autonomous vehicles for Irish universities

The maths visualizations I was doing in my new blog posts put me in contact with the founder of Retainit, a startup which is building games to help people retain important information. Retainit has been my most consistent client as a freelancer so far.

Retainit has been my most consistent client so far as a freelancer

An early collaborator with Retainit is 3Blue1Brown, the biggest maths YouTuber (6M+ subs), whose maths software I had used in my blog posts. We've made games for his viewers which feature interactive maths components, to ensure that they get to exercise the tinkering parts of their brains. They were very well received!

One of the games I made for 3Blue1Brown fans, for Retainit

One of the luxuries of my flexible schedule is that I have time to mentor young people in technology, something I find very fulfilling.

I mentor in the Stem Passport for Inclusion programme, which addresses inequalities in access to STEM careers

I am a technical mentor in Patch, a free summer programme for talented young people

These are the skills that I think have been most impactful to companies so far:

Novel ideas

Innovative, simple solutions

Optimization

Project Management

Cutting edge knowledge and integration of AI

Research

Being nice to work with

Highly technical software engineer

Rapid Prototyping

Rare proficiency in the Rust programming language

Security and Privacy knowledge

Thank you for visiting my portfolio. I haven't included my many hobbies, interests, and inspirations, because those are too personal for me to broadcast on the internet. However, I love chatting about them, so feel free to ask me!

If you think you or your company would benefit from my skillset, don't hesitate to contact me! Currently the best way is to message me on LinkedIn or X: