markgoodwin.dev

I'm a retired software developer.


I first started programming on a Radio Shack TRS-80 Model I in 1979. Because I never really cared that much for BASIC, I quickly learned Z-80 assembly language programming.


After acquiring my first PC-compatible computer, I fell in love with C and then C++. Through the years, I've programmed in a ton of different programming languages. At the end of my career, I was a full stack C#/.NET developer.


Since retiring, I've taken an interest in Rust, Flutter, and Dart. This website is meant to be a web presence for my open-source projects. It is written in old-fashioned HTML, CSS, and JavaScript.

For many years, I'd wanted to write an emulator for an old-school microprocessor. After retiring, I wanted to learn Rust. So I decided to write a 6502 emulator in Rust.


Because it was my first non-trivial, Rust project, I learned a lot about Rust in the process. The code could probably still use some polishing, but it works quite well. The emulator passes some well known 6502 test suites. Additionally, it features a built-in disassembler and a built-in debugger.


Check out the repository at GitHub.

I've created a Rust crate called indexable_str. It's a wrapper around Rust's str type that allows you to index into unicode strings using the familiar square bracket notation. An IndexableStr can return a character at a specific index or get a range of characters as an str.


Check out the crate at crates.io.


Check out the repository at GitHub.

I'm currently working on an open-source Sudoku app written in Flutter and Dart. It's still a work in progress, but it is usable as an Android app. See the screenshots below of the app running on my Pixel 5a. It features a dark mode and a light mode. Once I get it to a point where I'm happy with the app, I'll release it on the Google Play Store as a totally free app. Yup, that's right, no ads!!!


Eventually, I'd like to create a web version of the app and embed it in this website. However, completing the Android verison is my priority at this point.


Check out the repository on GitHub.


sudoku dark mode screenshot sudoku light mode screenshot