I'm Oliver O'Neill, a software engineer with a focus on ML systems and mobile frameworks.

Get in touch

About

I enjoy solving problems and designing software architecture.

I'm a senior software engineer working at Apple. I have several years of experience developing on-device machine learning infrastructure and deploying frameworks for both iOS and Android.

When I'm not programming, I spend my time making music which you can listen to here.

Experience
June 2020 - Present
Building intelligent experiences for iOS and macOS
Senior Software Engineer
Machine learning on-device infrastructure for iOS and macOS features
  • Owned cross-platform prompting and tokenization framework used by all Apple Intelligence features
  • Led API design for the Foundation Models framework to enable agentic workflows across Apple platforms
  • Maintained low latency on-device generation using techniques like speculative decoding and constrained decoding
  • Led platform redesign to support Siri AI, enabling hundreds of new capabilities
  • Designed and shipped a personalised recommendation system used by Siri and Spotlight
  • Developed an on-device inference evaluation pipeline to enable A/B testing of different ML models

March 2018 - June 2020
Improving content-viewing experiences
Senior Engineer
Mobile client side lead responsible for the development of player enhancement SDKs
  • Developed algorithms for ensuring efficient and robust delivery of data over unreliable networks using TCP and HTTP/2 standards
  • Owned internal iOS and Android apps for testing and validating changes before SDK release
  • Designed end-to-end test platform to minimise regressions utilising Docker to simulate network conditions
  • Delivered significant performance increases by improving automated tooling for measuring performance indicators

October 2013 - March 2018
Improving reliability and performance of video delivery
Software Engineer
Responsible for developing and deploying apps for iOS and Android
  • Gained valuable insight into performance characteristics by developing apps with in-depth metric collection
  • Analysed hundreds of user tests by building and deploying a dashboard that visualised statistical results
  • Innovated and improved key products by having a detailed understanding of video streaming technologies
Education
January 2012 - December 2015
Bachelor of Software Engineering (Honours)
Received First Class Honours and two Dean's List Awards.
GPA: 6.75 / 7.0
Skills
Languages
  • Swift
  • Python
  • Objective-C
  • Java
  • Kotlin
  • Go
  • JavaScript
Frameworks
  • GRDB
  • SwiftUI
  • Evaluations
  • Foundation Models
  • CoreML
  • Combine
  • Swift Macros
  • AVKit
Tools
  • Claude Code
  • Xcode
  • Android Studio
  • SQLite
  • Docker
  • MongoDB
  • Splunk
  • Amazon Web Services
Patents
Dolby Laboratories
Proposed multiple solutions for streaming video files from multiple endpoints at once in order to improve network throughput and resilience.
Projects

For apps requiring more sophisticated model coordination and context management, DynamicProfile and DynamicInstructions enable composable, readable agent orchestration.

Swift Foundation Models Private Cloud Compute On-Device LLMs

A suite of utilities to complement the Foundation Models framework, for introducing fast-evolving language model infrastructure between OS releases.

Swift Foundation Models Swift Package Manager Skills DynamicProfile

Wilt is an app used to track what a user listens to on Spotify (and potentially other streaming services). This uses Spotify's Web API to periodically check a user's most recent listens and store this data in BigQuery. The iOS and Android apps will display a user's top artists and tracks as well as a timeline of their weekly listens. Firebase is used for authentication and serverless compute. There is also a separate AWS Lambda function written in Swift for periodically querying the Spotify API, available here.

Swift Kotlin Node Firebase BigQuery AWS Lambda Spotify API

Han is an app that aggregates photos that were recently taken close to you and displays them in a feed. Images are displayed based on recency and distance, where you can easily at where each images is taken and directions to get there. You can find the source code for the server on Github. The server uses the Instagram API, Twitter API and Flickr API to populate the image feed. The image feed view was designed and developed as a library called FeedCollectionViewController and is discussed below. Unfortunately Instagram deprecated the API that helped populate the image database, so I've since removed the app from the App Store.

Swift Go MongoDB Docker AWS Instagram API

Soft is a Swift library for querying the Spotify Web API. The library has Linux support and is used by Wilt for populating the database of users' listening history.

Swift Swift Package Manager Spotify API

Tod is an app used for scheduling trips in order to receive a notification when it's time to leave. Tod will watch Google Maps traffic data to ensure that you leave with enough time to make it to your destination. It will also use available transit data to ensure that you don't arrive early at the bus stop. The client is written in React Native and the source code is available here, the server was written in Go and available here. This was once published to the App Store and Play Store but has since been removed since it's no longer being maintained and APIs have since changed.

React Native Postgres Docker APNS Firebase Google Maps API

FeedCollectionViewController is an iOS library available on CocoaPods and written in Swift. It is a wrapper around UICollectionView for Facebook or Instagram inspired feeds. I've also written an equivalent Android library in Kotlin, that is available on JCenter and is open source on Github. This library was used in Han for its feed and photo viewer.

Swift Kotlin CocoaPods JCenter

Bert is a terminal utility written in Node which is aimed to help developers solve common errors quickly. This project is currently a work in progress with a friend of mine. The program uses document analysis, notifications and specific error parsers to find errors and display solutions.

Node Flow