Mike McFadden
Programmer and UI Designer in Baltimore, MD
View Résumé
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!
Bonzai Apps
The website you're already onThis 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.
Loading
Simple network activity monitor for OS X
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.
Mupen64Plus AE
Nintendo 64 emulator for Android (user interface)
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.
iVideo
Prosumer video organizer for OS X
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!
Traktor Sync
Syncing module for Traktor and Serato DJ
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.
Nabo TV
Media player using libVLC, GLSL, and OpenAL
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.
WikiSort
Fast and stable sorting algorithm using O(1) memory
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.
Bonzai Framework
Cross-platform UI 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.
Win-Like OS X
Command-tab app switcher and Mac keyboard shortcuts for Windows
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!
Pod Pals
Googly-eyed arts and crafts app for kids
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.
Model Flattener
Flatten 3D models for printing and reconstruction
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.
Bubbles
Real-time version of the classic game Daleks
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.
el▸dj
Jukebox kiosk with admin backend
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.
