Post Job Free
Sign in

Senior IOS Developer

Location:
Sunnyvale, CA, 94089
Posted:
November 07, 2024

Contact this candidate

Resume:

Thong Nguyen

Lead iOS Developer

Phone: 858-***-****; Email: **********@*****.***

Profile Summary:

Experienced iOS Developer with over 15 years of building high-quality iOS applications, spanning multiple successful app launches and deep technical knowledge. Overall 17+ years of experience in IT.

App Development: Launched 6 apps on the Apple App Store.

Technical Skills: Proficient in Swift (versions 1 through 5.10), Objective-C, C++, JavaScript, and Object-Oriented Programming (OOP).

Architectural Patterns: Expertise in MVC, MVVM, MVVMC, VIPER, and Clean Architecture.

UI Development: Skilled in SwiftUI, XIBs, Storyboards, and programmatically creating UIs with Auto Layout and Size Classes.

SwiftUI Expertise: In-depth understanding of Navigation Stack/Link, View Builders, Lazy Stacks, Geometric Proxies, and advanced property wrappers (State, Binding, StateObject, ObservedObject), including Hosting View Controllers.

Design Patterns: Knowledgeable in Observer, Façade, Singleton, Builder, KVO, Notifications, and Protocols & Delegation.

UI/UX Design: Specialized in designing engaging and intuitive user experiences that enhance user retention.

Frameworks & Tools: Experience with CoreData, Combine, WebKit, MapKit, UIKit, Core Graphics, Core Location, AVFoundation, CloudKit, WatchKit, and more.

Third-Party Libraries: Proficient with Firebase, SwiftLint, AlamoFire, SDWebImage, Crashlytics, Core ML, ActivityKit, WidgetKit, and WeatherKit.

Wireless Tech: Familiar with short-range communication protocols, including Wi-Fi, Bluetooth, and NFC.

Concurrency & Async: Proficient in GCD, Operations, Combine, URLSession, Async/Await, and Actors.

Reactive Programming: Expertise in Combine, RxSwift, and RxCocoa.

Testing & Debugging: Advanced knowledge of XCTest, LLDB, Breakpoints, Instruments, and performance optimization.

Cloud Services: Implemented Firebase Realtime Database, Cloud Messaging, and push notifications.

Performance Tuning: Skilled in Instruments, Memory Leaks, Thread Sanitizer, Main Thread Checker, and other performance monitoring tools.

Version Control: Hands-on experience with Git, GitHub, SourceTree, Bitbucket, and Bitrise.io.

CI/CD: Proficient in Jenkins, Fastlane, AzureCI, and CircleCI for continuous integration and deployment.

Package Management: Extensive usage of Swift Package Manager (SPM), CocoaPods, and Carthage.

Agile & DevOps: Strong background in Agile Scrum, Kanban, TDD, and continuous integration practices.

Lifecycle Management: Comprehensive knowledge of the full mobile development lifecycle from design to deployment.

AR/VR Development Expertise: Extensive experience leading iOS projects utilizing RealityKit and ARKit for immersive augmented reality experiences, from conceptualization to deployment.

Team Leadership: Proven leadership in mentoring and working closely with cross-functional teams.

Crash Analytics: Proficient in utilizing Firebase Crashlytics for diagnosing and resolving issues.

Data Insights: Leveraged Grafana dashboards for real-time data analysis.

Project Initiation: Extensive experience in setting up greenfield projects and developing architectural documentation.

Technical Skills:

Programming Languages: Objective-C, Swift, JavaScript

IDE & Tools: XCode, JIRA, Confluence, SourceTree, Git, GitHub, SVN, VS Code

Architecture and Design Patterns: MVC, MVP, MVVM, Delegation, Decorator, Factory, Builder, Singleton, Visitor, Proxy, Interpreter, Command, Flux

UI/UX: Storyboards, AutoLayout, Interface Builder, XIBS

Frameworks/Libraries: RealityKit & ARKit, RxSwift, RxCocoa, Cocoa Touch, Cocoa Pods, Core Audio, CloudKit, UIKit, Core Animation, Fabric, Crashlytics, CorePlot, MapKit, Metal, Core Bluetooth, Reachability, RxAlamoFie, SwiftyJSON, Swinject, Realm, React Js, React Native

Continuous Integration: Jenkins, GitLab, Bitrise, Github

Database, Data Persistence: Core Data, SQLite, Realm, Firebase

Project Methods: Agile, Scrum, Test Driven Development, Pair Programming

Web Services: Alamofire, AFNetworking, REST, Soap, XML, JSON

Quality Testing and Troubleshooting: GCD, Instruments, Allocations, Leaks, Zombies, LLDB, Unit Tests, Functional Testing, Test Flight, Charles Proxy, Jest, Cypress, Detox

Services: Apple Push Notification Services (APNS)

Media: AV Foundation

Professional Experience:

ASDA - Walmart Labs, Sunnyvale, California July 2019 - Present

Lead iOS Developer

App: https://apps.apple.com/gb/app/asda/id396089960

Description: The app allows users to shop for groceries and to make reservation for delivery or pick up. The app is only available to the UK. The user base can select from a wide variety of grocery products, select various stores in their region to see what is available, allow for store pickup, delivery, creating a favourite to-do list, as well as customize your shopping experience using the user’s purchase history and preferences.

Participated in code reviews to ensure code quality and conformance with code style.

Helped to understand implementation of a new feature for iOS and Android platform, and ensuring that implementation of feature flag, needed to control release of feature, is understood and similar across platforms.

Aide in migration of internal frameworks to CocoaPods as well as migrate third party dependencies in Carthage to CocoaPods.

Monitor crash rates in Firebase to identify crashes needing attention and prioritizing them on a weighted basis.

Designed and developed custom SwiftUI components and views, adhering to Apple’s Human Interface Guidelines, to create visually consistent and interactive user interfaces that enhance the user experience on iOS and macOS platforms.

Optimized SwiftUI views for smooth performance, leveraging efficient data handling with Combine and reducing memory usage to ensure responsive interfaces, even with complex UI hierarchies.

Mentored teammates to understand concepts used in app.

Utilized Paired Programming sessions to bring new teammates up to speed with the code base as well as general mentoring to adhere to best practices and following the application architecture.

Helped to identify and resolve code issues/blockers and assist teammates with their blockers.

Large code base with significant amount of legacy code. Created many adapter patterns to conform old code to work with new code and transfer older models to newer models as legacy features slowly were phased out and removed.

Integrate Firebase into app using Remote Config feature through an abstraction layer.

Quickly troubleshot defects to provide a resolution with minimal changes if possible following best coding practices via the SOLID principles.

Used Charles Proxy to capture responses and replay them with needed modification to keep from being blocked when possible if testing environment is down or functionality is not yet developed.

Frequent updates with QE to ensure they have download link to the latest build of app for testing through the integration of Looper and TestFlight.

Worked closely with full tech stack directly interacting daily with product owners, QE, UI/UX designers, developers (iOS, Android, and Backend), including working with offshore teams.

Agile environment with 2-week sprints and a monthly release schedule, later moved to a bi-weekly release schedule.

Robust and modular application architecture with MVVM-C utilizing Inversion of Control via an application context.

Tech Stacks: Jira, Confluence, Github, Xcode, Swift, Objective-C, Looper, Brew, CocoaPods, Postman, Charles Proxy, SwiftGen, Firebase, MVVM-C, XCTest, Carthage, RxSwift, Promises

Macy’s, San Francisco, CA July 2018 – Jun 2019

Sr. iOS Developer

App: https://itunes.apple.com/us/app/macys/id341036067

Support existing app by developing new features and fixing found defects. Development done in a small, to medium size group of iOS, Android, quality engineers, and project managers, using Agile methodology, within a larger organization of many other developers, quality engineers, project managers, etc.

Tech Stacks: Jira, Confluence, Git, Xcode, Swift, Objective-C, Jenkins, Bash, CocoaPods, GitLab Quickly came up to speed with using development pods in CocoaPods to separate functionality of existing app to easily manage the growing code base.

Reviewed fellow developer’s code to ensure the established coding style is followed, and that no obvious errors are present in the reviewed code.

Used my knowledge of the iOS platform and my experiences to help fellow developers to discover errors in their code, such as Swift syntax errors, or when Interface Builder in Xcode is giving an error due to the specified constraints.

Able to quickly develop new features by gathering required information to work on it and creating the needed UI, using Auto Layout, and the needed code following established patterns, such as VIPER.

Provided thoughts and suggestions to estimate work effort to better plan workload for the team that closely matches actual results.

Ensure that new features worked on was documented during development to provide record of the logic, and network services that is consumed for the feature.

Proficient with using Jira to create and manage tickets.

Helped junior developers to effectively use the Swift programming language to express their solution that aligns with the language’s approach.

Quickly reviewed and created patch for bugs assigned to me with average turnover of one day.

Helped other developers with rebasing their branches to prepare for creating merge requests to the master branch of the main repository.

Added a new input field to an existing view so that a customer can check availability of a product before they can add to their bag.

Modified existing logic at checkout to prompt user when an item is not available for shipping to provide them a chance to change to a different address or take them back to their bag.

Fix NIB files to remove unsatisfiable constraint warnings without breaking existing layout.

Removed flickering on a table view due to multiple calls to reload in the update logic.

Charter Communications, Denver, Colorado Dec 2013 – July 2018

Sr. iOS Developer

Delivered expert maintenance and enhancement of various media mobile apps featuring News and Sports per business requirements. This Spectrum Video project afforded the opportunity to work on live streaming video, video on-demand, as well as news magazine. Responsible for maintaining existing apps, developing new features and app as needed.

Spectrum SportsNet, Spectrum Deportes, Spectrum News Mobile Apps

SportsNet/Deportes: This iOS multimedia mobile app lets users watch sports with video on demand, stream local news live, and read articles and associated videos as well as available shows.

https://itunes.apple.com/us/app/spectrum-sportsnet/id563316826?mt=8

https://itunes.apple.com/us/app/spectrum-deportes/id563321030?mt=8

https://itunes.apple.com/us/app/spectrum-news/id740948885?mt=8

Worked with other developers on the team to ensure that products deliver similar user experiences for iOS and Android platforms. Collaborate with product owner to ensure that business requirements are implemented timely and that any technological or platform limitations are addressed.

Developed the iOS mobile app in Swift and Objective-C using Xcode.

Created custom presentation animations.

Created new build scripts and updated existing build scripts using Python and Ruby.

Refactored code in the SportsNet iOS app using Swift 4.

Refactored code in existing apps to a hybrid codebase of Swift and Objective-C.

Implemented new features and functions in the iOS mobile app with Swift.

Migrated the rest of the legacy code base from Objective-C to Swift as time permitted.

Led the design and implementation of the MVVM architecture across multiple iOS projects, separating business logic from the UI to enable easier testing, maintainability, and scalability of the app’s codebase.

Built robust ViewModel components to manage data binding between the Model and View layers, leveraging Combine and reactive programming techniques to update the UI seamlessly in response to real-time data changes.

Managed use of Jenkins Continuous Integration server; created builds for testing and production.

Used Git as the code repository and managed version control with Git

Use of design patterns in the iOS app architecture such as delegate, KVO, decorator pattern, and Promises/Futures

Made use of RESTful API to integrate with internal services and third-party services.

Implemented Firebase push notifications.

Used IGListKit to drive display of content to UI.

Used GCD and NSOperationQueue to improve app responsiveness and performance.

Made Use of UINavigationController and UITabController, and create a container with UIViewController, and used constraints to layout the UI.

Handled location services with MapKit and CoreLocation.

Tools: Swift, Objective-C, Ruby, Python, Xcode, Jenkins, AVFoundation, Cocoa Touch, UIKit, Git, IGListKit, CoreLocation, MapKit, WebKit

TWC News

Implement new feature to display closures for a region

Optimize, refactor and debug views and layout hierarchies

Refactoring of code to use native controls instead of WebView to display content

Create UI based on comps and wireframes

Work iteratively with Product, Design, Back-End and QA teams

Implement tablet version of app Support testing team during test cycle to address issues found before release

TWC SportsNet (RSN)

Conduct analysis of organizational needs/goals for the development and implementation of redesign

Redesign app to create user interface targeting multiple device sizes integration of third-party content library

Tools: UIKit, RESTful Web Services, Agile Scrum Development, HTML/CSS, Jira, Charles Proxy, Jenkins, TestFlight

Huntington Bank, Columbus, Ohio Aug 2011 – Nov 2013

iOS Developer

https://apps.apple.com/us/app/huntington-mobile/id441599004

The Huntington Mobile app offers a convenient way to bank on the go, allowing users to view account balances, deposit checks, transfer funds, pay bills, and locate nearby ATMs or branches. With features like quick balance view, biometric login, customizable alerts, and mobile check deposits, managing your finances is easier and more secure than ever. Stay updated with the latest features as they roll out, and enjoy a streamlined, user-friendly experience—all for free.

Developed a secure and user-friendly iOS banking app for Huntington Bank using Swift and Objective-C.

Built the app in Xcode, initially in Objective-C, and began transitioning code and developing new features in Swift.

Implemented a robust and scalable architecture with a focus on modularity and code maintainability.

Utilized the MVVM design pattern to ensure a clear separation of concerns.

Translated design specifications into visually appealing user interfaces that adhered to Apple's Human Interface Guidelines.

Integrated animations and transitions to enhance user experience.

Implemented secure user authentication with biometric methods (Touch ID, Face ID) and encrypted data storage.

Integrated various banking APIs for real-time data fetching related to accounts, transactions, and balances.

Enabled mobile wallet integration, allowing users to securely add cards to popular mobile wallets.

Implemented push notification services for security alerts and integrated with Apple's Notification Center.

Wrote Unit and UI tests with XCTest and XCUITest to ensure optimal code coverage, following a TDD approach.

Integrated voice commands using SiriKit for hands-free account management.

Collaborated with other iOS and Android developers to ensure consistency in features and user experience across platforms.

Utilized cross-platform technologies where applicable and conducted thorough unit testing.

Employed Git for version control to facilitate efficient collaboration within the development team.

Actively participated in Agile/Scrum methodologies, enabling iterative and incremental development.

Ensured adherence to Apple's App Store guidelines for seamless app submissions and updates.

Contributed to delivering a secure, efficient, and user-friendly banking experience for Huntington Bank's iOS users.

Tools: Objective-C, Xcode, REST, RESTKit, CorePlot, UI/UX, XCTest, UIAutomation, NSURLConnection, JIRA, Localytics

Plus Sports, Bristol Connecticut Feb 2009 – Jul 2011

iPhone Developer

https://itunes.apple.com/au/app/all-in-fitness-1000-exercises/id571227995?mt=8

Designed, implemented code to download and display fitness exercises for both men and women to user

Implemented Facebook API to allow customers to share their fitness progress with updates on Facebook

Used GCD to make requests to web service on separate thread for fitness exercise data

Implemented UI based off wireframes from design team

Designed code base for parsing JSON based response

Fixed bugs using Instruments and Static Analyzer

Developed and ran unit tests

Documented all aspects of code including code that was already developed with Microsoft Word

Tools: Objective C, iOS SDK, Mac OS, iOS Simulator, Cocoa frameworks, Grand Central Dispatch, Instruments, Static Analyzer, Facebook, SenTestingKit, NSJSONSerialization, Microsoft Word

KWC Engineers Jan 2007 – Jan 2009

Technical Support

Hardware and software installation and troubleshooting.

Used VBScript to automate installation of AutoCAD.

Wrote and documented software to replace existing paper-based sign-in sheet using

Microsoft SQL Express as database back-end.

Wrote and documented software to aid outside client in managing their inventory visually.

Education:

Bachelor of Science from University of California, Riverside



Contact this candidate