Primarily an Elixir developer by trade. I do mostly embedded Linux applications for fun and profit.
Previously worked as a contractor for BinaryNoggin and as the lead embedded developer at FarmBot
When not coding for profit, you will likely find me coding for fun. See Projects for what that's all about.
I make as much of my work open source as possible. You will find my most useful contributions to Nerves and related projects.
- Nerves - Build embedded Linux Firmware with Elixir
- Nerves Hub - Remote central firmware update server for Nerves
- Vintage Net - Linux Networking library for Elixir
- Blue Heron - BLE library for Elixir
- zBLE - BLE library for Zig
- YourBot - Experimental Discord Bot deployment platform (co developed with Gulci)
- zErl - Erlang distribution interface for Zig
- Elixir RF69 Driver - RF69 packet radio driver for Elixir
- Elixir RF24 Driver - NRF24 packet radio driver for Elixir
You may have stumbled upon some content authored by me. Below are posts I still find useful to this day.
- IEx In A Box
- Auto validating Firmware with Nerves
- Mocks and Explicit Contracts with Nerves
- Debugging C Code on Nerves
- Using Distribution to Test Hardware
- Writing NIFS with Nerves
- Using SQLite and Ecto with Nerves
- Using ASDF-VM for Elixir and Erlang
- Raw Websockets in Phoenix
- Tips and Tricks to Keep Elixir Projects Up to Date
- BLE in Elixir with Blue Heron
- Membrane, Phoenix and Nerves
- Making NIFS portable
I have been known to start unfinishable projects. The one's I find most interesting are listed below
- Miata Bot - A Discord moderation bot that is used on the public Miata Server.
- Chromoid - A playground for connecting Nerves devices to Discord.
- Gameboy Emulator - A work in progress gameboy emulator and debugger written in Zig.
- Reactor - A WIP Hot Code Reloading framework for Elixir
I do not currently work in the automotive industry professionally, but I do have quite a bit of experience in this field from other interests. I work on a handful of projects in this vein. Most of these projects are not currently or ever going to be completed. I usually only end up implementing enough to complete whateverer task I have at hand. This means that while the source code is open and available, I am not actively working on most of these projects, unless I have a need for it.
ConeScan Automotive ECU hacking tool. Inspired by Forscan, and other various ECU hacking tools such as RomRaider.
Command line J2354 ROM dump tool and disassembly for the S1 Mazda Rx8. Now embedded in ConeScan.
I mostly work on embedded software, however i also dabble in hardware development. I'm not super good about keeping these projects updated, as they are usually quite expensive and time consuming. Below is a short list of what I consider to be some of better work.
I designed this board to help with the development of zBLE a Bluetooth Low Energy library for Zig. It features a GD32F4 microcontrollerr and a handful of wireless modules including Lora and GPS.
Very barebones development board featuring a I.MX6 CPU. I made this to evaluate what I think is the cheapest platform that can run Nerves. It turned out quite successful, but have backburnered the project for now due to the global chip shortage.
I've been working on this one for a long time, it's had many revisions and isn't complete yet. This is the Original "dream" version. I produced a few of these, but ultimately decided I wouldn't be able to use a full application processor for it for my target price. I had a ton of fun designing this, and would love to revisit this design in the future for another revision. I've written several blog posts about the progress of this project here
You can find me on all the things:
- Twitter: @PressY4Pie
- Instagram: @PressY4Pie
- Discord: @PressY4Pie#0690
- Mastodon