Fred Cruz – Sr. iOS Developer
Sr. iOS developer with 8years of experience in native iOS mobile development with 8 applications published into the app store and adept in Objective C and Swift
Led Agile environments doing bi-weekly demo meetings and using client’s feedback to prioritize features to deliver, creating a transparent work environment that improved the planning and review sessions for the Agile team
Mentored junior iOS development teams in coding best practices, architecture design patterns and Apple frameworks, resulting in a better developer productivity workforce that reduced the amount of unsound code generated by junior developers and maintaining a documented and structured development life cycle
Led the complete mobile app feature life cycle, including the iterative process of planning, designing, developing and testing, minimizing the refactoring process, helping to deliver features on time, in addition to considering client needs and team qualifications
Well experienced in reducing the amount of time needed to design the core code base of the project using architecture design patterns like Singleton, Delegation, Notification and Observer, resulting in a faster problem-solving environment
Skilled in increasing the app user downloads by creating an intuitive UI and UX using custom UI controls, XIB, Autolayout and Size Classes, which impacts heavily in customer app retention
Implemented persistent class managers to efficiently save data on the user’s devices, using Core Data, User Defaults and SQLite, avoiding app reliance on network connectivity, minimizing the odds of offering a sluggish and unpredictable user experience.
Skilled in ensuring safe sensitive data storing using Keychain, preventing the data being steal from the user’s device and implementing Touch ID to avoid identity theft, boosting app security and reducing dependencies in third party encryption libraries.
Adept at reducing bugs in new and existing application features implementing a TDD approach, using XCTest, speeding up the development process by eliminating sound code.
Implemented a multithreading manager class using GCD and NSOperation to improve performance and concurrency of the app.
Skilled in memory management using ARC and MRR to ensure the device’s memory is efficiently used along the life cycle of the app, using Xcode profiling tools to detect leaks, allocations or zombies and avoiding the creation of energy-consuming applications
oApple Human Interface Guidelines
oApple Push Notifications
oAutomatic Reference Counting
oCocoa Touch Framework
oKey Value Coding
oKey Value Observer
oMemory Retain Release
oQuick and Nimble
oSwift (1 – 5)
Sr. iOS Developer – Walmart, Bentonville, AR
March 2021 – Current
Project: Walmart Wellness App
Walmart Wellness app makes it simpler to take care of yourself and your family. Easily manage medications, keep track of your health, and store important information in a single, easily accessible place.
Part of Agile dev team involved on the release of Wellness 2.0.
Using Scrum with Jira cards and a Kanban Board.
Migrating Objective-C code to Swift 5 code.
Removing unused modules in the app.
Removing unused code in the app.
Using CocoaPods to load all third-party frameworks and manage dependencies.
Utilizing Core Data for persistence.
Modifying existing libraries to use custom components such as personalized activity indicators.
Creating new screens for the new flows.
Creating App Review Widget to enable adding reviews on the App Store.
Creating Connect to Pharmacy Widget with different business rules for the user.
Creating Digital Vaccine Record Widget to get the record if you received your vaccines at Walmart.
Creating COVID vaccination card to remember the vaccine was available at Walmart.
Creating new screens to display if you detect that the user is already using Glass Walmart Application (you can decide if use those credentials or not).
Creating Refill Ready widget to inform the user about medications ready for refill once the user is connected to Walmart Pharmacy.
Performing various UX design and programming alterations to improve the user experience.
Using GraphQL to execute queries and get information from backend.
Converting information from backend to present as PDF to the user.
Applying Quick and Nimble unit test framework and writing unit tests.
Integrating Firebase Crashlytics and analytics services to best track user usage and crash reports.
Applying CocoaLumberjack logging framework to the iOS development and testing process.
Sr. iOS Developer – US Bank, Denver, CO
February 2020 – March 2021
Project: US Bank Access Online Mobile
U.S. Bank Access Online Mobile is designed for commercial card customers who want secure, anytime access to their U.S. Bank Corporate Travel, Purchasing, or One Card accounts.
Integrated Swift 4 into Objective-C codebase using the XCode IDE
Utilized MVC for the app architecture
Implemented account search using UITableViews and UINavigationController to display results and details of the found accounts, including the status of the account and declined authorizations
Implemented ability to control credit and single purchase limits from the account details screen
Implemented new menus for program admins using SWRevealViewController library while retaining the original functionality for cardholder users
Implemented the ability for hybrid users to switch between cardholder and program admin roles
Utilized VersionOne for Agile project management
Implemented analytics using Adobe Analytics to track user interaction with the app to help inform business decisions
Used Storyboards to implement the UI design retrieved from InVision
Integrated various APIs into the app using the Firebase SDK
Participated in various Agile SCRUM ceremonies, such as sprint planning and daily standup meetings
Sr. iOS Developer – Capital One, McLean, VA
April 2019 – January 2020
Project: Capital One Mobile
Access your accounts lightning-fast by using Face ID, Touch ID or SureSwipe®, personalize your app with a greeting name and profile picture — even check and monitor your credit score for free with CreditWise®. Also, you can now monitor your Credit Card purchases in real time with Instant Purchase Notifications. Get all the details you need anytime your card is used to make a purchase – just an extra layer of security!
Led the implementation of Walmart Credit Card release
Implemented the redesign for the paperless flow in the app
Created new tiles using Xibs that were shown to the user based on information in JSON files
Replaced table views with collection views in select locations where the app needed the extra control provided by collection views
Utilized MVVM for the tiles to have proper separation between the business logic and presentation logic
Led the charge in fixing test suite using the KIF framework
Worked on removing the KIF framework and migrate to using the Robot design pattern with XCTest framework
Migrated the deeplinking implementation from Routekit 2 to Routekit 3
Migrated some of the VIPER-architected code to MVVM due to VIPER over-abstraction
Refactored analytics implementation to make the implementation easier to use
Refactored implementation for localization for ease of use
Fixed issues with VoiceOver to satisfy accessibility requirements
Sr. iOS Developer – Domino s Pizza, Ann Arbor, MI
May 2018 – March 2019
Project: Driver’s App
Mobile application for franchise drivers to self-manage pizza delivery, supporting route management, manage and track delivery time, provide turn-by-turn directions, and improve customer engagement and store communications. Additional features include real-time order/delivery rearrangement, invisible driver mode (no order receipts), and tip tracking.
Built in Swift 4 using Xcode 10
Liaised with business and technical stakeholders to proposed new designs and best practices and implementations, including reactive design patterns, to improve app performance and usability for clients
Created new screens, toolbars, and prototypes UI/UX redesign
Redesigned call management screens using UI mockup designs for calling such as speakerphone, mute, keypad, hangup, customer names, call start, call duration, and Call 911
Implemented drawer screen to display call, order, and store information with custom controls using the PullUpController third-party library
Leveraged HereMaps and Google Maps APIs to redesign UI/UX for map and location features
Implemented calling features with Twilio and CallKit with business logic to correlate information to UI
Added tracking for app state, user actions, and error-reporting with Adobe Analytics
Managed third-party dependencies and frameworks using both Carthage and CocoaPods
Worked on new Tip Tracker feature for visualization and custom interaction for drivers to save and modify cash tips
Improved performance of network requests with internal API for driver informationa and requests
Collaborated with back-end team to improve API transactions with their own Java SDK and liased for minor API changes
Cooperated with development team to performed testing of new features, UI, and changes
Worked with QA team to improve testing with automation throughout app using Appium
Reviewed analytics information to determine opportunities for app improvement and proposed suggestions to team and stakeholders
Performed code reviews with pull requests for new features
Sr. iOS Developer – Coinbase Inc., San Francisco, CA
January 2017 – May 2018
Project Title: Coinbase
Application for storing bitcoin securely in a bitcoin wallet, users can buy or sell bitcoin directly from the app, this application let users register bank accounts, PayPal, credit or debit cards to make transactions, this application lets users to send money to friends or shop in stores that accept bitcoins, users can keep track of bitcoin price changes, users can send bitcoin via email or QR code.
Worked hand-by-hand with team’s product owner, deciding the best technologies to use to fulfill the client requirement and delivering responsibilities to the junior developers of the team, achieving a boost in productivity
Mentored junior developers in coding best practices, architecture design patterns and Apple Frameworks, reducing the amount of unsound code generated by the development team
Implemented MVVM for the architecture of the project, using Model for business logic and ViewModels for binding the information with the View, this for generate an easy to test code foundation
Worked with Coinbase Wallet API to create a new bitcoin wallet and get information about existing wallets such as balance and transaction history
Used OAuth2 protocol to securely store bitcoin private keys information, assuring user’s identity with a two-factor authentication process
Experienced using Wallet API to create user accounts and send money from primary accounts to specific account address or email address, configuring the transaction’s amount and currency
In charge of migrating PayPal iOS SDK to PayPal Express Checkout in order to simplify the checkout experience for users, letting them use their PayPal balance, bank account or credit card to buy bitcoins directly in the app
Experienced using Coinbase Commerce API in order to dynamically create charges, generating payment addresses on user’s behalf, this allows to continuously monitor the blockchain to detect when payments are made
Used Starscream to provide websocket connectivity in order to connect with GDAX API to guarantee real-time feed for bitcoins trades activity and bitcoins price changes
Implemented AVFoundation and AVCaptureSession in order to create a QR scanner to generate account addresses using AVCaptureMetadataOutput, this for allowing users to send funds using QR codes
Experienced working with TLS and App Transport Security in order to allow the app to connect to higher version of TLS servers and protect the user’s sensitive data traffic
Created a custom chart view using CAShapeLayer and CGAffineTransform in order to generate an IBDesignable class that was implemented for the developers of the team as the main view to create bitcoin charts
Made use of XIB, Constraints and Size Class in order to create decouple views, improving the user experience by supporting different screen sizes
Implemented a TDD methodology using XCTest to create Unit and UI test cases, increasing the security level of the app by adding test cases of the critical bitcoin transactions
Sr. iOS Developer – New York Community Bank, New York, NY
July 2015 – December 2016
Project Title: NYCB Mobile
Application that provides access to account transactions and balances, this application implements APNS in order to send real-time account alerts, users can transfer money between NYCB accounts, this application implements a “Remember Me” function for easy login, this application implements e-Bills in order to schedule payments, it also implements Popmoney to send and receive money using an email address or mobile number, this application uses Core Location in order to locate nearest ATMs using user’s current location.
Led QA meetings to review releases provided to the client, and developed policies and procedures related to maintain high levels of productivity and customer satisfaction
In charge of refactoring the architecture of the project from MVC to MVVM, by organizing the project into small and logically pieces of code, separating concerns between models, views and view models
The project was developed using Swift
Implemented a Network Manager using URLSession in order to manage NYCB API requests, allowing the application to receive user’s transaction and balance information
Made use of JSONSerialization in order to create the model objects for the user session, balances, transaction and accounts, resulting in the model objects foundation for the entire project
Worked directly in the “Remember Me” feature of the app, used Keychain in order to store user credentials securely in the device and implemented Touch ID and Face ID for the login of the app, letting the user to authenticate faster
Implemented e-Bill API in order to schedule payments, maximizing user benefits by reducing data management and enabling self-service account
Used Apple Push Notification Services (APNS) in order to send account alerts to the users, boosting the communication security between in-app information and NYCB cloud services
Made use of GCD in order to create an asynchronous network layer to communicate the app with Popmoney services and securely send and receive money using TLS and App Transport Security protocols
Implemented a Core Location manager in order to locate nearest ATMs based on the user current location
Worked with Mapkit to show Overlays and Annotations in order to indicate the faster route and points of interest
Designed and created custom XIB to show user account details in customizable table views and table cells, working directly with constraints and size classes to ensure UI reusability
Used Xcode profiling tools in order to fix zombies, leaks and allocations, resulting in an app that consume memory resources efficiently and has a balance between performance and battery life
In charge of managing changes made to the code of the project, implementing tools like Jenkins and GIT, allowing the developers of the team to switch back and forth between different project versions using easy terminal commands
iOS Developer – Zom LLC, Las Vegas, NV
September 2014 – June 2015
Project Title: Zom Mobile Messenger
Chat application that let users to connect with friends without phone or email registration, it enables friend code sharing using QR codes, this application manages voice messages, the application implements stickers that can be share across different apps.
Worked directly in the login of the app, implementing User Defaults to validate the user session by sending to the server a unique HTTP post request
Responsible of implementing a NSMutableURLRequest to encode a post request and share user credential between the app and the company’s network layer
In charge of validating the client TLS certificate by storing the public PEM key locally in the device and initializing certificates with contents of file in order to establish a trust connection with the server
Used AVAudioPLayer and AVAudioRecorder in order to play and record sound files, being able to reproduce audio of any duration and in any audio format available in iOS
Implemented Alamofire in order to upload audio files to a server using a multipart form data technique, allowing the application to upload heavy audio files asynchronously without affecting the UI
Worked directly in the UI of the app, implementing an UITabBarController and an UINavigationController achieving an easy app navigation and friendly user experience
In charge of configuring the push notifications’ content-available property in order to make notifications visible even when the application is running in the background, letting users to receive messages when they are directly or indirectly using the application
Developed an UIImage extension to download images in a background thread, downloading newer stickers directly from the server
Implemented UIImagePickerController and UIImagePIckerControllerSourceTypeCamera in order to access to the device’s camera, allowing users to take pictures directly from the app
Made use of UIImagePIckerControllerSourceTypePhotoLibrary in order to access to user’s camera roll and attach images to messages by controlling the image selection behavior with UIImagePickerController delegate
iOS Developer – Priority Pass LTD, Dallas, TX
June 2013 – September 2014
Project Title: Priority Pass
This free app is designed to assist Priority Pass members in finding an airport lounge anytime, anywhere by searching Priority Pass database of over 700 lounges worldwide. It allows users to search for a lounge by typing city or airport name as well as by scrolling through lists.
UIControls appearance customization using programmatic statements, this included: UIButoons, TabBar, TableView, UIViews, UIImageViews and UILabels
Use of core location to determine the nearest lounge to the user
RESTful web service consumption using NSURLConnection with XMLParsing to request lounges location from the database
Used Geocoding and reverse geocoding to determine the address of the location and vice versa
Stopped CLLocationManager when the app was moved from foreground to background to save battery
Singleton SQLite implementation to save the favorites and the most recent visited lounges
Backtracking of the application using NSLogs, Breakpoints and Xcode tools to trace initial declarations
Software Developer – AT&T México, Mexico, MX
April 2010 – May 2013
Masters Degree in Software Engineering – Universidad del Pedregal
Bachelor of Science in Computer Systems and Telematics – Universidad del Pedregal