Hello, World!

I'm Max ‐ a (predominantly Swift) software engineer in šŸ‡¦šŸ‡ŗ Sydney, Australia. I like nothing more than sitting down to solve a programming problem, so reach out if you need something custom to streamline your workflow or present your product to the world! Here's a few favourites that I've built in the past:

iOS Apps

Photo Extractor

An iOS app that helps you grab high-quality frames from any video or live photo and save them as an image.

Blocky - SMS filter

Blocky is a 100% offline & private iOS SMS filter. Check it out on the AppStore or GitHub!

Rebounce

A pinball-style game for iOS

Herald

iOS counterpart to the Herald macOS app

macOS Apps

Xcode Tweaks

Makes Xcode instantly build again when Xcode says ā€œBuild again to continueā€ - and other similar fixes that we shouldn't have to care about.

Quick Draw

Screensharing on your Mac? Need to draw a diagram or highlight some content? Quick Draw is here to help.

On Air

A macOS app that helps other people at home know when you're in a meeting.

Translate This

Simply position the transparent rectangle over any text that is appearing on your macOS computer's screen to instantly translate it into any language!

Herald

Get notified on your phone when a task finishes on your computer.

Other Software

Word Train

Twist and turn to link two letters together in this daily word-grid puzzle. Android and iOS!

Spoilern't

Tired of Netflix' description spoiling what happens in the next episode? Spoilern't is a Firefox extension to blur out spoilers.

#TVSlides

Shows Instagram slideshows on your Apple TV (discontinued - Instagram revoked our API access soon after launch)

Looking for the source?

I strongly believe in Open Sourcing as much of the work I do as possible. On my GitHub page you'll be sure to find something interesting or (hopefully) useful, for example:

BASH Scripts

My personal Homebrew tap of scripts that I made to make my life easier

Icon Resizer

A Swift script to generate all the icon sizes you need for your Xcode project

Resource Encoder

Helps to securely store secret assets (such as API keys) in your binary

XCGrapher

Graph your Xcode project's dependencies

json2swift

Open-source web app that converts JSON structures to Swift models

Google Analytics

A tiny Measurement Protocol wrapper for use on any platform

Sharing the Knowledge

I've learnt so much from the Internet, so I want to ensure it remains a trustworthy place for future generations of developers. On my Medium page you can read about some interesting problems I've solved or gain a few ideas for your next project's implementation:

Calling Shell commands from Swift

Using @dynamicCallable and @dynamicMemberLookup to create native APIs for the Shell in Swift

Mocking AsyncSequence in Unit Tests

Swift Concurrency is hard to test!

Load and execute code in an external dynamic library at runtime

Introducing a new tool - XCGrapher!

Magic Dependency Injection in Swift

Using a custom Swift Property Wrapper to help us inject dependencies into classes.

I need a cloud database: Firebase or CloudKit?

Itā€™s a common misconception that Firebase and CloudKit are fairly interchangeable. Whilst they are both serverless storage solutions...

Refactoring in Swift: Setup Closures

A quick idea on how a simple function can make your setup closures much neater

Create a punchable Tag & Build button

Hereā€™s another 10-minute hack: weā€™ll be using IOKit to respond to a key press from a specific peripheral in order to...

Decoding ASN.1 DER Sequences in Swift

An API I am working with is returning sensitive data signed with an Elliptic Curve Digital Signature Algorithm (ECDSA)...

I have also been having recurring and ad-hoc one-on-one sessions with people who are keen on learning iOS development from scratch. If you need a new topic explained to you or are interested in starting a regular mentoring relationship, get in touch!

Want something built?

I'm always looking out for what I might be able to build next - so get in touch! LinkedIn or this form is a good place to start šŸ˜Š