Vitor VenturiniOS Engineer - Swift Developer - Mobile App Development
Portfolio
About Me
Professional Background
With over 10 years of experience in software engineering, I worked with many different programming languages and frameworks. My core expertise is Swift but I am always excited to expand my skill set.
International Experience
Since 2017, I have been living and working in the Netherlands, which has broadened my perspective and enhanced my ability to work in diverse, multicultural environments. Prior to this, I lived and worked in São Paulo, Brazil.
Progressive Mindset
I approach both my work and worldview with a progressive mindset. I believe in creating technology that positively impacts society, promotes inclusivity, and contributes to a more equitable world.
Seeking a Positive Work Environment
I am specifically seeking opportunities with smaller, more agile organizations. I believe these environments often foster more creativity, allow for greater individual impact, and maintain a healthier work-life balance.
Budget Thuis
Budget Thuis is an energy supplier in the Netherlands. I own iOS development for the Energy domain of its app, used by more than 1.2 million customers, building features for contracts, tariffs and consumption insights.
Role: Senior iOS Engineer.
Highlights
Own iOS development for the Energy domain: contracts, tariffs and consumption insights.
Implemented a new visual identity together with the design team.
Improved accessibility to meet WCAG 2.2 AA, including VoiceOver.
Work closely with Android, Backend, Design and Product to solve problems, improve existing features and deliver new ones.
MOJO is a free, ad-free music player that brings your scattered music collection together in one place. Import tracks from YouTube, YouTube Music, Bandcamp, and SoundCloud, and MOJO organizes everything into a clean library by artist, album, and playlist, with a built-in player. Everything lives on your device: no cloud required. It is the mobile evolution of Musicalibre, the original web app.
Role: Founder and sole developer, from product and design to both native apps and release.
Highlights
Shipped native apps on both platforms: Swift and SwiftUI on iOS, Kotlin and Jetpack Compose on Android.
Built a multi-source import pipeline that turns tracks from different platforms into one consistent library.
Built CI/CD pipelines for different app variants: Debug, QA, Alpha and Release (Prod).
Designed a custom dark design system (amber accent) applied across Library, Now Playing and Search.
Growing an organic early user base with no paid promotion.
Design
Designed the UI in Wonder: one “Mojo Player” file with an artboard per screen (Library, Album Detail, Artist Detail, Now Playing), in dark and light variants.
Design tokens (colors, typography, shapes) were read straight from the artboards into a token layer in code, so screens never use raw hex values.
Reusable Wonder pieces (tab bar, mini player, pills, media cards, track and album rows) became a shared component layer, and each screen is composed from it.
Every screen and component is guarded by screenshot tests, so the build stays faithful to the design.
LibraryAlbum DetailArtist DetailNow Playing
Backend
Built the MOJO backend in Python with Flask, exposing a REST API consumed by both the iOS and Android apps.
The API receives a track link, resolves it on the source platform and returns the audio and metadata for the app to store locally.
Appron is an internal app made by IBM for KLM. It is exclusive for iPad and mainly consists on a checkup list for all flights. It is fed by different subsystems and shows the number of passengers, luggages, fuel, dangerous goods, delays, estimations, containers, etc.
Role: Senior iOS Engineer.
Highlights
Built and maintained iPadOS apps for ground and flight crews, supporting safety-critical load and balance workflows.
Connected the apps to REST APIs and backend systems providing aircraft weight, passenger, luggage, cargo and fuel data.
Sonora is an app for foley artists and sound explorers: type a word and it becomes a sound on your screen. Mix 'tropical rain' + 'helicopter flying' + 'battlefield', drag the sound objects around to shape volume and panning, and add effects to each one. It started as a Godot app for iOS and Android and was later rebuilt as a native Android app.
Role: Sole developer, from concept and sound design to both store releases.
Highlights
Built the original app in Godot with GDScript and shipped it to the App Store and Google Play from one codebase.
Integrated the Freesound API: text search plus a “word + number” syntax that finds sounds around a given BPM (for example “Techno 120”).
Every search result becomes a draggable sound object with its own audio bus, so each sound gets independent volume, pitch, looping and effects.
Covered the core (effects, sound objects, API, input) with unit tests using the GUT framework, run on GitHub Actions.
Native Android rewrite
Rebuilt the app in Kotlin and Jetpack Compose to get true multi-touch: every bubble handles its own pointer events, so several sounds can be dragged at once with different fingers, which Godot’s input model did not allow cleanly.
Wrote the audio effects by hand as Media3 audio processors: reverb (Freeverb, with room, hall and plate presets), delay (slapback, ping-pong, tape), chorus, phaser, flanger, distortion, filter, compressor, bitcrush glitch and stutter/repeat.
Designed a custom rotary knob control and a color-coded effects panel in a bottom sheet.
Added recording of the full mix with Android’s playback capture, saved as WAV and ready to share.
Multi-touch dragging is covered by instrumented UI tests.
Mingle Sport is a platform for grassroots sports. I led iOS development, including video processing for live matches that combines video with body-pose detection and gyroscope data for real-time sports analysis.
Role: iOS Lead.
Highlights
Built video processing for live matches, combining video with Vision body-pose detection and gyroscope data for real-time sports analysis.
Set up CI/CD and App Store release automation with Azure DevOps.
Tech
Swift, SwiftUI, Clean Architecture, video processing, Vision, CoreMotion, Swift Package Manager, XCTest, Azure DevOps, App Store Connect
At Deloitte I built enterprise iOS applications, including a solution that uses Vision to report defective machines at the office.
Role: iOS Engineer.
Highlights
Built enterprise iOS applications for internal use.
Built an app that uses Vision and CoreML to recognise and report defective machines at the office.
Tech
Swift, UIKit, Vision, CoreML, MVVM, XCTest, CI/CD
Client:
Deloitte
Date:
2019-2021
Service:
Enterprise iOS
Itaú Bank
For Itaú bank, we created the mobile banking app from scratch. This is one of my favorite works and it has opened many opportunities to me. The app is rated 4.7 on App Store Brazil and it has more than 1,3 million evaluations.
Role: iOS developer, responsible for UI components and screens.
Highlights
Part of the team that created the app from scratch.
Built the UI components: custom alerts, virtual keyboard, buttons, styles and menu.
Built screens for billing, transfers, chat, payments and favorite shortcuts.
For Safra bank, we built a very detailed prototype of the mobile banking app, covering its main features and screens, and tested it directly with users.
Role: iOS developer on the prototype team.
Highlights
Built a detailed prototype with the main features and screens: invoice, investment charts, card billing, chat, payment log and shortcuts.
Interviewed users with the prototype in hand, collecting instant feedback on what they liked, disliked and wanted improved for the next version.
Design your future home and shop for home furnishings through an immersive Augmented Reality experience with Curate by Sotheby's International Realty(sm) brand powered by roOomy. Built as a visualization tool for homebuyers, renters and real estate agents, it lets you see how furniture and décor will look, feel, and fit as you envision your home. Interact with the products you love and tap to purchase them on retailers' websites.
Role: iOS developer in a small team that built the app from scratch.
Highlights
Augmented Reality furniture and décor placement built on ARKit.
Universal app, supporting both iPhone and iPad.
Structured with the VIPER architecture.
Worked with CI/CD, code reviews and unit testing as part of the team workflow.
Tech
ARKit, SceneKit, VIPER, ReplayKit, CoreData, CI/CD, unit testing
Bela is a tiny wallpaper and screensaver web app. It fills the screen with photos and scrolls through them one at a time, endlessly, turning any idle screen (TV, tablet, laptop) into a photo frame.
Role: Sole developer.
Highlights
Single-page React app with no backend: it runs entirely in the browser and is deployed as a static site on GitHub Pages.
Photos auto-advance every 10 seconds and are centered on screen whatever their orientation, portrait or landscape.
Started with Unsplash as the photo source, then moved to the Google Photos Picker so people can use their own photos.
Picked photos are downloaded once and cached in IndexedDB, so the screensaver keeps working after a reload without signing in or picking again.
Google sign-in is handled with Google Identity Services and silent token renewal, with no server-side secret.
Tech
React, JavaScript, Google Photos Picker API, Google Identity Services, IndexedDB, GitHub Pages