a starry sky a crescent moon floats in the night sky
LIAM HARLAND
PORTFOLIO
silhouette of fur trees silhouette of fur trees silhouette of fur trees silhouette of fur trees silhouette of fur trees silhouette of fur trees
owl owl eyes
ABOUT ME

I am a self-taught computer programmer residing in Burlington, Ontario, Canada. My background is in mechanical engineering and project management, and I previously worked on large-scale mining and nuclear power construction projects. I started out programming as a hobby, but I've forged it into a new career! When I'm not programming I love to get out biking, hiking and camping in the great outdoors. I'm currently available and looking for new opportunities.

PROJECTS

STARFINDER HACKING SIMULATOR

JavaScript logo HTML logo Ruby on Rails logo Sass logo Git logo
Example of the Starfinder Hacking Simulator.

The Starfinder Hacking Simulator is a virtual, interactive prop for the Starfinder tabletop role-playing game. The app allows game creators to make a visual representation of a computer by creating a network of nodes, each with different properties and information. The 'encounter' can then be transferred to the players, who must navigate and explore the network. It has a bunch of cool game related features , which makes creating encounters much easier for game creators, and also provides a fun, interactive experience for players! From a technical standpoint, it is a full-stack application which includes:

  • Ruby on Rails in the back, vanilla Javascript in the front.
  • User accounts with authentication, including mailed account activations and password resets.
  • Saving and loading by user's creations. User's can opt to save their creations locally (browser storage) or online (website's database).
  • Online saves can be shared with a secure link. Links are generated with an authentication token and expire after a set period, to ensure only the users who were provided with the link have access.
  • The user interface allows users to position nodes by dragging them on screen, with both mouse and touch support. The connecting lines that show the node relationships are The action tray updates contextually based on the user's current selection.
  • A cool retro-terminal look and feel, reminiscent of the original 1979 sci-fi film Alien.
  • Regular bugs fixes and new features, based on feedback from the Starfinder community.

PORTFOLIO SITE

HTML logo Sass logo Git logo
A computer and mobile device showing this site.

Built with the super fast Astro framework and hosted on Netlify, it is both mobile and desktop friendly.

SUDOKU SOLVER

Python logo Git logo
An image of a sudoku puzzle grid

The Sudoku Solver is a small app I wrote to demonstrate Python knowledge and practice writing alogrithms. It takes in a Sudoku puzzle and attempts to solve it using the same method a human would. I know a brute force solution is possible, but programming the logical steps to solving it was more interesting, required more complex algorithms and also helped me understand the techniques for solving the puzzle better! It can save and load puzzles in JSON and can solve puzzles in steps (the next solvable box is completed) or outright (the entire puzzle is completed). The user interace was built with Tkinter (it's not fancy but having a nice UI wasn't my goal for this project).

WORLD WAR OF ANTS

Java logo Git logo
A symbol depicting an ant's head

The goal of the project was to create a text-based ant simulation game, written in Java. I learned a lot from my contributions! I had no Java experience when I started, but quickly learned the basics and some important new concepts, such as abstract classes and interfaces. I learned how to use Git and GitHub to work collaboratively on a project (forks, pull requests, merging branches, code review and comment cycles, issues tracking etc). I also contributed a ConsoleOutputHandler class which would be used in each game module's view to standardize the output to the console.

SKILLS

FRONT END

  • HTML
  • CSS / SCSS
  • Javascript
  • React
  • Vue
  • Nuxt
  • Python
  • Bootstrap

BACK END

  • Python
  • Ruby on Rails
  • Rust
  • C#
  • Java
  • SQL

OTHER

  • Git
  • Photoshop
  • Unity
  • Figma
  • Blender
  • SolidWorks
  • Autodesk Inventor
  • AutoCAD
CONTACT
You can reach me by E-mail at liam027@gmail.com.