Daniel Garibay
Profile
Sr. iOS Developer
Phone
************@*****.***
Experienced, motivated professional in both Swift and Objective-C with over 7 years in the mobile development field, including Swift experience that dates back to when Swift was released
Experience working with design patterns such as Singleton, Delegation, Observer, Broadcaster, MVC, MVVM, etc.
Worked in both Swift and Objective C languages
Utilization of multithreading techniques via NSOperations and Grand Central Dispatch
CocoaPods experience with third party libraries such as Google Maps, Facebook, Alamofire, Twitter
Security conscious developer with tools such as Keychain Services and encryption
Expert bug hunter and squasher
Led and managed team members across multiple projects through mentorship, one-on-one meetings, code reviews, and team management, including experience working with remote teammates
Strong knowledge of development lifecycle including planning, research, data modeling, API endpoint design, and implementation of eye catching UI
Source control management achieved through multiple platforms including Microsoft Visual Team Services, Git, Github, Bitbucket
Consumption of APIs with Alamofire and custom networking layers built on top of URLSession
Experience working in an Agile development environment with implementations such as Scrum
Liased with stakeholders to explain development process, give estimates, and advise on best practices
Experience with Test Driven Development, XCTest, unit testing, integration testing, and UI testing
Working knowledge of all aspects of the iOS SDK including the major frameworks such as MapKit, Core Location, NotificationCenter, Core Data, AVFoundation
Memory management knowledge including Automatic Reference Counting, and MRR
Advanced knowledge of handling JSON parsing through JSONSerialization, Codable, and SwiftyJSON
Persistence experience with tools such as Core Data, Realm Database, NSCache, Keychain Services, Plist, UserDefaults
iOS Biometrics experience with TouchID and FaceID
Programmatic, Xib and Storyboard UI experience with Auto Layout and Size Classes to ensure appropriate UI layout for different device sizes
Consistent code style that keeps up with best practices and includes appropriate documentation including markdown function documentation
Skills
Teamwork
Scrum
Git
Jira
Languages
Swift
Objective-C
Tools
XCode
Keychain Services
Instruments
API Consumption
Custom UI
Cocoapods
Accessibility Inspector
Frameworks
URLSession, XCTest, UICollectionView, Xibs, UITabBar, Size Classes, Mapkit, Push Notifications, UITableView, Stack Views, UIStoryboard, UIScrollView, NSCache, NSOperations, UserDefaults, Grand Central Dispatch, Core Data, Facebook API, Core Location, Authentication, Autolayout
Techniques
Unit Testing
Location Management
Singleton
MVC
Protocol
JSON Parsing
Data Persistence
MVVM
Delegation
Weak/Strong/Unowned
Constraints
Closures
Experience
Senior iOS Engineer
Project: Mobile Shopping
URL: https://apps.apple.com/us/app/kroger/id403901186
An app to help the user with their shopping, allowing them to choose the option of pick up or delivery, offering coupons only for those clients with an account. The users can update and confirm their information from the app and also keep a record of their purchases.
Use Xcode to create and add new UI views in Objective-C and Swift.
Development following the MVVM architecture.
Creation of new View Controllers using Auto Layout and Size Classes.
Migration of legacy code from Objective-C to Swift.
Utilized custom UI classes to centralize common behaviors.
Used Swift to facilitate and debug defects.
Involved in various SCRUM ceremonies, such as dauly standups to update status og features and defects
One on one meetings with manager to report sprint advances.
Use of customized frameworks to handle network calls and JSON parsing.
Utilized Git as the version control system.
Participated in code reviews on GitLab to ensure highest quality code.
Creation of defects and follow up of stories via JIRA.
Biweekly sprint planning’s to specify the scope of the work that can be done.
Strong communication with Android developers to ensure feature parity between the iOS and Android apps.
Modifications of background colors in storyboard and programmatic view controllers to enable the app to be compatible with iOS dark mode.
Use of a custom network framework to send and track analytics data of the app usage.
Utilized Charles proxy to test analytic data send from the app to Kroger.
Use of software of code review like Visual Studio Code, Sublime Text and XCode to solve merge conflicts.
Use of Sourcetree to handle the change between branches and creation of new branches, push new commits and pull branch updates.
Use of localized strings to show different messages and content on each brand from The Kroger Co based on the language the user set for the device.
Implementation of protocols to keep an order of the same feature in different view controllers through the app.
Testing of new features using XCTest, using dependency injection to simulate different scenarios.
Use of Accessibility Inspector to ensure that the app gives the correct Accessibility Identifiers and Labels.
Client: Kroger
Location: Cincinnati, OH
July 2019 – Present
iOS Architect
Project: Music Streaming
URL: https://itunes.apple.com/us/app/pandora-music-podcasts/id284035177?mt=8
Client: Pandora Radio
Location: Oakland, CA
Dec 2017 – June 2019
An app to allow users to stream music. Gives recommendations according to listening history and user selected genres and favorited songs.
Led team that maintained and added features to the main view of the app which contains recently played stations and suggested stations as well as browsing
Implemented extension on UIImageView that utilized the networking layer to asynchronously fetch album art to display in custom UITableViewCells
Built and modified fetch functions to obtain updated information from Pandora proprietary RESTful APIs on the users preference, recently played stations, and suggested stations
Built and maintainedPOST method to send user selections, favorites, played stations, etc. to server to enable syncing between devices and to enable data analyzation to enhance further the ability to make relevant suggestions to the user
RESTful API fed data by devices connected to account to process with proprietary algorithms to build a taste profile and help users discover new music
Custom implementation of UITableView with customized UIButtons and multiple customized UITableViewCells
UISegmentedControl implemented to provide easy sort order for main view by most recent, or alphabetically
Protocols and delegation employed to communicate and pass information between UIViewControllers
Custom UICollectionViews, UICollectionViewCells to provide visually appealing browsing experience of podcasts, genres, artists, decades, new music, moods and activities, top artists and stations, and rising artists
UIViewController subclassed and customized as a detail view to hold UITableViews and UICollectionViews to provide the ability to expand sections when browsing, as well as UINavigationController to provide navigation back to the browsing view
Guided, mentored, and led team consisting of senior and junior developers and interns
Team leadership responsibilities consisted of one-on-ones, code reviews, best practices, as well as taking lead in Scrum meetings
Agile methodologies implemented with Scrum, led retros, plannings, standups, and groomings
Coordinated collaboration and code versioning via Git, bitbucket, JIRA
Lead iOS Developer
Project: Trulia Rentals
URL: https://itunes.apple.com/us/app/trulia-real-estate-find-homes/id288487321?mt=8
Client: Trulia
Location: San Francisco, CA
Jun 2016 – Dec 2017
An app to help users discover the perfect home. It includes features to get a feel for the neighborhood through crowdsourcing local insights and map overlays.
App Details:
Senior lead developer for search functionality in app which includes the ability to filter results based on price range, keywords, number of bedrooms and bathrooms, property type, etc.
Utilized delegation and protocols to facilitate communication between the filter UIViewController and the search ViewController to handle the filtering mechanism for searches
Alamofire employed to make network calls to proprietary API for synchronization and data retrieval
Employed Google Maps SDK as maps provider using CocoaPods as dependency manager, in conjunction with Core Location and reverse geocoding to get user location
Utilized a custom implementation of GMSMarker to place clickable pins onto the map to display the location of available properties
Connected with 3rd party services to provide information on neighborhoods, crime rates, etc. and create layers for the map to display this data
Crowdsourced neighborhood insights from local users to build up propriety database and add business value
Lead team in the the decision making process for things such as what architecture to use for the app
Took lead ensuring meetings stayed on track and were productive
Responsible for communications with non-technical stakeholders such as development time, complexity of new feature requests, etc.
Liaised with design team on feasibility of UI as designed and discussed things such as compliance with Apple’s Human Interface Guidelines
Sr. iOS Developer
Project: Mobile Banking
URL: https://itunes.apple.com/us/app/bank-of-america-mobile-banking/id284847138?mt=8
Client: Bank of America
Location: San Francisco, CA
Apr 2015 - May 2016
A mobile banking app to connect users to the services that Bank of America provides such as depositing checks, sending money, viewing balances, transaactions, and credit limit. Provides alerts and sync to Apple Watch
App Details:
App built largely using Swift 4 with some legacy Objective-C code
Core Data, Keychain Services, and UserDefaults utilized to provide persistence
Xibs and programmatic UI were largely used, in part to make the UI more flexible, and in part to avoid merge conflict
Collaborated with several team members that were located remotely
Code base split pretty evenly between Objective-C and Swift
Guided efforts of team to slowly migrate legacy code to Swift in between bug-fixing and coding new features
App integrated with Bank of America APIs to provide sync capabilities and retrieve relevant data
Fine tuned fetch functionality to provide consistency across methods to interface with API endpoints
Combed through codebase to implement documentation to aid in code maintainability
iOS Mobile Developer
Project: NYTimes
URL: https://itunes.apple.com/us/app/the-new-york-times/id284862083
Client: NYTimes
Location: New York, NY
Aug 2013 - Mar 2015
An application that enables users to read articles from The New York Times newspaper on their smartphone.
App Details:
Worked in Objective-C Codebase
Guided effort to move from an MVC architecture to a MVVM
Migrated code from individual views to reusable components built with Xib and programmatic techniques
Highly customized UITableVeiw for news feeds utilizing Auto Layout, Size Classes, and sub-classed UITableViewCells
Worked in a time sensitive manner to resolve bugs to provide higher customer satisfaction to consumers
Subscription based service to unlock access to all articles
Custom animations to transition from feed to news article and from feed to menu and back to provide attractive, functional, intuitive UI
Due to the size of the app, and the large menu, many network calls customized to provide the content that the user desires
Utilized URLSession to consume propriatary API from NYTimes
iPhone Developer
Project: Evernote
URL: https://itunes.apple.com/us/app/evernote/id281796108?mt=8
Client: Evernote
Location: San Diego, CA
Dec 2012 - Jul 2013
This app is like a digital notebook collection. Users are able to create digital notebooks, notes, etc. and sync them with the other devices where they have logged into Evernote. It enables users to have their notes and thoughts accessible across all their devices.
App Details:
Worked in Objective-C codebase to preform maintenance and implement bug fixes
Offline experience provided through implementation of Core Data for model objects and UserDefaults for things such as user settings
Master Detail oriented UI design achieved through the customization and subclassing of components such as UiTableView, UITableViewCells, and UIViewController
Worked extensively with UITextView, UILabel, UITextField and other UI elements and controls
UITabBarController and UINavigationController employed to provide easy navigation between various components and views throughout the app
Use UISearchController to enable users to quickly find the content they are looking for
Google sign-in used to provide rapid account creation and sign in and to sync data
Proprietary API with RESTful services accessed to sync data across devices
User Defaults for storage of things such as user selected settings
Implementation of Keychain Services to store security sensitive information such as login credentials and security tokens
Utilized URLSession to connect app with Epicurious backend services such as RESTful API which provided access to proprietary data
Other Skills/Experience
C based languages and compilers (C++, Matlab)
Programming of FPGA boards (VHDL language)
Programming of Microchips and AVR’s (assembly language)
Programming CNC machines for tooling (MasterCAM)
Basic queries to databases (MySQL)
Top Enterprise (October 2014 to April 2015)
PLC programming for elevator control (Ladder language/diagram)
Electronic developments to update and replace of analog sensors (Arduino, ChipKit)
Candy Technologies (May 2015 to September 2016)
Development with PLC for replacement in conveyors
Basic system updates in automated production lines
Digital filters development for images treatment
Tests with fingerprint, iris and face recognition SDK’s
Education
Instituto Politecnico Nacional
Bachelor of Engineering in Mechatronics