Hi, I am Joshua Edgcombe.
An FPGA Engineer.
Currently working as an FPGA Engineer in Texas with a strong background in software development, digital design, and electrical engineering. I originally learned to program in 2008 and have since learned to write software in many different programming languages in a variety of environments including web, mobile, native, system, and embedded. I received my MSE in computer and electrical engineering in 2021 where I gained experience implementing and accelerating algorithms on FPGAs, GPUs, and DSPs. Since graduation I have been lucky enough to design, develop, and test a core component of the world's first deep-space radiation-hardened ethernet switch that will be used in a mission-critical capacity for the Artemis missions. I've also been able to significantly contribute to a constellation of satellites that will soon be competing with Starlink, as well as several defense related projects.
Projects
Image Stitching
Implemented a full image processing pipeline from scratch that included feature detection, feature matching, image transformation, and image stitching portions. This pipeline was accelerated on an FPGA and a GPU separately for performance comparison.
- C
- C++
- Cuda
- OpenCV
- VHDL
- Verilog
- Python
- Tcl
- SURF
- FPGA
- GPU
- Digilent Genesys ZU
SDR Transceivers
Implemented analog and digital communication transceivers using software-defined radios and GNU Radio Companion. Custom blocks were created to support the implementation of modulation and demodulation of AM, FM, FSK, PSK, and QAM signals. This included a dive into the theory behind several options for clock and data recovery.
- C
- Python
- GNU Radio
- Software-Defined Radio
- HackRF One
SHA-256
Developed an implementation of the SHA-256 algorithm in both Verilog and VHDL. Originally, I wrote this implementation in Verilog for an assignment in an encryption course, but I later converted the code to VHDL because that was what I was mainly developing in at the time.
- Verilog
- VHDL
- Basys3
OV7670 To VGA
Developed a VHDL implmentation that initializes an OV7670 image sensor and writes the output to a VGA output using a Digilent Basys3 development board.
- VHDL
- Basys3
MSP432 Driver Library
Developed a peripheral driver library for the Ti MSP432 microcontroller to gain experience interacting with peripherals.
- C
- MSP432
Emacs Stock Ticker
Developed an Emacs major mode that allows the user to view realtime prices of a user specified list of ticker symbols in the mode line. I pulled this program together in a day because I wanted a way to keep an eye on stock prices while I was developing.
- Emacs Lisp
Blog
Migrating to Ghost
Originally I planned on building my personal website as a web app using the MEAN stack for the experience, but the overhead of building out a whole new CMS just for my personal site would not be worth the time. Instead I decided to use the time to review the tools necessary for development and deployment of modern web services.
- Ghost
- JavaScript
- Kubernetes
- JAMStack
My First React.js App
When I was given the opportunity to write an application to simulate the task of resource management in an operating system for my CIS 452: Operating System Concepts course I decided to write my first React application. This was a welcome introduction to the JavaScript web framework.
- React
- JavaScript
Jekyll Tutorial
Last weekend I decided to give my outdated personal website an update and ended up trying out Jekyll. I was pleasantly surprised with Jekyll's ease of use and integration with Github pages. I figured I'd pass along my experience to assist anyone else interested in trying out Jekyll with Github pages.
- Jekyll
- Ruby
Jekyll Revamp
This weekend I decided to do a quick revamp of my personal website. Lately, I've had the desire to write up some informational articles about some of the topics I've been learning about in school as well as some of the insights I've gained from project work.
- Jekyll
- Ruby
Languages
- VHDL
- Verilog
- SystemVerilog
- Tcl
- Python
- Ruby
- Emacs Lisp
- C
- C++
- MATLAB
- Java
- C#
- PHP
- SQL
- HTML5
- CSS3
- JavaScript