software engineering @ qub

intern @ libertyit

events team @ queens' computing society

f1 fan

jamesmcfarland

JM

jamesmcfarland

README.md

James McFarland

   
studying atuniversityinterning at

I've loved building since I was young, starting off with the Lego Duplo sets, moving up through the fancier Technic ones, to today, where I build whatever I want.

I've been coding since I was 13 (it's not the flex I think it is, I know...), starting out attempting to make the greatest, fastest, highest performance browser the world had seen. It was called CodingTurtle Browser, was based on Internet Explorer 11 and used Windows Forms.

It sucked. badly.

I've came a long way, from building browsers to building experiences that run in them. I've built a lot of projects with NextJS & React (you'll find links to a few of them below, check them out!). My focus in engineering is solving the issue, and solving it well.

Ethos

I build with the Nike-like ethos of just build it. This means a few things which stay common amongst my work:

  1. Rapid Iteration, and I mean rapid. Write it, test it, send it. Move fast. I'd take 30 small deploys over 3 large ones.

  2. Outsource, re-use and rarely re-write. When building, I ask myself, "has this been built already?" Yes? Use it. No? Find the closet thing, re-use it. Yes but it's too slow/big/ugly? Re-write.

  3. Make it ✨pretty✨ This one might seem a bit contray to the first point of Rapid Iteration, but no matter what I am working on I want it to look good to it's end users. User Experience matters, regardless.

These points are what I work off right now, but I always find myself changing and moving as I get exposure to new technologies, methodologies and other -ologies. I feel they are a strong platform to build on.

Experience

The fun professional bit

Tech

  1. Modern web development Most of my personal work/projects are built on some combination of NextJS, TailwindCSS, Prisma ORM and, more recently, TRPC. I've had a few years of NextJS behind me, however only began using the other tech in early 2023. I find this stack incredibly productive. This very site is built on NextJS 14 and Tailwind

  2. Serverless Architecture The majority of my work on placement is focused around building a highly scalable backend API for Liberty Mutual's Car Insurance lines. This API supports thousands of hits per day, and orchestrates a number of downstream services in order to provide a fast, robust and cost-effective experience for consumers. To do this, I've worked with numerous AWS offerings, namely Lambdas, Step Functions and CloudFormation Templates, alongside tools like GraphQL, Redis, and Splunk

  3. Desktop Development In University, and in secondary school, most of my time was spent developing desktop applications. I've built with both Java and C# extensively, utilisng JavaFX and XAML/WinUI respectively to build out the supporting GUIs for these apps.

Soft Experience

  1. Queen's Computing Society (QCS) I joined QCS' committee in November 2021, since then I have immersed myself in the society and the team, leading on projects such as our Minecraft Server, which helped bring student together during our University lockdown, and our hugely successful annual EEECS Formal, from which we raised £5400 in 2022 for Pure Mental NI, and a massive £7215 for Air Ambualnce NI. I also sat on the Executive Committee for the 2022/23 academic year as secretary, having a key role in day-to-day operations of the 400-member strong society, and helping bring our amazing team together to deliver for students! A large part of my work in the past 2 years has revolved around our technical systems, working on member management tooling, game authorisation systems and our internal security standing.

  2. Volunteering I have also helped at a number of events, both in planning stages and on the day, such as ElevateNI 2023, a student-led conference, supported by QCS, and NIDC 2023, the "Event of the Year" for Northern Ireland's tech community

That's enough for the README. Let's see some code.

James.

Projects

socmanager screenshot

socmanager

Designed to be an all-in-one tool for managing student university societies, socmanager was born from my experience managing the 400-member QUB Computing Society

Built with Next.js, TRPC, Clerk & Prisma (T3 Stack)

QCS Website screenshot

QCS Website

The website for the QUB Computing Society, built to be a central hub for all things QCS. Shows off a bit of what the society does, and links out to the socials.

Straight HTML/CSS/JS deployed to Netlify. Designed to be easy for new members to contribute to.

QCS Bot & Integration screenshot

QCS Bot & Integration

A bot which our members can interact allowing them to verify their membership. For the Minecraft server, we needed a way to whitelist members based on data they provided at signup.

Built with Discord.js and bash scripts, deployed to a QUB-controlled hypervisor alongside our Minecraft instance.

McIvor WINDCTRL screenshot

McIvor WINDCTRL

A control system for a small wind tunnel, it's designed to connect to an accompanying API, which in turn sends control signals to an Arduino which controls the tunnel.

Powered by Next.JS, shadcn/ui, Tremor and Tailwind

f1lap screenshot

f1lap

A fun project for learning some Three.js and playing around with F1 Telmetry data, I'll be expanding this one out a bit more

Built with Next.js, Three.js and Tailwind, and the FastF1 Python library

Like what you see? Get in touch.

© james mcfarland 2023.