- Professional with 7 years of experience in the IT field, with over 6 years of experience developing native iOS applications using Swift and Objective C and with 5 applications published in the app store.
- 3 years of experience as a lead developer, highly involved in communications with a complete development team including testers, cloud and CI developers, working with them in order to integrate ideas and deliver application features considering cost and time
- Leadership in Agile environments using Jira, Slack and GIT repositories, adapting tools to the team’s needs in order to deliver application functionality faster
- Experienced achieving high productivity development cycles implementing architectures and design patterns like MVC, MVVM, Delegation, Publisher, Subscriber, Adapter, Façade, Decorator, Protocols and Observer
- Experienced in consuming both REST and SOAP web services, using NSURLConnection, URLSession, Alamofire, AFNetworking, resulting in fast network layers that gather background data asynchronously
- Implemented concurrent solutions using Grand Central Dispatch and NSOperation in order to boost the app performance
- Experienced working with audio and video using AVFoundation, AVAudioPlayer and AVPlayer in order to reproduce smooth sounds and videos in applications without affecting device’s battery life and CPU performance
- Skilled persisting information with Core Data, User Defaults, SQLite and Plists, allowing built - in synchronization with local data
- Adept in mobile security by introducing Touch ID, Face ID, Keychain and token-based libraries for authentication
- Made use of the Xcode debugger to trace bugs, profile applications with Xcode instruments and followed strong ARC and MRR principles in order to enhance memory usage
- Worked on multiple UI projects using Storyboards, Segues, XIB and programmatic constraints, impacting highly in user satisfaction with the app
- Experienced on location solutions using Core Location and Map Kit
- Used GIT for version and branch control
- Experienced in deploying applications to the store, following the Apple Human Interface Guidelines in order to maximize the opportunities of the app’s approval
- Adept in reducing bugs implementing a TDD approach, using XCTest, accelerating the development process by eliminating sound code
- Used Carthage and Cocoapods to handle third party frameworks
- Size Classes
- Continuous Integration
- Apple Push Notifications
- Core Graphics
- Core Animation
- Core Location
- Custom Controls
- Operation Queue
- Face ID
- Touch ID
- Core Data
- User Defaults
- Cocoa Touch Framework
- Objective C
Sr. iOS Developer
Confidential, New York, NYC
- Designed and created most of the authentication logic using proprietary APIs.
- Led the architecture of the project, using MVVM in order to separate project responsibilities into different layers, leading into a better maintenance for the application.
- Implemented DTO, Network Layers, View Models and XIBs to provide the MVVM functionality that the team adapted for this project.
- Trained others to start using RxSwift and RxCocoa, using Drivers and Observables to communicate all over the app without leaking memory or re-build same logic.
- Worked directly on the presentation of the cash flow of over 200 user bank accounts and managed the presentation using multiple flows
- Implemented custom and reusable UX components for the presentation of accounts using UITableViewCells, UIButtons, radio buttons, dropdowns, textfields with data validation, Xibs, protocols, delegates, RxSwift and RxCocoa
- Implemented reusable UX components from scratch
- Created a reusable component to manage the global errors, empty states or network issues for the entire app, in a separate class
- Implemented an automatic timeout after 5 minutes to improve user security if the user left the app idle.
- Implemented various flows in the app from scratch using the MVVM architecture and the RxSwift framework
- Integrated RxSwift into the network layer to bring the app more in line with the reactive programming approach.
- Involved in the creation of a reusable skeleton screen component, similar to Facebook, to improve the user’s experience while the app gathers all the information required to show the screen.
- Used User Defaults to save profile preferences persistently so that the customer can customize their experience to their liking.
- Implemented Lottie animation to avoid memory leaking or large loading time for UX
- Implemented lazy loading for some flows to reduce the amount of data that is required to show the information the user is interested in.
- Used Xcode tools to follow leaks and recognize duplicated calls to the network avoiding repeated calls and removing memory leak problems.
- Implemented TDD, using XCTest for the DTOs, VM, UI and others to create unit and UI test cases, improving app quality and reducing time of features rework.
Sr. iOS Developer
Confidential, Minneapolis, MN
- Trained and mentored junior iOS developers in programming methodologies and coding best practices such as MVVM principles, memory management, code redundancy, and dependency injection, resulting in a comprehensive and easily executed code base of the project
- Worked directly in the “Barcode Scanner” feature of the app that lets users scan barcode items to get price and item’s reviews, using AVFoundation and AVCaptureSession to capture video metadata, improving the performance of the application scanning process
- Implemented Core Animation to animate in app menu transitions, coupons cards and product images, to create a more informative user experience
- Created Codable model objects to parse json files using JSONSerialization and URLSession, improving the network layer of the application by requesting customer’s savings and coupons information asynchronously
- Synchronized customer Cartwheel savings and coupons into a single view, using a custom UICollectionView and a custom Barcode XIB to redeem customer savings with one barcode scan, having a positive effect in the user experience of the app
- Created a background networking layer using GCD to request information from Confidential ’s API
- Created the Payment manager to manage passes in the user’s Wallet app, using Pass Kit to cosume json packages to uniquely identify passes’ serial numbers and display them to the user following apple recommendation using PKBarcodeFormatQR arrays
- Implemented Core Location and Mapkit to display Confidential store based on proximity and created a custom location manager to drew annotations into a map.
- Responsible of the UI of the Cartwheel feature, using Autolayout and Size Classes in order to support different screen’s sizes, allowing the application to detect internal and external changes to update the frame of each view in the view hierarchy
- Used Core Data for grouping and filtering data in memory, allowing an off-line experience and organizing persisted data in memory and in the user interface
- Implemented TDD, using XCTest to create unit and UI test cases, improving app quality and reducing time of features rework
- Used Xcode profiling tools like Leaks and Zombies in order to generate test cases to test dynamically memory allocation based on memory requests during the whole application life cycle
Sr. iOS Developer
Confidential, Louisville, KY
- Mentored iOS developers in the communication with Cloud developers in order to create the business rules for the creation of the API and ensure the most efficient network layer for the application
- Helped testers and continuous integration teams to create a balanced testing environment using Hockey App and Jenkins in order to develop, test and integrate features into production environment with ease
- Led the architecture of the project, using MVVM in order to separate project responsibilities into different layers, leading into a better maintenance for the application
- Project was developed using swift
- In charge of integrating In-App purchases in order to allow users to pay for prescriptions, using StoreKit and Itunes Connect to add purchases into a queue and notify purchases’ state changes to an observer, helping to improve user experience by allowing them to refill prescriptions directly from the app
- In charge of testing using a TDD and CI approach using XCTest and Jenkins, in order to reduce bugs, coding rework, and achieve a faster development process
- Designed and implemented custom UITableViews, UITableViewCells and XIB for different screens in order to show prescription’s information, images and videos, allowing a decoupled UI development process
- Created custom cell using AVFoundation in order to reproduce prescription’s videos and implementing AVPlayer, AVPlayerLayer and table view delegates in order to fetch cell in a reusable way
- Implemented a background networking layer using GCD to keep track of the prescription shipment
- Worked with Keychain for encrypt user password and user name, allowing users to refill prescriptions by singing into the app faster and secure
- Implemented version control and branching using GIT and SVN
Confidential, San Francisco, CA
- Used Core Location and Map Kit to show available and relevant information about real estate locations
- Developed the app navigation using a TabBarController and a NavigationController, in order to create and easy transition between ViewControllers and controlling the navigation stack efficiently
- Used NSURLConnection in order to handle all the requests and interactions of the API with the backend
- Worked with Jira to handle tasking and tickets
- Worked under a SCRUM framework with 2-week sprints
- Implemented a custom search controller in order to enhance the user experience, finding relevant locations with custom filters
- Used constraints and size classes in order to offer a responsive design
- Responsible for helping the team deploy the application to the app store
- Followed Apple’s guidelines and best development practices
- Application was developed in Objective C using Categories to extend the functionality of classes
Confidential, Las Vegas, NV
- Application was developed using Objective C
- Designed and created custom view controllers, along with programmatic UI statements and size classes to have the application deployed in iPad and iPhone
- In charge of fixing performance bugs using improved algorithms to do the arithmetic calculations faster and implementing a threading layer using GCD to perform heavy task in the background
- Responsible of keeping track of memory allocations, zombies and leaks in order to avoid memory problems in the app
- Applied MVC for the app’s architecture, separating code responsibilities between models, views and controllers in order to balance the structure of the code, resulting in a scalable application
- In charge of migrate the XMLParsing to JSON in the consumptions of the web services to keep in-app currencies updated
- Created the main XIBs of the project in order to customize the user interface, this includes UIButtons, UILabels, UITextfileds, generating a decouple UI
- Used Agile as the project environment ensuring a fast development process
- Developed a visual interface that made use of JSP and PHP to process information and displayed graphics that allowed decision takers to understand historical bus data and metrics
- Made use of Bootstrap to enhance the user experience
- Worked with a waterfall approach
- Implemented wireframes from Photoshop designs
- Fixed bugs and implemented data analysis algorithms
- Worked on an interface that displayed crucial hospital information and goals
- Goals where measured through unique metrics
- The information was stored on a MySQL Database that was consumed to process it in chunks
- Developed with JSP, PHP and third-party frameworks
- Worked with a QA team that verified that the features worked properly
- Worked with the stakeholders to gather the requirements for the project