# Leveraging AI to build a faster iOS CI system

DevFeed: [Leveraging AI to build a faster iOS CI system](<https://devfeed.tech/articles/leveraging-ai-to-build-a-faster-ios-ci-system-24728.md>)

Original publisher: [Read original article](<https://medium.com/thumbtack-engineering/leveraging-ai-to-build-a-faster-ios-ci-system-75ec9ceee892?source=rss----1199c607a13f---4>)

Author: Muhieddine EL Kaissi

Published: 2026-04-21T18:16:01Z

Content type: article

Language: en

Sources: [Thumbtack Engineering - Medium](<https://devfeed.tech/sources/thumbtack-engineering-medium.md>)

Topics: [CI/CD](<https://devfeed.tech/topics/cicd.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [AI-assisted coding](<https://devfeed.tech/topics/ai-assisted-coding.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-assisted-coding](<https://devfeed.tech/tags/ai-assisted-coding.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developer-productivity](<https://devfeed.tech/tags/developer-productivity.md>), [ios](<https://devfeed.tech/tags/ios.md>), [ios-development](<https://devfeed.tech/tags/ios-development.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [testing](<https://devfeed.tech/tags/testing.md>)

## AI overview

Thumbtack describes Smart Test Selection, an iOS CI system that reduces pipeline time by running only tests relevant to each pull request. The article explains why parallelization stopped scaling, including node contention, large test suites, and slow snapshot and UI tests, while noting that AI-assisted coding could increase CI demand.

## Source excerpt

Every iOS pull request at Thumbtack used to wait 30 to 40 minutes for Continuous Integration (CI) -- sometimes over an hour on Fridays. We built Smart Test Selection (STS) to cut that in half. Here's how. I'm a Senior Software Engineer on the iOS Infrastructure team. We own the CI/CD pipelines, build tooling, and shared frameworks that keep Thumbtack's apps shipping reliably. We also build AI-powered developer tooling -- 35+ AI Agent Skills, MCP integrations for Jenkins, Figma, Firebase, and Xcode -- that help the broader iOS team ship faster. Over the past few quarters, we built Smart Test Selection (STS), a system that reduces CI time by running only the tests that matter for each pull request. Why Full-Suite Testing Stopped Scaling Before STS, we had already optimized CI through parallelization -- running consumer, pro, and shared framework tests on separate nodes, and splitting snapshot tests across multiple simulator clones. But parallelization hit a ceiling. The more nodes we spread CI across, the more engineers had to wait for free nodes, cancelling out the speed gains. Snapshot tests dominated the suite but couldn't be split further without diminishing returns, and UI tests were inherently slow per-test. We needed a fundamentally different approach: run fewer tests, not run the same tests faster. Every iOS PR ran the full test suite for each affected app. We have three main targets -- a consumer app, a pro app, and a shared framework -- totaling 1,500+ test classes. The pipeline already skipped unaffected apps (a change to the consumer app would not run pro app tests), but within each affected app, every test ran regardless of what specifically changed. A one-line bug fix in one screen would trigger all 400+ tests for that entire app. This was becoming unsustainable. Human-generated code was already putting CI at the limit due to ever-increasing code size and test counts. We had increased our CI node count multiple times to keep up with demand, but each expansion