I am a software developer, with a fair amount of hardware experience, specialising in software tool and script development.
I graduated from the University of Waterloo’s CS program with Co-op in 2022
I currently work at MDA as a software developer on the upcoming CHORUS mission on the Spacecraft Control Subsystem.
Skills
Embedded systems programming
Tool development
Full stack web development
Low level network systems
Working in a team
Working in an existing code base
Quickly picking up programming languages
I speak English and Russian fluently
Relevant experience
MDA
Full Time Intermediate M.T.S. (Member of Technical Staff) for CHORUS SCS
Developed many of the core components of the Spacecraft Control system from scratch in a new language.
Developed procedures and practices for deployment of core software and data archiving.
Assisted in translation efforts from older legacy scripts in STOL to TCL for AIT, Ops, and utility purposes.
Assisted other teams and Systems Engineers in understanding limitations and capabilities of core pieces of software to ensure smooth planning and interface design.
May 2022 -
EA/Glu
Coop Server Software Developer for GluTo
Improving existing tools used for asset generation, player management, and version control.
Rebuilding core tools and exporters to be platform and hardware agnostic, as well as a few optimizations.
Collaborated with different teams across gluto to produce specific tools for specific issues.
Maintained and expanded on existing AWS deployments.
Worked effectively within an existing team and rapidly adapted to new environments and codebases.
May - December 2021
JSI Telecom
Full stack coop developer
Developed a webapp that integrated with existing systems, modifying variables in a database in a way that made the end user capable of maintaining aspects of the system in an easy, well defined, and controlled manner.
Fixed bugs in a large, existing system while cooperating with other team members with TFS and git.
Effectively transitioned to working from home during the COVID-19 pandemic.
January - April September - December 2020
Personal Projects
Firmware lead in the Waterloo Satellite Team
I continue to be the senior lead of the CDH team for UW Orbital, a team based around getting a cubesat to orbit. CDH, or command and data handling, involves almost entirely firmware, and as such my primary role on the team is writing, approving and planning out firmware to run on the satellite. The proposed satellite uses a TMS570LS1224, an Arm R4F based microprocessor, running FreeRTOS.
Taught me about management, processor selection, delegation, and creating a large code base from scratch.
Cell Life simulator
I was interested in Evolutionary Neural Networks, so I decided to make a simulator to allow them to evolve. Based on a simple plant-herbivore-carnivore model, attaching a NN that was grown based on genetic parameters passed from parents to each carnivore allowed them to slowly learn how to properly interact with their environment, though it took considerable effort to get any carnivores to survive due to inefficiencies in the simulator limiting scaling.
Mitigation strategies allowed for up to 800 actors simultaneously, but further work is needed to get scaling to not be O(n^2) with motile actors. The relatively small number of carnivores (Typically less than 3%) prevents their brains from being a significant draw on resources, though every attempt was made to keep their processes lightweight.
N-body simulator
I wanted to make an accurate simulation of our solar system. One thing led to another, and a semi-efficient N-body simulator came out the other end.
Written in Java, it has a home grown graphics system allowing for limited 3d perspective. The UI allows at a glance to see if anything is wrong, as well as displaying vital information about the focused object.
This taught me how to properly manage a large project, as well as how to multithread.
Recently I added the ability to input objects with the standard 6 elements, as well as allowing for disabling the gravity calculation for some objects for quicker running. This allowed for very high speed satellite coverage calculators, and then was used to do pass calculation for my UW orbital project.
3D graphics
After hearing my Maths professor talk about how matrices are used in 3d graphics, I wanted to try it out for myself. It does basic shapes, rotating and translation, and has a fully functioning zbuffer, though the edges of polygons are glitchy. It is written in Java, taking advantage of none of the Matrix classes, and runs very smoothly.
8-bit computer
Based entirely on Ben Eaters design, I wanted to have a project to justify buying hundreds of electrical components. Taught me a lot about the low level functionality of a computer which I then relearned over my time in school
School projects
For various assignments at uWaterloo, I or a team have created a rougelike game in C++, a toned down C language compiler in a functional programming language, an AI that detects licence plates, a variety of TCP and UDP interacting systems, and a whole host of other programs.
I’ve also taken a lot of courses in anthropology and history, two areas of interest of mine.
Fun stuff
I GM a homebrew campaign of p2e, and am an avid walker and board gamer.