Micromite (PIC32 & MMBASIC) to DS1302 RTC Communication

MMBASIC's system variables TIME and DATE are set by real-world time/date stored on external VMA301 module.

Micromite Companion Build Guide

I maintain an assembly guide for an electronics hobbyist project called the Micromite Companion. It's a retro-inspired computer built on top of the PIC32 and Parallax Propeller microcontrollers. It runs an advanced version of the classic BASIC programming language.

Programming a 32-bit Microcontroller (PIC32MX) in C

Microchip Technology's 32-bit MCU is used in conjunction with the book "Programming 32-bit Microcontrollers in C: Exploring the PIC32" by Lucio Di Jasio. Many fundamental topics are covered: C programming, assembly, datatypes, timers, interrupts, communication protocols (SPI, I2C, UART), etc.

FPGA Development: Nandland Go Board

This board uses the Lattice iCE40 HX1K FPGA along with several peripherals to learn the basics of FPGA development.

Retro Game Design

I've written several complete games using Python, designed to run as stand-alone desktop applications. Below are links to the games (screenshots and source code available on their respective webpages.)

Skills and Experience

I've been programming since a very young age (10 years old!) and have development experience both as a hobbyist programmer and working professionally. After obtaining my computer science undergraduate degree, the majority of my professional experience has centered around quality assurance and automation testing, though the pull for me has always been toward development. I've worked for many years as a private tutor to teach kids about computer programming, hopefully to instill that same joy and immediate appeal I had toward the subject at a young age.

Microcontroller Assembly

I have experience working with several different assmebly languages and mircocontroller architectures, including Microchip's PIC32MX and Texas Instruments ARM Cortex-M4F controllers.

Electronics and Schematics

An ongoing learning focus, from theory to circuit analysis. I like working with building hardware systems from individual components to learning and understanding how to read complicated schematics.

Verilog and VHDL

A primary interest of mine is FPGA development, which includes a working knowledge of both Verilog and VHDL description languages.

Java

This was my university's language of choice during my years at SUNY Stony Brook. It's the langugae I cut my teeth on in terms of learning Object Oriented Programming concepts and developing interactive GUI-based applications.

JavaScript

It's a powerful language and it's absolutely indispensable in today's technology landscape. It's shortcomings (in my opinion), mostly have to do with the number of different ways to accomplish the same thing. Plus I've never fully accepted the benefit of function arrow syntax!

C

The C programming language has always been a favorite of mine, mostly because of the performance benefits of it's low-level implementation. I've been interested in game develpment from an early age, and this language naturally applies. The SDL (Simple DirectMedia Layer) library has also been a favorite of mine, written and designed with C in mind.

Python

Python is my language of choice. I love how much you can accomplish with such a small amount of python code. No other language comes close. It's also my favorite language to tutor with, because it forces kids to adopt a clean and structured coding style (due to the way python enforces the use of spaces as a way to delinate code blocks, instead of the more common use of curly braces).

Azure DevOps

I have experience using this to manage Aglie team workloads, from hosting a Story Board to running Pipelines to creating Test Suites/Scenarios/Cases.

Agile

A lot of experience working as a member of an Agile team. Daily work consisted of Scrum meetings, meetings with subject matter experts, working with Story Cards on a Story Board, writing Test Cases, helping create User Stories and Bug work items, helping to move those Story Cards over the finish line (the "done" column!).

BDD (Behavior Driven Development)

Experience working with key stakeholders (business analysts, qa/testers, developers) to work out features from the application's behavior as a starting point. Cucumber was used to write Feature files as a plain-english way to facilitate communication between these key stakeholders.

Automation Testing

With Gherkin feature files as a starting point, I have experience implementing the automated tests (written in C#) using Selenium WebDriver.

SQL

Extensive experience writing reports (SQL scripts) for various stakeholders (sales, accounting). Main experience is with MySQL, with some experience with Microsoft SQL Server.

Get in touch