Nicholas Lee

Resume GitHub

About me

Hi I'm Nick.
I am a Software Engineer at Amazon based in Vancouver. Recently I graduated from the University of Calgary with a bachelors in Software Engineering. I decided to go into Engineering because I was fascinated by how things are made. Now as a software engineer, I like to make things myself.

Experience

Software Development Engineer

July 2023 - Present

After having a great internship experience I decided to return to Amazon for a full time position!

Currently I am working on the Fees team which is responsible setting and processing all fees for Amazon Stores.

amazon logo

Software Development Engineering Intern

May 2022 - August 2022

I spent the summer living in Vancouver as part of the Automated Profitability Management (APM) - Supplier Contract Optimization (SCO) team where I worked on the tool known as Automated Vendor Negotiations (AVN). For a bit of background AVN is used by Amazon Vendor Managers to Negotiate with Vendors. This tool sends 1000+ emails a day, going up when annual vendor negotiations kicks off.

My summer project was to design and develop a new generic/reusable email service to replace the current email implementation. After 2 weeks of design and 4 weeks of coding. I had created/implemented a new service which could send emails and collect/sort email metrics on the emails sent.

Aside from code I also became a regular at Amazon's pick up soccer group (some team members were already regulars) and enjoyed what Vancouver had to offer with some new and old friends. Overall I had a great time in the city and got to work with a truly fantastic team.

orange mascot

Software Developer Intern

May 2021 - April 2022

For my first taste of the software industry I got the chance to work at Arcurve where I spent most of my time developing a full stack web application for monitoring/visualizing/prediciting gas delivery information.

This project was a great introduction to industry software as it was a very mature and well thought out code base with many complex technical problems. I was also lucky enough to be paired up with two mentors who were incredible in ramping me up to the large code base.

Outside of the technical I also got to work on a Community Social Resposibility (CSR) project with the other interns. Our project, which we decided on as a group, was to create an orange flavored kombucha to sell to fellow Arcurvian's and friends, in which proceeds whould go towards the Calgary Women's Emergency Shelter. The orange pictured above is pip, who was our kombucha mascot. This was quite an interesting and fun experience. Over the course of the project, we were able to raise $4000+ for the shelter.

All in all I am incredibly glad that my first software development job was at Arcurve. Not only did I learn a ton about software, but Arcurve was incredibly supportive of my progression. If any new software developers are reading this. I highly recommend Arcurve as a place to work.

Personal Projects

r/Piazza

Our team successfully developed a distributed version of r/place for our distributed systems class, creating a collaborative online canvas where users can design pixel art on a 200x200 tile grid. The main focus of this project was to prioritize replication, fault tolerance, data consistency, and synchronization. To achieve these objectives, we implemented two proxy servers, with one serving as a backup, as well as a network of three main servers with attached databases. Clients were routed to a server based on a random algorithm to optimize load balancing.

Each of these servers featured automatic restart processes to enhance overall system reliability. As part of the startup process, a server would check for other live servers and copy their database to ensure up-to-date data replication. We also employed Lamport's timestamps to ensure data consistency and synchronization across all replicated databases. To create this project, we leveraged technologies such as React, Node.js, MongoDB, AWS EC2, Socket.io, and Nginx. This robust architecture and combination of tools resulted in a highly reliable, fault-tolerant, and consistent distributed version of r/place.

view code
roswell

Inline Air Permeability Inspection System

For my final year Capstone project, I collaborated with a multidisciplinary team composed of two mechanical and two software engineers. We partnered with Roswell Textiles, an industry leader in nonwoven technologies and materials, to develop a prototype of an inline air permeability inspection system This new system aimed to enhance their current inspection method, which only tested a small sample of textile rolls produced, by enabling continuous testing throughout production. As a result, Roswell Textiles could provide their clients with comprehensive data on the rolls purchased, ensuring optimal performance in critical applications such as medical equipment and face masks.

Our team successfully designed and developed the prototype, pictured in the top right corner. On the software side, the system architecture incorporated a RaspberryPI to read data and transmit it to an Azure function, which in turn stored the information in a CosmosDB database. Additionally, the Raspberry Pi enabled real-time data streaming to a GUI via WebSockets, as demonstrated in the accompanying video. The other images depict the Raspberry Pi with a custom circuit board and the CAD of the prototype.

Working on this project was a real change of pace, going into the warehouse to manufacture this system, but overall it was a ton of fun. This served as an excellent culmination of my academic journey.

additional info
pic of plus 15 icon

Plus 15

IOS application built in Swift to help Calgarians navigate 16km of indoor hallways covering downtown Calgary. This app utilizes API's from Calgary Open Data to help users get around downtown while staying out of the cold, and find their next lunch spot.

view code
pic of currencyconverter icon

Search Algorithm Visualizer

IOS application built in Swift to demonstrate how Breadth First Search, Depth First Search and A Star search/pathfinding algorithms work. The way this application was built, pressing one of the cells will modify an adjacency matrix. Once run is pressed, the chosen algorithm will be performed on the adjacency matrix filling out an array of where it has been as it runs. Then once the algorithm has ran its course, the cells that have been visited will be colored. Feel free to clone the repo and check it out!

view code

3D EEG Data Visualizer

NeuroNexus 2020 (Hackathon)

Over the course of 2 months, our team of 7 created a real time 3D EEG data visualizer. The idea for this project was provided by Dr. Emma Towlson, but it was left up to our team to design and create this software. I worked on the 3D visuals part of the project utilizing the three.js library. As a fun bonus I also learned how to operate a EEG machine at the Alberta Children's Hospital.

view code
pic of programmer eyes icon

Programmer Eyes 202020

Application written in swift for WatchOS devices. This is App is built with programmer's eyes in mind, or really anyone who uses the computer all day. This program reminds people to follow the 202020 rule, that is every 20 minutes, look at least 20 ft away, for 20 seconds. This unfortuanately is not on the app store as I still haven't decided if I want to purchase a developer's account

view code
pic of programmer eyes in watch

Student Registration System

An application written in java meant to emmulate a student registration system. Some features include, allowing the students to enroll in classes stored in a MySQL database, aswell as allowing student to search for classes, disenroll from classes, and seeing class info such as number of people enrolled in a class. This program utilizes client server architecture and is multithreaded to accomadate multiple users at once

view code
pic of student registration system

Tic Tac Toe

A text based version of tic tac toe that features 4 different ways of playing. Players can choose to play another human, a player that picks a random empty spot, a player that checks if the other player must be blocked before picking a random empty spot on the board, and a player that actively tries to get three in a row while looking out for if the opposition must be blocked.

view code
pic of tictactoe in console