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

fn projects() {

  • 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 known as 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.

  • 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.

  • YouTube DownloaderRust, HTML/CSS

    This is a great example of how composing different open source tools to do the heavy lifting can create a powerful application with minimal effort. This tool takes an input YouTube, Soundcloud, Vimeo, or other URL and downloads the video - optionally stripping out just the audio stream, tagging it, and returning it! You can run this app on your own server too - check out the source code!

  • 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 - Sacramento, CA


Valley Tech Systems, IncSpring 2019 - Present

Software EngineerFolsom, CA

Spring 2019 - Present
  • Embedded Linux infrastructure development
  • Software defined radio development
  • Open architecture systems development
  • Network modeling and testing

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
  • Adopting and modernizing large legacy codebases
  • Leveraging and contributing back to open source software
  • Attending 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 - specializing in low-power Bluetooth data collection systems
  • P.C.B. layout design using EagleCAD
  • Writing stress-test and analysis programs in several languages
  • Management of assembly team - up to five people

San Jose State UniversityFall 2017
B.S. Computer Science
Men's Varsity Water Polo Team Captain
2016 Golden Coast Conference All-Academic
Cumulative GPA: 3.6
Languages C, C++, Rust, Python, Shell scripting, Java, Sed/Awk
Tools Vim, Git, GNU utilities, GDB/Valgrind, Nginx, Wireshark, Make, CMake
Software Linux, U-Boot, Docker, REDHAWK, Buildroot, Xilinx Vivado/SDK, gRPC/Protobufs
Skills Software and hardware development, device drivers, open source, networking, server management, bootloader design, team-oriented, natural leader


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):

We knew from experience that the essence of communal computing, as
supplied by remote-access, time-shared machines, is not just to type
programs into a terminal instead of a keypunch, but to encourage close
	-- Dennis Ritchie

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!