Hi, I'm Cameron Ottley

Photo of Cameron Ottley

Software engineer with a passion for writing software to solve random problems in my life.

View my Resume

Contact Me


About Me


Featured Projects


Flare logo Flare

Swift-based social iOS app with backend API written in C#

Pokéball Icon PokéFamilyDex

A Python script to aid in organizing Pokémon HOME boxes evolutionary family & National Pokédex order

My Tech Stack


Languages

Tools & Platforms

Frameworks & Libraries

How I Work


My Development Philosophy


My software development journey began in 2007 when I accidentally landed in a high school Computer Science class. I could have dropped it, but I was instantly hooked by the idea that I could create something functional—even something as simple as a Fahrenheit-to-Celsius converter. I've always thrived on the feeling of writing code and seeing it actually work. Over the years, I've picked up new languages, tools, and experiences that have shaped me into a stronger developer. Along the way, I've also developed a personal philosophy around how I approach building software. Here are a few of the values that guide my work:

My Tech-Related Hobbies


Immich Logo Immich Photo Server

You know how iOS and Android try to be helpful by automatically backing up all your photos? I think that's great—I love the peace of mind that comes from knowing I won't lose everything if my phone takes a swim while I'm rafting. But I'm also frugal, and I'm not a fan of paying Apple or Google's inflated cloud storage prices.

Immich is a self-hosted alternative to Google Photos that offers automatic backups and a familiar browsing experience. With a little tech know-how and a Docker container, you can set up your own private photo server and get most of the same features—without the monthly subscription.

Android Logo Android Rooting

While I use an iPhone as my daily driver, I picked up a Google Pixel 6a on sale a few years ago out of curiosity. I never planned to use it as my main phone—I just wanted to experiment with rooting without the risk of bricking my primary device.

As a developer, I love how rooting lets me dig beneath the surface of Android and customize the experience down to the smallest details. I've explored tools like Magisk and Tasker to automate tasks, tweak system behavior, and streamline the interface. It's incredibly satisfying to work with the OS at such a low level and see the impact of my changes in real time.

Emulation Station Desktop Edition Logo Emulation Station & RetroArch

I've had a fascination with retro games for as long as I can remember. As I've grown older, I've become increasingly interested in game preservation. Many of the titles I loved growing up have become difficult—or outright expensive—to access, and the companies that could preserve them (hi, Nintendo! 👋) don't always seem interested in making their older catalogs available. How am I supposed to play Pokémon Alpha Sapphire without shelling out for a used 3DS and an overpriced cartridge on eBay?

Enter Emulation Station and RetroArch, which gave me the tools to build a highly customizable retro gaming setup. I picked up a Retroid Pocket 5, and with a little bit of tinkering, I turned it into a fantastic portable emulation device. I enjoyed fine-tuning button mappings, aspect ratios, and performance settings to create a system tailored to my preferences.

As an added bonus, the Retroid Pocket 5 runs Android, so many of the skills I developed while rooting and customizing my Pixel 6a carried over. It's been a great way to blend my love of retro gaming with my passion for low-level software customization.