Mike McFadden

Programmer and UI Designer in Baltimore, MD View Résumé

Introduction

Welcome to my portfolio! I have 16 years of experience with the entire app development life cycle, including design, development, testing, maintenance, and even marketing and tech support. If you think I'd be a good fit for your job opening, please contact me!

2015 – present

Bonzai Apps

The website you're already on

This website took about a month to make, most of which was spent localizing the content (including screenshots) for 32 languages. It can accept payments from the PayPal SDK, save transactions to an SQL database, generate app licenses using PHP, send rich HTML emails with plaintext backups, respond to different screen sizes and densities, and function correctly with JavaScript disabled.

2015 – present

Loading

Simple network activity monitor for OS X
Loading

This was supposed to be my get-rich-quick app, being a simple yet essential utility I could sell on the Mac App Store. Unfortunately I never found a way to get it to work within the sandboxing limitations, so I made this website to sell it online. But then the Baltimore riots happened and I decided to make it donationware for repairs, and ultimately made it free and open source.

2015

Mupen64Plus AE

Nintendo 64 emulator for Android (user interface)
Mupen64Plus AE

At some point I realized I should work on an open-source Android or web project to round out my portfolio, so I checked out the code bases and communities for reicast, iD, and OsmAnd before deciding to work on Mupen64Plus AE. I added searching and sorting, improved the file management based on my experience with iVideo, and redesigned the user interface.

2003 – present

iVideo

Prosumer video organizer for OS X
iVideo

This project started the summer before college, when my dad took me and my sister to Hawaii and we ended up with a lot of photos and videos. The photos could be handled by iPhoto, but there was no video alternative at the time so I threw together an "iPhoto for videos". A friend suggested I turn it into a full product and sell it online. 12 years later and I'm still maintaining it!

2014

Traktor Sync

Syncing module for Traktor and Serato DJ
Traktor Sync

Alchimie LLC needed help reverse-engineering the database formats and metadata tags used by Serato DJ and Traktor, which are largely undocumented. As I had prior experience with reverse-engineering parts of the iTunesDB format and the pixm resource format for OS X, I offered to help. The project was a success and I provided ample documentation and sample code.

2014

Nabo TV

Media player using libVLC, GLSL, and OpenAL
Nabo TV

On Freelancer there was a contracting job available to implement a Java-to-C bridge of libVLC for $3000. That seemed a little high for something so simple, so I contacted the project starter and we agreed to expand the job to include a Java (later Scala) media player using OpenGL and GLSL for YUV-to-RGB colorspace conversion, and OpenAL for streaming audio.

2014

WikiSort

Fast and stable sorting algorithm using O(1) memory
WikiSort

The common assumption for sorting algorithms was that they had to sacrifice something, whether it be speed, stability, memory, an O(n log n) worst case, or being non-theoretical. That wasn't acceptable to me, so I read nearly 30 academic papers until I discovered one that seemed practical. I implemented the algorithm, added my own twists, contacted the authors, and block sort was born.

2011 – 2013

Bonzai Framework

Cross-platform UI framework
Bonzai Framework

For reasons that can only be described as temporary insanity, I thought NIH Syndrome was a great idea and set out to create my own cross-platform object-oriented UI and app framework. Using C. Heavy abuse of the GCC preprocessor, tons of wrapped system functions, and a custom graphics library led to a surprisingly capable framework that did the same thing as other frameworks.

2012

Win-Like OS X

Command-tab app switcher and Mac keyboard shortcuts for Windows
Win-Like OS X

Using Windows when you're used to OS X is not fun at all. I was able to restore most functionality using 3rd-party apps, but I couldn't find a solution for the command-tab app switcher, command-tilde window switcher, or Mac-style text input. So I wrote an AutoHotKey script that hooked into the Win32 API to provide just that!

2010 – 2011

Pod Pals

Googly-eyed arts and crafts app for kids
Pod Pals (iPhone)

Sadly I never released this app, since temporary insanity kicked in and I decided to work on the Bonzai Framework instead. Open your art box and use buttons, pom poms, toothpicks, stickers, glitter, yarn, googly eyes, popsicle sticks, yarn, pipe cleaners, doilies, and cloth to create your very own Pod Pal! The stickers were sticky, the googly eyes were googly, and the about screen used realistic rope physics.

2010

Model Flattener

Flatten 3D models for printing and reconstruction
Model Flattener

I wanted to make one of those mouse figurines for my aunt but lacked things like talent, so instead I drew one of her existing figurines from the top, side, and front, created a 3D model in Cheetah3D using those reference drawings, wrote a small utility that flattened the 3D model into strips, traced those strips onto paper, and taped the pieces back together. Michelangelo I am not.

2010

Bubbles

Real-time version of the classic game Daleks
Bubbles

For my first iOS project I decided to remake one of my earlier games from 2003, called Bubbles. The gameplay relied on the accelerometer for movement and multitouch to collapse the spike walls on either side. I also added an online ranking system, a calibration tool for the accelerometer, and 50 unlockable achievements.

2007 – 2009

el▸dj

Jukebox kiosk with admin backend
el▸dj

The HiFi Bar hired me in late 2007 to begin working on the next generation of their el▸dj jukebox software. My version was designed from the ground up to work efficiently with over 50,000 songs, use a custom flicker-free user interface, provide detailed usage reports, and of course accept money via their RS-232 bill acceptor.

2003 – 2007

College stuff

Click to show
1999 – 2003

High school stuff

Click to show