Hello World,
Welcome to my Portfolio!
My name is Derek Marshall, I am a detail-oriented and self-motivated software engineer with a wide range of experience in software development paradigms. I am nearing 3 years of professional experience currently, even more if you count my personal endeavors. After graduating from Laurier, with a cumulative GPA of 3.7, I began pursuing solo projects that interested me. This lead me to make small projects in many languages, from C++ to Typescript, and experiment in developing for web, games, and even graphics. Currently, I am employed at IRCC, where I work as a full stack developer. Here I've focused mainly on backend and cloud development, sharpening my Java, Typescript, and AWS skills. I've build out architectures and participated in the full software development life cycle, building scalable software currently in use at some VAC offices. My current goal is to keep improving, both as a developer and as a person, while still finding time to do the things I love, like reading, gaming, and socialzing. I am always open to new and interesting ideas, conversations, and oppurtunities, so please reach out to me on linkedin!
Projects
Vulkan 3D Renderer
A renderer build with Vulkan capable of displaying and transforming 2D and 3D objects. Started to learn about Vulkan, and very helpful in improving my C++ skills. I enjoyed using a picture of my dog Maya as a texture while building this out.
- C++
- Graphics
- Vulkan
Path Finding Visualized
A classic resume project, visualized path finding algorithms on the web. I had already learned these algorithms from school, but it was a nice refresher. The main thing I learned here was animations with css.
- TypeScript
- React
- Algorithms
- Data Structures
Basic Ray Tracing with C++
A from scratch ray tracer I built using scratchpixel.com as my main resource for information. Super simple, does all of the math and exports the final image to a ppm file to be opened with Gimp or Photoshop.
- C++
- Graphics
Go Ecommerce API
A REST API built with Go and the Gin framework. Has everything needed to create an ecommerce frontend, from user auth and jwt tokens, to carts and checkout logic. Uses MongoDB encoded with bson to be understood by go.
- Go
- Golang
- Ecommerce
- REST
- Backend
Amazon Webstore Clone
This app was my attempt at creating a responsive e-commerce website from scratch. It contains a backend with product data, a paypal api to allow users to 'purchase' items (sandbox). It also uses secure JWT tokens, password hashing and salting, and redux statefulness for a secure experience.
- Mongo
- Express
- React
- Node
- TypeScript
Original Portfolio
This was my original attempt at a portfolio website. It was generated in Hugo and customized by me. I learned a lot about Go and TailwindCSS during this project. This site even used to have a cool url (Now assigned to the current portfolio).
- Golang
- Hugo
- TailwindCSS
My First Blog
This was my first attempt at using Typescript to make a full stack MERN application. It was fully functional, but did not look great. This taught me the basics of full stack development and I inspired me to improve my CSS greatly.
- Mongo
- Express
- React
- Node
- TypeScript
My Dynamic Scheduler
This was a big milestone in my web development career, as it was the first site I worked on until completion. I worked in a team of three, doing the entire backend with Node and Express, and a small portion of the frontend in React.
- Mongo
- Express
- Asperite
Robot Slime Fun Time
My first time working with a game engine. I chose Godot to begin learning 2D development. I worked with my friend to compete in the GDU-5 Game Jam. We split the code work fairly evenly and I developed every asset myself except for sounds.
- Godot
- GDScript
- React
- Node
Captain Code
This project taught me how to collaborate with others even when it was difficult. The most impressive part of this project isn't the code, but my ability to lead our group through conflict and still manage to get a great grade on a final project.
- Android Studio
- Java
Computer Graphics Showroom
After learning how to write custom vertex and fragment shaders, I wanted to develop a showroom for my current skills. I took my final project in my course and expanded on it by adding fps controlls, extra light effects, and extra items to play with.
- JavaScript
- ThreeJS
- WebGL
Keyboard and Mouse Practice (KAMP)
My first game. Written entirely in Java, this game was a mix between a type racer and an aim trainer. I learned all about object oriented programming practices and design principles throughout its creation.
- Java
N-Puzzle Solver
This was my latest attempt in creating an N-puzzle solver, but this time it was much faster and could solve up to n=24.
- Python
Sudoku Puzzle Solver
My AC3 Sudoku algorithm. This project was for my AI course and involved large amounts of research and multiple iterations to get right.
- Python
Technologies
I've working with a range of technologies in web, game, and graphics development. My work lies primarily in full stack web development. That said, I am interested in all kinds of development, including back end, cloud, graphics, and imbedded systems.
Front-End
Experience with
React, Angular, CSS,
NgRx, Redux, and NextJSBack-End
Experience with
AWS, Go, C++,
NodeJS, NestJS, ExpressJS
Java, Springboot, MongoDB,
MySQL, Redis, and DynamoDBGame/Graphics
Experience with
WebGL, C++, Unreal Engine,
Godot, Asperite, and Blender
About Me
A look at my development journey from my first line of code to now!
2016
Started to learn programming for highschool robotics and problem solving
2017
Entered first year University at Wilfrid Laurier Waterloo as a Computer Science and Psychology Double Major
2018
Began learning data structures and C programming
2019
Entered my first hackathon pursuing a backend api project, began learning databases and python flask
2020
Started learning R programming for data science, WebGL for graphics, React and NodeJS for full stack development
2021
Pursued many solo projects, began my first internship as a full stack web developer, became certified in Unreal, Unity, and SocketIO. Promoted to backend lead at current position.
2022
Started a new position as a full stack developer at the Government of Canada IRCC. Learned Go and C++ on my own time. Focused on Angular, NestJS, and AWS Cloud at work.
2023
Continued work at IRCC, leaning heavily into cloud and data development, some backend with Java Springboot and MySQL. Vastly improved at AWS-CDK, architecture, and data manipulation. Created my first mid-sized C++ project with Vulkan.
Personal Accomplishments
500+
Github Commits
25+
Projects
3+
Years of Experience
10+
Technology Certifications