Condensed Resume Download

Work Experience

Software Technology Group - Software Engineer

October 2023 - Present
Skills Used: Java, Spring Boot, React, JavaScript, Node, CSS, HTML, AWS, Terraform, Azure Devops, SonarQube, SQL Server, PostgreSQL, Agile, Scrum
STG is a company that provides development and other services for other companies. My main job here is as a vendor for the Translation Systems team in the Church of Jesus Christ of Latter Day Saints. This team maintains various systems that manage the translation and interpretation of various media that the church publishes. I get to work on a system that helps translators with translating lyrics to hymns and other songs, as well as a system that helps with the logistics of the translation and interpretation of events that the church hosts. My current project is to help with the rewrite of the UI of the latter. The plan is to make the UI easier to use as well as move to a more modern architecture that will make it easier to maintain.

Loveland Innovations - Software Engineer

January 2022 - September 2023 (1 yr 9 mo)
Skills Used: Java, Spring Boot, Angular, TypeScript, JavaScript, Node, CSS, HTML, Python, AWS, Bitbucket Pipelines, TDD, Jira, PostgreSQL, Kanban
Here I worked on the R&D team. I was mainly hired to help maintain a few apps, such as a system to label 3D models of rooftops, and to improve the CI/CD processes. While there, I developed a process in Bitbucket Pipelines to run checks on PRs so that developers could get quick feedback on their code. This way, developers didn't have to wait until their code was being deployed to then find out that there was a linting or build error. This reduced the lead time on tickets significantly.

I also developed a process for one of our apps to automatically detect solar panels on a 3D model, and then automatically apply a label to them. With the current system, I had to find a way to transform a cube to the shape of the found solar panels. This involved figuring out the linear algebra necessary to create a linear transform matrix that the system could use to transform that cube to what it needed to be.

With a few other people, I also worked on developing an automated testing strategy to help reduce the workload of our QAs who were already overworked. We enumerated the common use cases of our apps, and found ways to automate those particular processes so that the QAs could focus on manually testing edge cases.

BYU Office of IT - Developer, Student Lead

April 2018 - January 2022 (3 yrs 9 mo)
Skills Used: Java, PHP, TypeScript, JavaScript, Node, CSS, HTML, AWS, Terraform, Docker, Drupal, Mendix, GitHub Actions, Postman, Selenium, MySQL, Agile, Scrum
Here I got experience on a variety of teams. I worked with on frontends, backends, developer experience, and quality assurance. I also had the opportunity to work with and mentor new student developers.

My first set of responsibilities were to maintain and write new custom frontend components for our Drupal. This was to ensure brand consistency across all the webpages that BYU used. I would create Drupal modules that other departments could install into their Drupal websites that would then allow them to display their content using these frontend components.

After a while I was moved to a project where we wanted to move our existing Drupal sites from being hosted on Amazon EC2 to a containerized environment. So I spent time evaluating AWS ECS, Fargate, and EKS. I also wrote scripts to handle the migration of a Drupal site to one of these architectures. After some time I landed on EKS as the best way to handle our plethora of sites on Drupal.

Unfortunately, as I found this new way to host our Drupal sites, OIT had decided to move all of our sites to a new way of hosting content. There were three different systems picked to host our content depending on how much custom logic was needed, and I was placed on the "High Productivity" team. This team worked with a low-code platform called Mendix. My job here was to figure out a lot of weird use cases, and find ways to extend the platform when the built-in low-code framework didn't suit our needs. You could create Java actions that would work in Mendix's "microflows" that would allow you to execute custom logic.

Finally, my last job there was as an SDET on our DevX/QA team. This was a new team at OIT where we were trying to start a better culture of testing, as well as manage tooling that would make the developers' jobs easier. We taught teams about the testing pyramid and how much effort we should spend on different tests such as unit tests, integration tests, and UI tests. I specifically spent a good amount of time looking at static code analysis tools to help improve the security of our codebases. I evaluated tools like SonarQube and GitHub Advanced Security and I put together a proposal to show how implementing a system like GitHub Advanced Security would help us reduce costs by reducing the number of data breaches we experience.

Education

BS in Electrical Engineering - Brigham Young University

Graduated June 2021

Coursework

  • EC EN 323 - Computer Organization
  • EC EN 330 - Intro to Embedded Programming
  • EC EN 340 - Electronic Circuit Design 1
  • EC EN 360 - EM Fields and Waves
  • EC EN 380 - Signals and Systems
  • EC EN 424 - Computer Systems
  • EC EN 445 - Mixed-Signal VLSI
  • EC EN 446 - Power Electronics
  • EC EN 450 - Intro to Semiconductor Devices
  • EC EN 452 - Experiments in IC Development
  • MATH 313 - Elementary Linear Algebra
  • MATH 314 - Calculus of Several Variables
  • MATH 334 - Ordinary Differential Equations

GPA: 3.67

MS in Computer Engineering (Partial) - Brigham Young University

June 2021 - June 2022

Coursework

  • EC EN 521 - Intro to Algorithm Design
  • EC EN 576 - Medical Imaging and Imaging Reconstruction
  • EC EN 620 - Advanced Digital Systems
  • EC EN 629 - Reconfigurable Computing Systems

GPA: 3.12

Skills

Languages

Java
Proficient
JavaScript & TypeScript
Proficient
HTML/CSS
Proficient
C
Proficient
Go
Basic
C++
Proficient
Python
Basic
Kotlin
Basic
C#
Basic
PHP
Basic
Rust
Familiar

Tools

Node
Proficient
Maven
Proficient
AWS
Proficient
Docker
Proficient
Terraform
Proficient
Git
Proficient
GitHub
Proficient
GitLab
Proficient
Bitbucket
Proficient
Kubernetes
Basic
Jenkins
Basic
Gradle
Basic
Mendix
Basic
Drupal
Basic
Wordpress
Familiar

Databases

PostgreSQL
Proficient
SQL Server
Basic
MySQL
Basic

Methodologies

DevOps
Proficient
Test-Driven Development
Proficient
Agile
Proficient
Domain-Driven Design
Basic
Behavior-Driven Development
Basic
Kanban
Basic