Headshot

I am a roboticist and systems developer located in Rock Hill, SC.

Tooling Skills

Hardware Design Tools

Verilog and SystemVerilog
Altium Designer
Quartus, Modelsim, and Verilator

Languages

Python and Java
C, C++, and Rust
Haskell, Fortran, and Matlab
HTML5 and LaTeX

Example Code

These small programs are presented here
to showcase my general coding style.


For examples of languages not shown here, see the projects below,
or visit git.embermckinney.com/embers.

Project History

At The Addition

At The Addition is a concert livestream every other Sunday. I was a camera operator for the first two seasons.

Lambda Calculus Parser-Reducer [Haskell & Python] [View Source Code]

This is a parser and reducer program for the lambda calculus, a mathematical system at the foundations of much of computer science, which was introduced by Alonzo Church in the 1930s. This particular program includes some extensions to the syntax to aid using the lambda calculus as a basic programming language.

2021

2020

Testing Website [HTML5 & Python] [View Source Code]

The site ttech.click has a list of much of the content I have put on the web. Its backend code, written in Python, was also used for generating this portfolio site.

ML Feature Training UI Mockup [For Work]

These mockups were made for some short work I did for the University of South Carolina designing a program to help train a coral-identifying machine learning algorithm.

SC Trails Search [JavaScript & Python] [View Source Code]

The sctrails.net site search feature frustrates me to no end, so I created a new search page for the site by downloading the trail data with a Node.js scraper script, exporting it as JSON, and using Python to handle searches of the trail data.

Ticobot Project [ROS] [For Work]

The Ticobot is a robot designed to operate in sparsely wooded grasslands, collecting ticks to determine the disease profile of an area. I worked with Sam Dauchert (Dauway Robotics) from January 2019 through December 2020 to put together the navigation system for the Ticobot. The open-source components of the prototype will be published at some point in the future.

2020

2019

MIPS CPU [Verilog] [View Source Code]

This is a MIPS CPU design I originally made for CSCE 611 Advanced Digital Design, and updated to be simulated using Verilator.

MK Packager [Bash, Chef, & Docker] [View Source Code]

An acquaintance of mine, Marin, is creating an editor for RPG Maker XP games. I have created a collection of VMs and containers with scripts used for packaging software associated with that editor. The project as a whole is currently on hiatus, but it will have much more work done on it in the future, once development picks up again.

VDex [Rust & Python] [View Source Code]

VDex is a Generation V online PokéDex and team building tool I made as part of a larger project to develop a new game AI.

2019

2018

Lebesgue-Sampled Landmark SLAM [C++] [For Work]

Sam Dauchert and I developed a landmark-based simultaneous localization and mapping system using Lebesgue sampling at the Resilient Systems Laboratory at the University of South Carolina.

Image Processing Report [LaTeX & MATLAB] [For Class]

I put together this report for an image processing class I took at USC.

Insertion Sort in INTERCAL [INTERCAL & Python] [View Source Code]

INTERCAL was a parody programming language created in 1972 to satirize the languages of the time. I implemented insertion sort in the language, as a code challenge and demonstration of the language.

Jetyak MTS/IEEE OCEANS Paper [For Work] [Download Paper]

[View Abstract, Video, and Referencing Information]

The jetyaks are autonomous surface vehicles based on the Mokai ES-Kape and Pixhawk autopilot. This paper, An Autonomous Surface Vehicle for Long Term Operations, was presented at the 2018 OCEANS conference in Charleston, describing the design of the vehicles. A number of other papers have been published using the jetyaks (many of which are related to the other coverage research I worked on at the AFRL), available at afrl.cse.sc.edu/afrl/publications.

Multi-MAV GCS [Python] [For Class] [View Source Code]

This was my senior design project. It is a ground-control station allowing the tracking and control of multiple robots connected over MAVLink (the protocol the jetyaks and many other robots use for GCS communication).

Absion Technologies [SystemVerilog & C] [For Work]

Absion was a startup developing low-power stream processing hardware and novel AI video compression technologies.

IPA Vowel Chart with Audio [HTML5] [View Source Code]

Front Central Back
Close
Close-mid
Open-mid
Open

i: Close front unrounded

y: Close front rounded

ɨ: Close central unrounded

ʉ: Close central rounded

ɯ: Close back unrounded

u: Close back rounded

ɪ: Near-close near-front unrounded

ʏ: Near-close near-front rounded

ʊ: Near-close near-back rounded

e: Close-mid front unrounded

ø: Close-mid front rounded

ɘ: Close-mid central unrounded

ɵ: Close-mid central rounded

ɤ: Close-mid back unrounded

o: Close-mid back rounded

ə: Mid-central

ɛ: Open-mid front unrounded

œ: Open-mid front rounded

ɜ: Open-mid central unrounded

ɞ: Open-mid central rounded

ʌ: Open-mid back unrounded

ɔ: Open-mid back rounded

æ: Near-open front unrounded

ɐ: Near-open central unrounded

a: Open front unrounded

ɶ: Open front rounded

ɑ: Open back unrounded

ɒ: Open back rounded

2018

2017

Crypto Mining Interview

AFRL Website [PHP & Python] [For Work]

I created a framework, TachibanaSite, for running afrl.cse.sc.edu, the website of the Autonomous Field Robotics Laboratory at USC.

Coverage IEEE/RSJ IROS Paper [C++ & Python] [For Work] [View Source Code]

[View Abstract, Video, and Referencing Information]

I wrote the simulation code for Nare Karapetyan’s multi-robot coverage research, as well as assisted with the library code and build tools.

Blue Chip AI [Java] [For Work]

Blue Chip AI was a startup developing stock-trading and research-assistant AI systems that would actually generate human-readable programs.

Maestro Servo Controller [C] [For Work]

Sam Dauchert and I wrote driver software for the Maestro servo controller for the Resilient Systems Laboratory at USC.

Indoor Drones [C++ & MATLAB] [For Work]

I wrote networking, firmware, and navigation software code for indoor drone flight using a motion capture system for the Resilient Systems Laboratory at USC.

Advection-Dispersion Models [Fortran, Haskell, & MATLAB] [For Class]

These are programs and reports I wrote for GEOL 575 Numerical Modelling for Earth Science Applications, modelling advection and dispersion in one dimension.

2017

2016

Geologic History of the SE US [For Class]

I wrote up a geologic history of the southeastern United States for GEOL 201 Observing the Earth.

Surface & Near-Surface Processes [For Class]

Notes from GEOL 315 Surface & Near-Surface Processes.

Robotics Notes [For Class]

Notes from CSCE 574 Robotics.

Potential Fields [C++] [For Class]

This is a project I did for CSCE 574 Robotics using potential fields as a basic pathfinding algorithm for robots, tested in Stage simulator.

2016

2015

iRobot Create Library & Project Management Tools [C & Python] [For Class] [View Source Code]

I created a library and project management tools for programming the iRobot Create in CSCE 274 Intro Robotics.

Start of Jetyak Project [For Work]

The jetyak project started in May 2015 as part of my research assistantship at the CPSD lab, and was a continuous part of my research at the AFRL. For information about the first year of the project, you can consult this document, and you can also take a look at this initial drawing of the post-“reboot” jetyak design.

Early AFRL Work [For Work]

My very early work at the AFRL mostly involved documenting the setup process for robots in the lab:

Partial X86 to Y86 Transpiler [Python] [For Class] [View Source Code]

I wrote this transpiler from a subset of X86 to a subset of Y86 for CSCE 212.

Swampfox Internship IVR Scripts [Java, Python, & PHP] [For Work]

At Swampfox, I worked with software engineers to automate aspects of telephony application design, and wrote data transformation scripts to streamline testing and communication.

2015

2014

Division in BF [Python] [View Source Code]

Division in a 3-bit instruction set, why not!

Simplex Noise Terrain Generation [Python] [View Source Code]

2014

2013

Robotics Team Control System [Java]

I helped found a FIRST robotics team at my high school, and built all of the electrical and software components of our robot.

Boats: A Naval-ish AI-ish Simulation [Java] [View Source Code]

Naval-ish large-ish AI-ish simulation. I wrote the recording and replay subsystems.

2013

2012

My First Real Program [Java] [View Source Code]

This is the first real program I ever wrote. It’s real bad. The code’s okay, or at least well-commented, but the protocol is an utter mess. I was very excited about XML, but had no idea what the point of it even was. So the protocol is a weird horrible melange of pseudo-XML and Java’s binary Serializable format. It has HTML 3.2 (kinda) support though.