I'm a 4th year CS student at BYU, and will graduate in December 2019. During school, I'm a (part-time) software engineer at Instructure, working on services and underlying platforms that helps Canvas run a little bit easier and a little more secure.
Last year, I worked on the Ops team at Lingotek, where I built an internal tool to make container orchestration a little easier and to allow developers to deploy their own code. My wife and I also spent a semester abroad as volunteers teaching English in Russia. Yes, it was a crazy thing to do, and yes, it was an amazing experience.
For the past two summers, I worked for Instructure as a software engineer intern. My team and I rolled out two new services to our users built on AWS's Kinesis and S3. I loved the exposure to new technology! I've also worked on BYU's custom LMS (Learning Management System), where I got my first taste of real web development - I pored over a massive code base, wrangled existing code, and built a website from scratch.
I love it all, from tinkering over front-end design to considering a full stack to enjoying the freedom of the back end. Not having to worry about browser compatibility when working on the backend is great, but I also love implementing something that's visible, and more than just an API.
When I'm not coding or in class or teaching English to crazy Russian kids, I'm usually reading whatever I can get my hands on. My wife and I love spending time kayaking and being outdoors in the mountains. I also play the organ, which is just as fun as it sounds. I'm a 4-year member of the BYU Men's Chorus, the largest and greatest collegiate men's chorus there is.
I work part time right now, which means I am either at work, in class, on the bus, or at home. This simple app keeps track of my daily schedule and updates my Slack status, so that my team knows where I am.
I enjoy using the Pomodoro technique to manage my time, but wasn't satisfied with the existing timers out there. So, I built my own. This was a hackweek project and took less than a week of work to get running, thanks to Nuxt and the beauty of static sites.
A fundamental change to the way Canvas and other Instructure handles files from users. I introduced a Kinesis -> Lambda batch processing stream, migrated a massive Dynamo database, and provisioned and deployed it to multiple AWS regions. This service consolidated several disparate and insecure code paths for file uploading into one, removing a huge chunk of dead code.
A bare-bones text parser that looks for keywords and regular expressions and plucks them out of the text. Inspired by Todoist's Quick Add functionality, which uses Natural Language Processing (NLP) to understand what you type. This is a very simple version (<100loc!), but was an interesting exercise in using regular expressions.
Lingotek depends on Mesos and Marathon for container management, but the Web UI had been marked as deprecated and was lacking needed features. I built this from the ground up as a wrapper around Marathon API calls. It replicates the existing Web UI and provides extended features that reduced a 5-step deployment process (editing JSON!) to 1 click.
The microservice built with my team at Instructure, which I helped to polish for release. Used in Canvas to search for users to send messages to across all courses, and provided a 15x speed boost in searching. I added functionality to the API, upgraded the service to Webpack 2, and even broke prod once. 🙃
The GPA calculator is my version of a "Hello World" for a language - easy logic, actually does something, and is just complex enough to get a sense for the language and tools. I've been curious about Elm for a while, so I did something about it and built this.
I wanted to make an iOS app, and needed something simple to test the waters with - enter the trusty GPA calculator. For this, I decided to use Swift alone, with Xcode's Storyboards providing the design.
This plugin helped my team at Instructure drop its dependency on
nodemon for live reloading. However, it didn't have the capability to allow arguments on
node or the server script. I added those capabilities and submitted a PR. One day, it'll get merged...
My team of 3 built this website from the database up to help serve the BYU community by giving them a Quizlet-like website that integrated with BYU's LMS. In addition to scoping and building both the API and front-end, one of my responsibilities was collaborating with designers on features that students would appreciate and use.
This site is a simple one, built in (mostly) plain HTML and Sass. Originally started in React before realizing that was too complicated. Learned some interesting lessons with my first attempt at a small React app, but development was much easier on a more simple scale.
Features added to the grader include instructor notes, feedback to students, the ability to submit multiple files in one submission. I spent my entire time at Learning Suite working on and improving this page.
Over the course of the semester, my team of 4 built both the client and server for this Java desktop app. We used Github to collaborate on this relatively large application, and used many design patterns as required by our professor. Our project had one of the lowest bug counts in the class.
Final project for the Advanced Programming class, which was done on Android devices. This app was built from the ground up, other than the server. Though the specs didn't require much in the way of design, I went out of my way to make sure it followed Material Design principles, which made the TAs pleasantly surprised.
August 2018 - present
April - August 2018
December 2017 - April 2017
August 2017 - December 2017
April - August 2017
April 2016 - April 2017
February 2016 - February 2017