Rory Gudka

About me

Resume

Projects

Contact

Rory Gudka

Web Development

Throughout my years of experimenting with web development, creating websites for clients as a freelance developer, developing a board management platform as a full stack software engineer, and even working on mobile and embedded applications as an electrical engineering student, I have gained a wide variety of skills in computer science. In web development, I have worked with many React.js and Next.js applications utilizing TypeScript and a variety of AWS services. I have worked extensively with enriched text editors, such as Quill.js and Slate.js, with which I implemented numerous custom elements, such as highly interactive tables and embeds. I have also worked in depth with servers, where I have hosted my own websites, created custom websockets, and implemented a variety of APIs.

Electrical Engineering

I have a wide range of skills in electrical engineering from my time at the University of Virginia, including analog and digital signal processing, circuit analysis, digital logic design, and radio frequency circuitry. I have worked with embedded computing devices and field programmable gate arrays, and I have also worked on some advanced projects, such as an electrocardiogram and an ultra low power smart lock. I have also continued my electrical engineering work outside of classes, working on personal projects and continuing development on the smart lock mentioned previously.

Artificial Intelligence

My work in artificial intelligence has been primarily at the hobbyist level, with the exception of a few more technical projects developed for the classes “AI Hardware” and “Machine Learning Image Analysis” at the University of Virginia. I have worked on some basic artificial intelligence projects, such as age estimation and image classification of numbers, but I have also worked on more advanced projects, including a research into domain gap generalization for image registration using VoxelMorph. I am continuing to work on artificial intelligence personal projects in my free time, and I am excited to expand my experience and knowledge in the field.

Education

University of Virginia

08/2020 - 05/2024

Electrical Engineering, BS

08/2020 - 05/2024

Developed skills in a variety of fields such as circuit analysis, signal processing, digital logic, mathematics, artificial intelligence, and machine learning

Completed engineering projects, including an audio analyzer, an electrocardiogram, and a smart lock

Waseda University

04/2023 - 07/2023

Exchange Program

04/2023 - 07/2023

Participated in an exchange program at Waseda University in Tokyo, Japan, where I focused my efforts on improving my Japanese language skills

Experience

Surfboard

06/2020 - Present

Full Stack Developer

06/2020 - Present

Developed the backend architecture and frontend UI necessary to control document permissions across the application

Migrated the frontend codebase from React to Next.js

Implemented backend changes that resulted in an 8x increase in speed for the APIs

Glenfinnan Horses

08/2022 - 10/2022

Freelance Developer

08/2022 - 10/2022

Developed a site allowing my client to display their horses for sale, easily edit all information through an admin portal, manage user contact, and track analytics

Spearheaded development of an enriched text editor with a variety of custom content, including a migration from Quill.js to Slate.js

MKGMagic Pours

12/2020 - 02/2021

Freelance Developer

12/2020 - 02/2021

Developed a site allowing my client to display their paintings for sale via a highly interactive image carousel

Migrated Vanilla JS project to Next.js to eliminate hosting costs

Skills

General

Programming languages:

JavaScript

TypeScript

Python

C

Java

PHP

Languages:

English

Japanese (N2 certified)

Web Development

Frameworks:

Next.js

React

Express.js

Amazon Web Services:

CloudFormation

DynamoDB

Lambda

SES

S3

Cognito

EC2

Analytics:

Google Analytics

Posthog

Sentry

Mixpanel

Electrical Engineering

Software:

Multisim

Ultiboard

MATLAB

AWR Microwave Office

Virtuoso Layout Suite

General skills:

Circuit analysis

Signal processing

Digital logic

Embedded systems

RF circuits

Artificial Intelligence

Software:

Keras

PyTorch

Numpy

Google Colab

General skills:

Machine learning

Deep learning

Convolutional neural networks

Transformer networks

Projects

Ultra low power smart lock

Originally developed as a part of my capstone project at the University of Virginia, I later continued my work to develop this consumer-ready smart lock. It functions as a retrofit that can be placed overtop of the deadbolt on the interior of the user’s door, and can be controlled through an app on the user’s phone. It also operates with ultra-low power consumption, allowing it to last for a year between battery changes.

In order to maintain this ultra low power consumption, I designed this smart lock to have a component mounted on the user’s lock, and another component mounted on a nearby power outlet. The outlet-mounted component handles the relatively high power communications such as WiFi communications with the server and bluetooth communications for device setup, while the lock-mounted component primarily stays in low power mode, only waking up once every couple seconds to poll the communicator for new requests from the user.

I also developed an app that allows the user to create an account using AWS Cognito, connect their smart lock to a local network using Bluetooth, and then view and control the status of their device from anywhere in the world as long as they have an internet connection. I also put various security measures into place, including pairing passcodes, encryption, and protection against replay attacks

See more

Ultra low power smart lock

Originally developed as a part of my capstone project at the University of Virginia, I later continued my work to develop this consumer-ready smart lock. It functions as a retrofit that can be placed overtop of the deadbolt on the interior of the user’s door, and can be controlled through an app on the user’s phone. It also operates with ultra-low power consumption, allowing it to last for a year between battery changes.

In order to maintain this ultra low power consumption, I designed this smart lock to have a component mounted on the user’s lock, and another component mounted on a nearby power outlet. The outlet-mounted component handles the relatively high power communications such as WiFi communications with the server and bluetooth communications for device setup, while the lock-mounted component primarily stays in low power mode, only waking up once every couple seconds to poll the communicator for new requests from the user.

I also developed an app that allows the user to create an account using AWS Cognito, connect their smart lock to a local network using Bluetooth, and then view and control the status of their device from anywhere in the world as long as they have an internet connection. I also put various security measures into place, including pairing passcodes, encryption, and protection against replay attacks

See more

Minecraft calculator

As a personal project, I created a fully functional calculator in Minecraft that supports addition, subtraction, multiplication, and division of both positive and negative numbers. The inputs can range from -999 to 999, which are initially stored as three 4-bit BCD numbers and a 1-bit negation boolean, which are later converted into 11-bit binary numbers, and the output is a 22-bit binary number that is later converted to six 4-bit BCD numbers that can realistically range from -998,001 to 998,001.

In order to complete this project, I created registers using pistons and redstone blocks to toggle on/off states, and I added impulse-based set/reset logic that I could trigger from other parts of the circuit. I also created a display consisting of a 1 segment display for the negative sign, six 7-segment displays for the input and output numbers, and a 5-segment display for the operator. I then created the actual operation logic, which included a carry ripple adder, a ripple borrow subtractor, an array multiplier, and a restoring divider.

In order to convert the three BCD numbers into a single binary number, I had to implement a reverse double dabble circuit by implementing shift registers, 4-bit subtractors, and a 4-bit finite state machine. Likewise, I implemented a larger double dabble circuit to convert the 22-bit output to six BCD numbers with shift registers, 4-bit adders, and a 5-bit finite state machine. Finally, since the negativity of the inputs are represented by an extra bit, I had to create two’s complement converters that allowed me to encode and decode the inputs and outputs to their equivalent negative and positive binary numbers as necessary.

All of the actual logic for this project was done with vanilla Minecraft components, which are the equivalent of transistors and not gates, but I did use several tools along the way to help make this possible. I used a mod called WorldEdit, which allowed me to copy and paste collections of blocks that I had created, which allowed me to easily make arrays and grids of registers and logic blocks. I used a mod called Axiom to enhance flight controls and manage my inventory. I also used a mod called Wireless Redstone, which allowed me to make connections without worrying about extensive physical wiring. I actually ended up building a custom version of this mod which allowed me to clear bugged frequencies due to the collision between WorldEdit and Wireless Redstone.

See more

Minecraft calculator

As a personal project, I created a fully functional calculator in Minecraft that supports addition, subtraction, multiplication, and division of both positive and negative numbers. The inputs can range from -999 to 999, which are initially stored as three 4-bit BCD numbers and a 1-bit negation boolean, which are later converted into 11-bit binary numbers, and the output is a 22-bit binary number that is later converted to six 4-bit BCD numbers that can realistically range from -998,001 to 998,001.

In order to complete this project, I created registers using pistons and redstone blocks to toggle on/off states, and I added impulse-based set/reset logic that I could trigger from other parts of the circuit. I also created a display consisting of a 1 segment display for the negative sign, six 7-segment displays for the input and output numbers, and a 5-segment display for the operator. I then created the actual operation logic, which included a carry ripple adder, a ripple borrow subtractor, an array multiplier, and a restoring divider.

In order to convert the three BCD numbers into a single binary number, I had to implement a reverse double dabble circuit by implementing shift registers, 4-bit subtractors, and a 4-bit finite state machine. Likewise, I implemented a larger double dabble circuit to convert the 22-bit output to six BCD numbers with shift registers, 4-bit adders, and a 5-bit finite state machine. Finally, since the negativity of the inputs are represented by an extra bit, I had to create two’s complement converters that allowed me to encode and decode the inputs and outputs to their equivalent negative and positive binary numbers as necessary.

All of the actual logic for this project was done with vanilla Minecraft components, which are the equivalent of transistors and not gates, but I did use several tools along the way to help make this possible. I used a mod called WorldEdit, which allowed me to copy and paste collections of blocks that I had created, which allowed me to easily make arrays and grids of registers and logic blocks. I used a mod called Axiom to enhance flight controls and manage my inventory. I also used a mod called Wireless Redstone, which allowed me to make connections without worrying about extensive physical wiring. I actually ended up building a custom version of this mod which allowed me to clear bugged frequencies due to the collision between WorldEdit and Wireless Redstone.

See more

MRI image registration

As one of my final projects at the University of Virginia, I picked an active research topic in AI, which involved the domain gap generalization of an image registration model. To create this, several simple image datasets (MNist and Google QuickDraw) were input to a VoxelMorph model as training data, and the model was tested on MRI scans of brains to see how well the model could extract registration patterns for images outside of the domain.

MRI image registration

As one of my final projects at the University of Virginia, I picked an active research topic in AI, which involved the domain gap generalization of an image registration model. To create this, several simple image datasets (MNist and Google QuickDraw) were input to a VoxelMorph model as training data, and the model was tested on MRI scans of brains to see how well the model could extract registration patterns for images outside of the domain.

Electrocardiogram

As an electrical engineering project at the University of Virginia, I worked on the development of a basic electrocardiogram circuit board, which allowed a user to attach electrodes on their wrists and a reference electrode on their ankle to collect a reading of their pulse. This project involved the use of Sallen-Key filters, anti-aliasing filters, moving average filters, instrumentation amplifiers, integrating amplifiers, and isolators.

Electrocardiogram

As an electrical engineering project at the University of Virginia, I worked on the development of a basic electrocardiogram circuit board, which allowed a user to attach electrodes on their wrists and a reference electrode on their ankle to collect a reading of their pulse. This project involved the use of Sallen-Key filters, anti-aliasing filters, moving average filters, instrumentation amplifiers, integrating amplifiers, and isolators.

Send me a message

Contact info:

Message: