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 2017B.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):
Ignorance is bliss. -- Thomas Gray Fortune updates the great quotes, #42: BLISS is ignorance.
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!}