
Matthew Carroll
Verified Expert in Engineering
Full-stack Developer
Atlanta, GA, United States
Toptal member since January 2, 2017
Matthew is a full-stack software engineer and contributor to Apple's Swift project. He graduated from Georgia Tech with a bachelor's degree in computer science in 2002. Since then, Matthew has developed in C/Unix, Java/Spring, full-stack web, Python, and Go. Matthew is committed to software engineering excellence and is available to travel to client sites.
Portfolio
Experience
- SQL - 6 years
- MongoDB - 4 years
- TypeScript - 2 years
- Python - 2 years
- JavaScript - 2 years
- React - 2 years
- GraphQL - 2 years
- Go - 1 year
Preferred Environment
Amazon Web Services (AWS), SQL, Node.js, TypeScript, Go, Python, FastAPI, CI/CD Pipelines, Express.js, MongoDB
The most amazing...
...system that I've developed was a real-time notification system that delivers push notifications to production iOS and Android apps, using Apache Kafka.
Work Experience
Full-stack Python, TypeScript, and React Developer
Liberate Innovations, Inc.
- Developed FastAPI-based APIs to handle inbound calls via WebSockets and Telnyx, and outbound calls via Twilio.
- Designed relational database management system (RDBMS) schemas and implemented migrations for PostgreSQL and Prisma.
- Converted UI designs into React components using Material UI.
- Developed GraphQL queries and resolvers to deliver data to front-end applications.
Back-end Engineer
Elevance Health
- Engineered gRPC APIs in Go (with Protobuf) that delivered HL7 FHIR resources to clients, enabling the customization of JupyterLab workspaces and improving configuration speed.
- Led the development of a FastAPI microservice in Python that used natural language processing (NLP) to classify and route free-form English questions, providing a unified API for call center agents.
- Developed enhancements to the NLP functionality of a data science team's Intent Detection package by fixing bugs, upgrading dependencies, improving performance, and making data immutable across the package API.
- Devised and implemented a plan to extract the NLP functionality from the data science team’s web app into a custom Python package, publish it to the private Python Package Index, and integrate it into the continuous integration pipeline.
- Developed a process to automate testing and publishing the data science team's Intent Detection package for scheduled releases.
- Pioneered automated integration tests in Python to validate FHIR-based references and values in the FHIR resources created by an ETL pipeline that produced resources for 70 million patients, reducing the testing time of QA from days to minutes.
- Directed an effort with DevOps to develop a deployment pipeline that ran multiple types of tests (security scanning, type-checking, linting, formatting, unit tests) on the source code, built the server, and deployed it to Kubernetes clusters.
- Implemented async unit tests for the server using Pytest, asyncio, and AnyIO for our code coverage goal of 90%.
- Implemented APIs to fetch LPRs from Google Cloud Storage (similar to Amazon S3).
- Collaborated with stakeholders to design the interface schema (JSON) of the API server.
Full-stack Software Engineer
Elevance Health
- Developed GraphQL APIs on the server in TypeScript for Node.js that fulfilled front-end GraphQL operations for user logins, user registrations, and content from our content management system.
- Built PostgreSQL schemas and migrations to support new and evolving features for the business.
- Developed content models in our content management systems (AEM, Strapi, and Contentful) that served content to the production site anthem.ai.
- Built React hooks to run GraphQL operations to fetch data from the server.
- Converted UI designs into React components and Tailwind utilities.
- Developed back-end and front-end unit tests in TypeScript/Jest.
- Built configurations for automated GitLab pipelines that linted, tested, and built Docker images of the bundle and server and deployed them to the production environment.
Full-stack Software Engineer (via Toptal)
Anthem
- Developed an event-driven messaging system with Node.js, Kafka, MongoDB, and AWS Pinpoint to deliver push notifications to the Anthem Sydney iOS and Android apps.
- Built a Node.js microservice to consume push notification requests from a Kafka topic, send push notification requests to Amazon Pinpoint, process the response, and produce messages to Kafka topics about the state of the Amazon Pinpoint requests.
- Developed a Node.js microservice to update states of messages in a MongoDB by consuming messages from a Kafka topic about the result of push notification requests to Amazon Pinpoint. The service produces Kafka messages if the database update fails.
- Developed a Node.js microservice with REST APIs to update which fitness device users of the Sydney web, iOS, and Android apps use to track their fitness data. This service is used by the Sydney web and mobile apps.
- Created features for the Anthem Sydney iOS app (https://apps.apple.com/us/app/sydney-health/id1463423283). The team was composed of 20 iOS developers.
- Built a jailbreak detection and defense mechanism for the Sydney iOS app. This mechanism detects when the Sydney app is running on a jailbroken iOS device and prevents the app from running in those cases.
- Built a large set of device integration features for the Sydney iOS app whereby users can sync their HealthKit and fitness device (Fitbit, Garmin, etc.) data with the Sydney app, using Validic as an integrator of health data.
- Merged 16 Xcode projects in four Git repos into one Xcode project and one Git repo. This mono repo effort reduced overhead on the 20-person iOS developer team during feature development and PR management. Built Ruby scripts to support the merging.
- Implemented SSL certificate pinning in the iOS app.
- Implemented a security feature in the Sydney iOS app where the app logs out the user after a period of inactivity. Used GCD timers and UIGestureRecognizer to observe touches on the UIWindow and log out the user after a period of inactivity.
iOS Security Engineer
Yinkozi
- Developed features for the Yinkozi iOS security container in Swift, C, and Objective-C. It's a library, unit tests, and a set of supporting bash and Ruby tools that provide security features for iOS apps that link with it.
- Developed features for our security container, including system call protection controls, device integrity controls (jailbreak detection), app integrity controls, binary hardening controls, app data protection, and certificate pinning.
- Developed Swift APIs to provide iOS device integrity controls (jailbreak detection) to client apps and application integrity controls such as iOS app bundle validation and the App Store receipt validation.
- Developed Swift APIs to validate the symbol addresses of imported iOS system symbols used by the container, such as symbols in the iOS keychain, FileManager, and security framework.
- Implemented data protection in Swift and C, including encrypting/decrypting app data, writing to and reading from disk, encryption key wrapping, and iOS keychain wrapping.
- Developed Swift APIs for SSL certificate pinning to provide server identification integrity for client iOS apps.
- Developed a pre-built Bash script to configure the container's source code to be built for the configuration of the client app. The configuration enables client apps to set security controls.
- Wrote a container post-build bash script to apply binary hardening to the client iOS app Mach-O, such as _cstring encryption, constants obfuscation, and Mach-O validation. Wrote scripts in Bash to obfuscate container and client app source code.
- Developed a supporting Ruby script to install and integrate the Yinkozi iOS security container into client Xcode projects using the Ruby gem Xcodeproj: www.rubygems.org/gems/xcodeproj.
- Wrote usage documentation for clients. The docs show clients how to integrate the container into their Xcode project, build the container's dependencies, import the container into the source of their iOS app, and use the container API in their app.
Senior iOS Engineer
YouVersion
- Developed new features in Swift 4 for Bible Lens, available in the iOS App Store with over 1 million installations.
- Profiled the app's memory use with instruments to find the root cause of the app crashing due to excessive memory use. Analysis of instruments showed that the app used 1.5-2 GB of memory when parsing image metadata JSON files stored on disk.
- Remodeled the app's image metadata in Core Data and refactored how the app cached, fetched, and presented the images. Used the image metadata in the view layers of the app. This provided a significant reduction in average and high water memory use.
- Internationalized and localized the app to support multiple languages.
- Developed an in-app language selection feature that allows the user to set the application language to one different from the device language.
- Built delivering local user notifications showing newly available images in the in-app language the user has selected.
- Implemented managing app dependencies with Carthage.
- Used the Fastlane framework to deploy builds to TestFlight.
- Used the Crowdin localization platform to translate localized application text (Crowdin.com).
- Implemented caching and updated the app settings using the Firebase SDK.
Senior iOS Engineer
Jumpnet
- Developed features for the Jumpnet VPN iOS app, Jumpnet VPN iOS SDK, and Jumpnet VPN iOS network extension using the native iOS VPN subsystem.
- Implemented portions of the low-level Jumpnet VPN protocol in the Jumpnet iOS SDK in Swift and Jumpnet iOS network extension.
- Installed the Jumpnet VPN iOS network extension (an application extension) as a NEPacketTunnelProvider using the NetworkExtension framework and iOS VPN system.
- Developed an in-app purchase feature for users to buy various Jumpnet subscriptions (annual, 6-month, and 1-month).
- Managed client-side communication with Jumpnet server over DTLS using Open Transport on iOS. Open Transport is a macOS and iOS framework that establishes Secure Sockets Layer (SSL) sessions to facilitate secure communication between client and server.
- Fixed bugs in the C VPN library of the server app that caused the app to crash when streaming data simultaneously on wifi and cellular.
- Debugged control packets with invalid commands implemented in a custom VPN protocol over TCP/IP using Wireshark.
iOS Developer
TruePic
- Developed the TruePic iOS SDK to upload verified media and its metadata to TruePic servers. This development was done from scratch completely in Swift 4. TruePic is a photo verification platform that authenticates photos as being unedited: Truepic.com.
- Implemented end-to-end encryption using the new iOS crypto APIs released in iOS 10. The metadata is encrypted using a hybrid scheme of RSA and AES-GCM with a 256bit hash. The metadata and the media are signed with a 256bit HMAC.
- Developed an advanced custom camera view that clients of the framework present in their apps to capture images and/or video. Media can be saved to the Photos Library or to disk.
- Made use of iOS's more than ten AVCapture APIs that capture bracketed images. This allows the TruePic backend to analyze media uploads by the SDK and catch forged photos that are pictures of a picture.
- Integrated the TruePic iOS SDK into the TruePic React Native consumer app available in the App Store: iTunes.apple.com/us/app/truepic/id1100089673?mt=8.
Senior iOS Developer | Arduino Developer
Humidifall
- Developed the Humidifall iOS app. Humidifall is a waterfall that can be mounted on a wall to control the humidity in an area. The iOS app allows the user to control the Humidifall as an IoT device; Humidifall.com.
- Built the Arduino Yun back-end for the Humidifall system using C++. I developed the back-end to be an AWS IoT client (Amazon Web Services IoT) in order to send/receive messages to/from the Arduino and upload application data from the Arduino to store in DynamoDB.
Senior iOS Developer
The Weather Channel
- Worked in a team to develop The Weather Channel’s iOS app. All the development was in Swift, except for a few minor places of integration which was developed with Objective-C. The app has approximately 200 million users in 35 languages.
- Developed the location services, networking, caching, and data model of The Weather Channel’s Apple watchOS Swift app. The watch app determines and uses the user’s current location to fetch a collection of relevant weather data to present to the user in five views on their watch, including complications on the watch face, glances, and weather notifications. The watch app can use the iOS app as a cache of weather data when the iOS app has fresh data via the WatchConnectivity framework.
- Worked in a team to develop an iOS framework in Swift for client apps to use to fetch weather data from The Weather Channel. The framework included a public API and data model to represent the parsed JSON weather data from The Weather Channel’s weather data APIs that process weather data requests which number billions per day. The Weather Channel’s production iOS App uses the framework, and it has been made available to clients such as IBM and Weather Underground.
- Developed an endpoint service type in the library that vended Observable<T> so that clients could observe weather data events for locations in the form of a latitude-longitude. For example, clients could observe a location (e.g. latitude 33.1, longitude -84.1) and then subscribe to next events in the stream. Then when the next event was observed in the stream, the client would update its view with the observed type T weather data for that location, or if the event was an error, handle the error appropriately.
- Developed the prototype for The Weather Channel’s Apple TV app on tvOS in Swift. I developed the functionality to authenticate and authorize a user with their cable provider using REST services provided by Akamai Identity Services.
- Integrated Mapbox into The Weather Channel’s iOS app in place of MapKit. We switched to Mapbox to implement custom drawing in OpenGL of weather conditions in the radar view of the app.
- Worked in a team to develop custom weather alerts, user profiles and their persistence, sign-ups, and logins with Facebook, analytics, and weather-related remote notifications, in Swift for The Weather Channel’s iOS app. Custom weather alerts include alerts in the form of remote notifications about seasonal weather events: for example, winter weather alerts. Also included was the necessary back-end support to save the user’s profile locally in Core Data and pushing and fetching it from the back-end.
Senior iOS Developer
Chick-fil-A
- Developed iOS applications for restaurant owners and staff. Implementations were done in Swift 1.0 starting in the fall of 2014.
- Developed an iOS framework from scratch that provides single sign-on for users of all Chick-fil-A apps on their devices. All Chick-fil-A apps require authentication and authorization with Chick-fil-A back-end services. The framework allows users to authenticate and authorize in one app and then switch to another app on the device and not have to login again. The framework defines keychain entitlements across the apps using the Chick-fil-A development team. The user’s credentials are stored in the keychain. The app also supports authentication with Touch ID.
- Developed Chick-fil-A podcasts from scratch—an iOS app that streams educational and news videos to restaurant owners and staff. Content metadata is fetched from Brightcove's web services, cached locally in Core Data, and streamed via the AVFoundation and MediaPlayer frameworks. I developed a custom video player and UI controls for the app, implemented in Swift 1.0., I integrated Chromecast support with the Chromecast SDK for the app to support playing videos via Chromecast. The app also supports receiving remote notifications via Urban Airship.
- Designed and developed Chick-fil-A contacts-sync from scratch—a Swift 1.1 iOS app to synchronize the user’s Chick-fil-A contacts provided by Chick-fil-A web services using the AddressBook framework. The app fetches the user’s contacts from the back-end and caches them locally using Core Data.
- Developed Chick-fil-A Campus—an iOS app that uses iBeacons and Core Location to provide location information and guiding services about the Chick-fil-A corporate campus to users as they tour the campus. Portions of the app were done in Swift 1.1.
Full-stack Software Engineer
MedQuist
- Developed Jakarta EE Web Services (Spring, JPA, JPQL, Hibernate, Oracle) that enabled administrators to manage medical transcripts from doctors' offices.
- Developed a feature to store document workflows on our enterprise workflow management system.
- Developed a feature to route and deliver documents captured from our dictation management system.
Experience
The Swift Project
https://topt.al/Vac5jkMy pull requests were merged into Apple/Swift master:
https://github.com/swiftlang/swift/pulls?q=is%3Apr%20author%3Amatthewcarroll
Sydney Health
Algorithmics Exercises
https://github.com/careercup/CtCI-6th-Edition-SwiftFunctional Programming Principles in Scala
https://github.com/matthewcarroll/Functional-Programming-Principles-In-Scalahttps://www.coursera.org/learn/progfun1/
Functional Programming Design in Scala
https://github.com/matthewcarroll/Functional-Programming-Design-In-Scalahttps://www.coursera.org/learn/progfun2
The Weather iOS App
https://github.com/matthewcarroll/TheWeatherThe app demos use of the OpenWeatherMap API, and uses CoreLocation to fetch the device location. The UI is simple, with views of the current conditions, the five day forecast, and a detail view of any one of the days selected by the user.
Education
Bachelor of Science Degree in Computer Science
Georgia Institute of Technology - Atlanta, GA, USA
Skills
Libraries/APIs
Node.js, REST APIs, iOS Extensions, React, Playwright, Pydantic, iOS Native Libraries, RxSwift, OpenSSL, Alamofire, Facebook SDK, Google Analytics API, Common Crypto, CocoaPods, Firebase iOS SDK, Mapbox iOS SDK, Fabric, PySpark, Protobuf, PyTorch, Python Asyncio, Asyncio, OpenAI API
Tools
Xcode, MongoDB Shell, Interface Builder, Auto Layout, Charles, GitLab CI/CD, Git, Jenkins, Grand Central Dispatch, RabbitMQ, GitHub, Prisma, AWS IAM, VPN, iOS Instruments, Instruments, Apple Push Notifications, Fastlane, Crashlytics, Pachyderm, React Apollo, Adobe Experience Manager (AEM), Pytest, Docker Compose
Languages
Swift, Objective-C, Python, JavaScript, TypeScript, Java, SQL, GraphQL, Go, CSS, HTML, Java Persistence Query Language (JPQL), Python 3, C++, C, Ruby, Scala, Bash, YAML, Snowflake
Frameworks
iOS SDK, Express.js, Core Data, UIKit, XCTest, Core Location, WatchKit, Tailwind CSS, Django, Hibernate, Next.js, Spring, JPA, Media Players, Play Framework, Core Bluetooth, External Accessory, Address Book, MapKit, React Native, Swagger, gRPC, Jest
Platforms
iOS, Apache Kafka, Amazon Web Services (AWS), MacOS, AWS Lambda, Apple Watch, Docker, WatchOS, tvOS, Kubernetes, Unix, Oracle, Java EE (Jakarta EE), Mapbox, Android, Firebase, Crowdin, Arduino, Keychain, Parse, Parse Server, AWS IoT, Rancher, Contentful
Paradigms
REST, Microservices, Microservices Architecture, Service-oriented Architecture (SOA), Object-oriented Programming (OOP), Automated Testing, API Architecture, Event-driven Programming, Testing, Functional Programming, Fast Healthcare Interoperability Resources (FHIR), Continuous Deployment, HL7 FHIR Standard
Storage
MySQL, JSON, PostgreSQL, Data Pipelines, MongoDB, NoSQL, Amazon S3 (AWS S3), Redis
Other
Code Review, Amazon Pinpoint, RESTful Microservices, System Design, APIs, Code Architecture, Technical Leadership, iOS Camera, Back-end, AVFoundation, Carthage, GCD, UI Testing, Software Engineering, FastAPI, CI/CD Pipelines, Technical Writing, Relational Database Services (RDS), Distributed Systems, Back-end Development, Front-end, Web Applications, Cloud, Full-stack, Full-stack Development, Authentication, Concurrency, Browser Automation, Message Queues, Data Structures, Algorithms, Multithreading, System Architecture, Software Architecture, API Integration, Call Centers, Low-level Programming, iBeacon, Card.io, Jumio, Web Services, NEPacketTunnelProvider, SSL, Transport Layer Security (TLS), Datagram Transport Layer Security (DTLS), Cryptography, Internet of Things (IoT), Security, Urban Airship, Bonjour, Apollo Server, Strapi, PIP, SBERT, JSON REST APIs, Large-scale Distributed Systems, Machine Learning, OpenAI, Open-source LLMs, Large Language Models (LLMs), AI Agents, WebSockets
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring