Hi! I'm John, a software engineer who specializes in embedded systems.

fn projects() {

  • KeylayRust

    Keylay is a tool that can be deployed on your network that allows users to use keywords to jump to different URLs on your intranet or the Internet. It showcases my experience with professional development standards including testing, containerization, documentation, reproducibility, and heavy use of CI/CD.

  • MetamorpherRust

    This is a tool used to convert data into metadata! Basically it takes an input file and creates a directory structure full of empty files with a Base64 encoded representation of the input data in the filenames. I even had an article published on Hackernoon about it! If you happen to use Arch Linux, you can also find metamorpher in the AUR.

  • RCC: The Remote C CompilerC

    This is a project from school that I enjoyed quite a bit. It's a tool for shipping source code over the network to more powerful build servers so you can still use your low-power device's IDE, etc. There's also an accompanying whitepaper.

  • Nanos G20 Guide

    The Nanos G20 is an older ARM single-board-computer that I worked with in the past. This repository stores some (probably dated) guides, code, and configurations for embedded developers targeting this platform.

  • This Website!Rust, HTML/CSS

    This website is written in plain HTML, CSS, and a Rust web framework called Rocket. Putting it together was a great learning experience for me, and I got the chance to leverage a (primarily) systems programming language for the web! I also used Skeleton for a lot of the HTML/CSS boilerplate. It's also packaged as a ~35 MB container image and deployed on Kubernetes!

  • U-Boot ContributionC

    In the defense industry, it's very difficult to get open source contributions through company bureaucracy and into the public domain. Despite this challenge, since open source software is important to me and the business case for re-contribution is very strong, I fought to get this patch into upstream U-Boot! The patch also serves as a good example of my low-level C experience.

  • Advent of CodeRust

    Advent of Code is an annual, Christmas-themed coding challenge that I learned about in 2018. The solutions I've implemented are all in Rust. This challenge is one of the primary ways I learned the language!

  • Project EulerC, C++, Rust, Bash, Java

    Project Euler is a programming challenge more heavily focused on mathematics. I've written solutions in several different languages which helped develop my understanding of how to leverage different languages' strengths and solve problems idiomatically.

}

fn resume() {

John Moon

Embedded Software Engineer - Portland, OR

WORK EXPERIENCE

Qualcomm Innovation CenterSpring 2022 - Present

Senior Software EngineerFully Remote

Spring 2022 - Present
  • Android Linux Kernel development
  • Migrating kernel and module build processes to Bazel build system
  • Contributing to upstream open source projects (e.g. AOSP)
  • Working with upstream Linux to develop novel techniques for stabilizing kernel ⇔ user space APIs

Valley Tech Systems, IncSpring 2019 - Sprint 2022

Software EngineerFolsom, CA

Spring 2019 - Sprint 2022
  • Embedded Linux infrastructure development
  • Software defined radio development
  • Open architecture systems development
  • Network modeling and testing
  • Containerization and orchestration of legacy applications

Northrop Grumman CorporationSummer 2016 - Spring 2019

Software Engineer - Mission SystemsSacramento, CA

Summer 2016 - Spring 2019
  • Embedded software development - specializing in airborne signals intelligence platforms
  • Core systems programming for Xilinx Zynq Ultrascale+ MPSoC and RFSoC chipsets
  • On-site flight integration and test
  • Adopted and modernized large legacy codebases
  • Leveraged and contributed back to open source software
  • Attended technical conferences (Embedded Linux Conference, Xilinx Developer Forum, etc.)

Digiwest, LLCSpring 2012 - Fall 2015

Hardware Developer & Quality ManagerPortland, OR

Spring 2012 - Fall 2015
  • Embedded hardware development - specialized in low-power Bluetooth data collection systems
  • P.C.B. layout design using EagleCAD
  • Internal chassis and external mounting system design using AutoCAD
  • Tested hardware and software by writing stress-test and analysis programs in several languages
  • Managed assembly team - up to five people
  • Developed and managed firm's ISO 9001:2008 Quality Management System

EDUCATION
San Jose State UniversityFall 2017
B.S. Computer Science
Men's Varsity Water Polo Team Captain
2016 Golden Coast Conference All-Academic


TECHNICAL STRENGTHS
Languages Rust, Python, C, C++, Shell scripting
Tools Git, GNU utilities, Containers, Kubernetes, GDB/Valgrind, Nginx, Wireshark, GitLab CI/CD, Jenkins
Build Systems Cargo, Bazel, Make, CMake, Buildroot, Yocto
Technology Experience Linux kernel, U-Boot, REDHAWK, gRPC/Protobufs, REST, Device drivers, Open source development
Skills Software and hardware development, device drivers, open source, networking, server management, bootloader design, team-oriented, natural leader
Certifications CompTIA Security+

}

This resume also available in a printable format.

fn contact(guess: &str) -> ContactInfo {

In an effort to reduce spam emails and phone calls, I implemented a little "completely automated public Turing test to tell computers and humans apart" (a.k.a. CAPTCHA)!

To see my contact information, enter the third word in the following quote (refresh to get a new one):

The explanation requiring the fewest assumptions is the most likely to be
correct.
		-- William of Occam

Note: word is whitespace-delimited with punctuation included.


Of course, if this was important, I'd use an industry-accepted CAPTCHA system, but this is way more fun! Also, thanks to fortune for generating the quote!

}