AI/ML

Fullstack

Developer

Welcome, I am

Dylan Nichols

I AM an

LLM Researcher

Python PyTorch Transformers Open Source LLMs

My team and I are working with the RIT SPORC Lab to research a phenomenon in LLM fine-tuning which leads to safety degradation when fine-tuned.

This is a critical issue in the field of LLM safety, as it suggests that fine-tuning can inadvertently make models more vulnerable to adversarial attacks.

We are not the first people to observe this phenomenon, and because of the work that has already been done by the SafeDelta team, we have a strong starting point for our research, and a tool that we hope to build on to further understand this issue and how to mitigate it.

**Pictures from the SafeDelta paper showing the safety degradation phenomenon.**

A chart showing the safety degradation phenomenon in LLM fine-tuning A chart showing the method of fixing the safety degradation phenomenon in LLM fine-tuning

I WAS a

Software Engineering Team Lead

Java Angular Agile Methodologies HTML CSS

I had the opportunity to step into a Team Lead role for a 5-person software engineering group. Together, we built U-fund, a full-stack donation platform.

I was responsible for the Agile lifecycle—coordinating our meetings, managing deadlines, and keeping the team aligned through four major sprints.

I was also the primary developer for our Angular front-end. I designed and built out five core pages, establishing a coherent UI/UX, and successfully integrated them with our Java backend.

The best part of the project was seeing our team dynamics improve sprint after sprint, resulting in faster delivery times and a much higher-quality platform.

Our project was recognized by many to be the most impressive in our class, receiving accolades from peers and instructors.

We worked so well as a team that we even ended up going to play basketball together after class one day, which was a testament to the team chemistry we built over the course of the project.

I BUILT a

Custom 2D Physics Engine

Python Object Oriented Programming Elastic Collision Detection Linear Algebra

Someone described a well-built physics engine to me as 'art'. My immediate thoughts were: That's kind of true, and, I wonder if I could build one. So, I did.

What you are looking at is a real-time 2D physics engine that I built entirely from scratch in Python. Instead of taking the easy route and using a pre-built physics library, I wanted to understand the raw math. I wrote the core mechanics myself—modeling rigid-body motion, gravity, and elastic collisions using pure vector math and time-step integration.

Every object on this screen maintains its own state and evolves millisecond-by-millisecond based on real Newtonian equations, simulating energy loss and boundary constraints until they naturally come to rest. The engine is heavily optimized, capable of handling approximately 10,000 independently simulated entities and their collision detection before experiencing any significant performance drops. It was an incredible exercise in object-oriented design and numerical stability, and I'm currently working on extending it to include spatial partitioning and object-to-object collisions.

I BUILT a

Merge Sort Algorithm in MIPS

MIPS Assembly Low-Level Programming Array Management Memory Management Register Allocation Stacktrace Management
A screenshot of the output of the MIPS assembly code for the merge sort algorithm

In modern programming, writing a recursive sorting algorithm is a standard exercise. But writing one in raw MIPS Assembly is an entirely different beast. High-level languages automatically manage the computer's memory for you. In Assembly, there are no safety nets. I had to manually manage the CPU's stack frame and calling conventions for every single nested function call.

Using only Vim as my editor, I engineered a high-performance recursive merge sort entirely from scratch. To make the 'divide and conquer' execution efficient, I had to optimize the data flow through precise register allocation and manual pointer arithmetic. Ultimately, this project required managing low-level buffer allocations and memory-mapped I/O. It was a massive challenge that helped me prove to myself that I have true mastery over the hardware-software interface and a deep understanding of what code actually does at the machine level.

I VOLUNTEERED as a

Digital Literacy Teacher

Public Speaking Teaching Philanthropy Community Engagement

Technology is only as powerful as the people who have access to it. Recently, I traveled to the Philippines on a humanitarian mission focused on closing the digital divide, and providing necessary help to the local communities.

Working alongside a dedicated team of eight, we partnered with local politicians and educators to build a sustainable computer technology program from the ground up. My hands-on work involved refurbishing three school computer labs and engineering their local networks and servers to ensure the students had a reliable infrastructure.

Beyond the hardware, the most rewarding part was stepping into the classroom to deliver digital literacy training to over 40 high school students and teachers, ensuring they had the skills to maintain, utilize, and grow the program long after we left.

A photo of me volunteering as a digital literacy teacher A photo of me volunteering as a digital literacy teacher
guest@dylannichols: ~

System initialized.

Welcome to my interactive portfolio. Type 'help' to see a list of available commands.

guest@portfolio:~$