SOFTWARE ENGINEER
Building modern, efficient, and user-friendly software solutions for the world to come
Hi, my name is Max. I am an aspiring software developer from Christchurch, New Zealand. Armed with a Bachelor of Science majoring in Computer Science (with a minor in Philosophy), I am now looking to start my career in the tech industry.
I am passionate about computers and technology, and I am always excited to learn new things. Outside of programming, my passions include music, cinema, philosophy, and gaming. I believe that a healthy and open-minded approach is key to success in the increasingly fast-paced tech world, and I am always looking for ways to improve myself and refine my skills.
Built responsive, modern web interfaces including this portfolio site, and Mnemosyne. Skilled in Tailwind CSS for rapid UI development and custom CSS for unique designs.
Developed full-stack applications using React for dynamic UIs, Node.js/Express for REST APIs, and Next.js for the FoodFinder app with GraphQL integration. Comfortable with modern ES6+ features and TypeScript for type safety.
Built a Flappy Bird clone using the NEAT neural network algorithm to explore machine learning concepts. Also tutored high school students in Python fundamentals, helping them build a foundation before university.
Used extensively during university coursework for object-oriented programming projects, data structures, algorithms implementation, and software design patterns. Utilized in the development of Sports Tournament.
Created a custom LISP dialect interpreter as a personal project to learn about compilers and interpreters. Gained experience with memory management, pointers, and low-level programming concepts. (I did have some prior experience with C from a university course, but this project really solidified my understanding of the language.)
Implemented relational databases using MySQL, PostgreSQL, and SQLite for various projects.
Worked with NoSQL document databases for projects requiring flexible schemas. Integrated MongoDB with Node.js applications for efficient data storage and retrieval.
Maintained all projects on Github primarily as monorepos.
Daily driver of the CachyOS flavour of Arch Linux, with additional skill in Debian. Proficient with terminal workflows using Bash, ZSH, and Fish shells. Comfortable with package management, and shell scripting.
Containerized the FoodFinder application using Docker for consistent development and deployment environments.
Studied declarative programming paradigms through university coursework. Used Prolog for solving complex logical problems and understanding alternative programming approaches.
Experimented with Nix package manager and NixOS for declarative system configuration and reproducible environments. Gained experience in functional programming and managing system configurations.
Built Witi, a terminal tool for checking package installation status on Arch-based Linux distributions. Gained experience with Go's simplicity and performance for CLI tool development. Currently my favourite programming language.
University of Canterbury
Major: Computer Science • Minor: Philosophy
Hagley College
TechMate
I am currently a volunteer IT worker at TechMate, a community organisation that provides affordable access to information and communication technologies. I primarily aid citizens with technical support, teaching basic computer literacy, and assisting with hardware and software issues including setup, repairs, and maintenance.
Fiverr
Worked as a freelancer for clients as a means of keeping myself occupied while also making money. Decided to discontinue as I found there were not enough clients willing to pay for my services.
Tutored high schoolers in basic Python programming to provide them with a foundational understanding of programming before starting their first year of university.
Creative Junk
Volunteer work at an arts and crafts store. Responsibilities included cleaning, unloading and packing supplies, and aiding customers until COVID-19 hit.
Please note that I do not find as much time to work on projects as I would like due to depression leading to frequent cases of "coder's block". I also have a habit of deleting or removing projects that I am dissatisfied with (my therapist believes this may be a form of self-sabotage and it is something I am trying to stop doing). I find it easier to perform commissioned projects or collaborative ones because of this. I hope you understand.
I really, really dislike the lack of pagination in GitHub's starred repositories section, so I decided "I should make a better version of this, with blackjack and pagination."
Jokes aside, I find this lack of pagination (among other things) to be a huge pain when it comes to browsing through my starred repositories, as I like to use it as a sort of bookmarking section
for stuff that interests me. This of course becomes an issue when you have as many starred repos as I do (circa 750 at the time of writing this), and it makes it very difficult to find
specific repos that I have starred in the past. Enter Centauri (named after Omega Centauri, the largest star cluster in the Milky Way), a web app that I am building to solve this problem. It is currently in the prototype
stage, with the version you see being a mockup that relied primarily on AI to build. The full version will be built in Elixir. I wanted to learn more functional programming and Elixir seemed like not only a fun
and interesting language, but I know that Phoenix is considered one of the best web frameworks out there, so I wanted to give it a try. Perhaps an unusual choice for this project, but hey, it'll be fun to learn
and build, and that's what matters most to me with my projects.
Quasimodo is a beginner's project that I created to get back into statistics and data science-related stuff, and to learn more about machine learning.
It utilizes Python and the Scikit-learn libary to train a random forest regression model on a dataset of movie reviews and their corresponding ratings
(taken from daily IMDb data dumps), with the goal of being able to predict the rating of a theoretical movie based on various factors, such as its director,
cast members, genre(s), year, and runtime. This is of course just a beginner's project done to get more into machine learning, and the model is a little naive,
but it was a fun learning experience and I hope to improve it in the future.
And yes, the name is a reference to that one Sopranos scene :P
Bonus points if you found and understood the easter egg hidden somewhere in there too :)
Witi (Pronounced "Witty"), or "Why Is This Installed?", is a terminal tool built in Go that allows users to quickly find information regarding the installation status of a given package. It will tell you if it was installed explicitly, or as a dependency of another package, and will also show you the dependency tree of the package in question (in the case it is installed as a dependency). It is currently only available for Arch-based Linux distributions, however a Debian/Ubuntu version is in the works (and hopefully a version for Fedora later on. We'll see what happens after that...)
A part of GitHub's awesome-list community, this is a personally curated list of modern alternatives to "canon" software and services that are frequently bloated, slow, and dated. It will, of course, inevitably be opinionated at times, but I'm trying to make sure it isn't just "RUST = GOOD" everywhere :P. Nonetheless, I hope you find it useful! The cream-of-the-crop items are marked with a "*" next to them, so be sure to check those out in particular.
My current personal project: a full-stack quotes and aphorisms web app built with React on the frontend and Node.js, Express, and SQLite on the backend. It allows users to browse, search, and save their favorite quotes from many great writers, philosophers, and political figures throughout history. The app features a sleek, glassmorphism-inspired design with a focus on usability and accessibility, along with full CRUD operations via a RESTful API. My main goal with this project is to improve my skills in full-stack web development, and to create something that inspires and motivates others and encourages them to read more.
A programming language I created as a fun side project to learn more about compilers and interpreters. It is a simplified LISP dialect written in C, but comes packed with all (that's a lie, it's a tiny language after all :P) you need to program whatever you want, including functions, basic data types, and mathematical operations. The language's name is a pun combining a popular joke from The Simpsons, and the popular programming language book The C Programming Language.
A Flappy Bird clone that utilizes the NEAT neural network algorithm to learn from the mistakes of its previous attempts. This was done as a way of familiarizing myself with the basics of neural networks and aspects of machine learning in Python.
A project I made to get some experience working with Next and Docker. It utilizes JS Web Tokens and GraphQL to allow users to search for places to eat.
The backend of a petition site that was developed for the University of Canterbury's SENG365 course. Received a mark of 86/100.
The (React) frontend of the petition site mentioned above. Unfortunately this was not finished to the standard I wanted it to be due to an ongoing personal crisis causing a great deal of stress.
The website you're currently looking at! Built with modern web technologies and responsive design principles.