Profile
**+ years’ experience developing iOS apps. Developing iOS apps consecutively since 2011.
** *****’ combined experience in iOS and Software/IT.
* **** ********* ** ***** Store.
Skilled programming in Swift and Objective-C
Experienced with UIKit, Location, MapKit, Cocoa Touch and Cocoa Service Frameworks working on mobile applications.
Seasoned developing multithreaded workflows using both GCD and NSOperations
Extensive work with architectures and design patterns such as MVC, MVVM, VIPER, KVO, KVC, Singleton, Delegate, Observer/Notification, Adapter, Factory, Façade, etc.
Well versed consuming RESTful and SOAP web services and parsing JSON and XML web service responses with both 1st party and 3rd party frameworks; familiar with CocoaPods, AFNetworking, RESTKit, Alamofire, Codable, and JSONSerialization
Construct application UIs using Storyboards, XIBs, and programmatic,
Experience working with Core Data for persisting data between application sessions. Full understanding of Managed Object Model, Managed Object Context, Managed Object, and Persistent Store Coordinator.
Familiar with local storage solutions like NSUserDefaults, Keychain, and Archiving.
Experience with Combine.
Memory and Data Management experience in both Manual Retain Release and Automatic Reference Counting
Experience with both SVN and Git for managing versions control; worked in environments with continuous integration tools such as Jenkins
Value-add team player on iOS dev teams practicing Agile methodologies, with Scrums and Sprints.
Well-versed with 0nsite and offshore team coordination.
Experienced in working with SQLite Database, Google Maps API, MapQuest API, GPS Location, In-app billing, Push Notifications.
Strong knowledge in all phases of Software Development Life Cycle (SDLC) process, which includes requirement analysis, designing, implementing, debugging, testing, fixing and maintaining applications.
Experienced in implementing multi-threading using both Grand Central Dispatch (GCD) and NSOperationQueue
Experience in integration of services using RESTful Web Services
Experience in CocoaPods and CocoaTouch frameworks for iPhone and iPad applications development using XCode IDE, iOS Simulator and Interface Builder.
Hands on with Frameworks such as iPhone SDK, UIKit, MapKit, Speech, AVFoundation, CoreData, CoreLocation, Social, XCTest, Alamofire, SDWebImage, QuartzCore, Crashlytics, Core Bluetooth, Core Graphics, AppKit and CoreMotion..
Proficient in source control with Git, Stash, SourceTree, SVN.
Experience with SwiftUI.
Skills
Programming Languages
Swift
Objective-C
IDE
XCode
iOS Tools
Instruments
CocoaPods
Carthage
Firebase
Cocoa Touch
Third-Party Frameworks
Reactive-X
RxCocoa
RxSwift
Firebase
Realm
Data Management
SQLite, Firebase Realtime Database, Core Data, MongoDB
Troubleshooting & Testing
Memory Management, Instruments, Code Review,
Unit Testing, TestFlight
XCTest, Automated Testing
Consuming Back-End Services
Alamofire
AFNetworking
REST, JSON, SOAP,XML
Reachability
API Writing
Classes
NSURLSession
URLSession
NSJSONSerialization
NSXMLSerialization
NSUserDefaults
NSNotificationCenter
NSOperationQueue
Project Environment
Agile Scrum, Continuous Integration
Test-Driven Development
Jira, Confluence, Git, SVN, SourceTree
Architecture & Design
MVVM, MVP, MVC, VIPER, Decorator, Builder, Singleton, Abstract Factory, Integrator, Visitor, Proxy, etc.
Push Notifications
Apple Push Notification (APNS)
Firebase
iOS Frameworks
Combine, UIKit, UIDynamics, CoreLocation, MapKit, CoreBluetooth, CoreGraphics, QuartzCore, AVFoundation, CloudKit, CoreData, EventKit, Social
User Interface
SwiftUI
Interface Builder
Storyboards
Xibs, Auto Layout, Adaptive layout, Storyboard, Interface Builder, Xibs, Nibs, Size Classes, UIKit, CA Layers, UIView, Animations, Core Plot, Core Graphics
iOS Development
Concurrency – GCD, NSOperations
Delegation
Structs
Protocols
Professional Experience
Senior iOS Mobile App Developer
Bet Fanatics, Fanatics Bet, San Francisco, California August 2022-Present
App Link: https://apps.apple.com/us/developer/fanatics-inc/id712661690
App Description: Bet Fanatics is primarily a betting app where users create an account and have a wallet where funds are withdraw to place bets and deposit earnings alike
Applied design patterns Delegation, and designed User interactive screens using jetpack compose.
Managed the project in typical Agile SCRUM methodology.
Worked in Xcode using Interface Builder and multiple Storyboards in the creation of the user interface.
Created API layer connections for several endpoints.
Refactored API layers to KMP connections.
Decoupled the project by creating different modules using private CocoaPods.
Migrated several parts of the architecture from the traditional MVVM layers to Kotlin Multi Platform (KMP).
Applied Realm for object synchronization.
Profiled the app using Instruments to monitor performance leaks, memory optimizations, screen adjustment and battery usage.
Used JIRA as the Project Management Tool.
Implemented jetpack compose for screens, jetpack components including navigation, viewMode.
Addressed bugs and fixed them using Charles proxy and the XCode debugger, as reported on JIRA.
Used Git as the code repository.
Used SnapKit to build and maintain all programmatic constraints.
Used Jenkins for continuous Integration (CI).
Worked with front-end UI/UX designers, back-end teams, and business teams to ensure app worked seamlessly meeting all requirements.
Senior iOS Developer
KeyBank
Cleveland, OH
June August 2020 – July 2022
App Link:https://apps.apple.com/us/app/keybank-mobile-banking/id510717503
App Description: Take control of your money and bank the way you want to bank – anytime, anywhere. The KeyBank mobile banking app is free, fast, and secure with features that are streamlined for today’s on-the-go world. Easily transfer funds between bank accounts. Pay bills. Send money to friends and family. Open a checking or savings account. Deposit checks on the app. Monitor and manage bank accounts and cards.
Utilized MVVM for the tiles to have proper separation between the business logic and presentation logic.
Migrated some of the VIPER-architected code to MVVM due to VIPER over-abstraction.
Applied design patterns Delegation, Singleton, Extensions, Notification, and KVO.
Programmed in Xcodeusing Swift.
Refactored code and conducted code reviews.
Decoupled entire project by creating different modules using private CocoaPods.
Implemented Dispatch Queues to perform tasks asynchronously and concurrently.
Applied Realm for object synchronization.
Parsed response JSON using Codable protocol via RESTful web calls utilizing URLSession
Profiled the app using Instruments to monitor performance leaks, memory optimizations, and battery use.
Tracked down bugs and fixed them using Charles proxy and the XCode debugger, as reported on JIRA and VersionOne.
Used Git as the code repository.
Used Jenkins for continuous Integration.
Integrated Touch ID capabilities, using Local Authentication.
Implemented various security features, including Biometric Authentication, Certificate Pinning, and various cryptography methods.
Used SnapKit to build and maintain all programmatic constraints.
Worked with WebService calls using Alamofire.
Worked with front-end UI/UX designers, back-end teams, and business teams to ensure app worked seamlessly meeting all requirements.
Fixed memory issues using Instruments (e.g., Allocations, Time Profiler).
Senior iOS Developer
Ashley Furniture
Arcadia, WI
Nov 2018 – Aug 2020
App Link: https://apps.apple.com/us/app/ashley-homestore/id1446058110
App Description: The Ashley HomeStore app features a streamlined shopping experience along with Augmented Reality (AR) that allows you to view select Ashley Furniture items in your own home. You’ll also be able to search, browse and shop thousands of home decor, bedding, mattresses, mattress in a box, outdoor, living room, bedroom, home office, media storage, dining, kids furniture, lighting, wall accents, and much more.
Utilized RxSwift in coordination with MVVM to have the model and view bound so that the view reacted to changes in the model.
Programmed in Xcode with Objective-C and started transitioning code and developing new features in Swift.
Implemented RxSwift to handle two-way binding.
Rewrote some of the older Objective-C libraries to Swift.
Designed and developed user interface as per existing IOS application using UI framework.
Participated in UX design and suggested how to implement.
Involved in development and coding by adhering to internal document for best practices.
Handled UI development using Storyboards and Interface builder based on Apple HIG guidelines.
Developed UI using Storyboards with AutoLayout constraints and Size Classes utilized to handle all screen sizes.
Managed third-party dependencies using CocoaPods.
Configured push notifications’ content-available property to make notifications visible even when the application was running in the background, letting users to receive messages when they were directly or indirectly using the application.
Collaborated with cross-functional teams to define, design, and ship new features.
Resolved bugs and crash scenarios using NSLogs, Breakpoints, Instruments, and LLDB statements.
Used JIRA to track and prioritize bug fixes.
Performed unit testing with XCTest framework to ensure quality, stable code in the release.
iOS Mobile App Developer
Garmin
Chandler, AZ
Apr 2017– Nov 2018
App Link: https://apps.apple.com/us/app/garmin-drive/id1276198893
App Description:The Garmin Drive™ app is a simple and convenient app solution for the latest Garmin automotive navigators and dash cams. For compatible navigators, the Garmin Drive app provides real-time information for traffic, parking, advanced weather, and photoLive traffic cameras, in addition to the ability to send and receive calls, texts, and notifications from your Bluetooth-enabled mobile device. For compatible dash cams, the Garmin Drive app provides quick access to camera controls, settings, and recorded footage. Up to four dash cams can be wirelessly connected with the Dash Cam Auto Sync feature to provide comprehensive coverage around a vehicle, offering various viewpoints recorded by the multiple cameras. The Garmin Drive app can create a “picture-in-picture” video from any two perspectives at the same time, making it easy to review video and also share videos with friends, insurance agencies, or legal authorities.
Programmed app largely using Swift with some legacy Objective-C code.
Worked in Xcode using Interface Builder and multiple Storyboards in the creation of the user interface.
Used XCTest for write and implement test cases and used Instruments, Allocations and Time Profiling tools to fully test performance and memory management.
Used Alamofire for asynchronous back-end communication.
Used CocoaPods to install third-party libraries.
Handled continuous integration and module testing with Jenkins.
Implemented logic to connect to server to download document data using GCD.
Implemented the Bluetooth connection that integrated with the hardware for stabilization.
Enhanced UIs to present more content using Storyboards with AutoLayout constraints and Size Classes as per design team specifications.
Implemented Push Notifications to notify users when certain events occur.
Invoked RESTful web service data to retrieve information using AFNetworking from the location database.
Worked with CoreData for updating and for fetching relevant information when logging new items.
Worked with UIKit Framework for development and maintenance.
Used Confluence to document the flow of the features using a flowchart.
Used JIRA and Bitbucket for code review and approval.
Worked with Fresso library for image management and ExoPlayer for audio-video playback function.
iOS Developer
SkiRepot
New York, NY
Oct 2015 – Apr 2017
App Link: https://itunes.apple.com/us/app/onthesnow-ski-snow-report/id300412347?mt=8
OnTheSnow, the world's leading website for ski and snow conditions, brings you the world's most-downloaded ski and snowboard application, the Ski & Snow Report app. This Ski & Snow Report app brings you current conditions with snow reports at more than 2,000 ski areas around the world, plus features first-hand ski reports from users.
Developed project entirely in Objective-C and XCode.
Used Interface Builder to make UI improvements and fixes as instructed by QA and UI designers.
Worked with a geographically distributed team to add features and improve upon existing ones.
Improved performance and functionality of the app utilizing Instruments and other debugging tools.
Utilized UIImagePickerController to allow for users to take new pictures with the devices camera, or select pre-existing images from their albums.
Customized UI elements created using a combination of XIBs and Storyboards, with Auto Layout constraints used to adjust content layout.
Worked on enhancements to web service calls through NSOperations to improve usability, JSON responses parsed using NSJSONSerialization.
Worked within a MVC architecture.
Used design patterns Delegation, Notification, Singleton, and several other patterns used to better create the app and simultaneously satisfy the key non-functional requirements of scalability and maintainability.
Worked on improving MapKitand Core Location services to reduce drain on battery life.
Participated in weekly paired programming to promote higher quality of code, as well as to more quickly introduce new/junior developers to the code.
Wayfair, LLC
Boston, MA
Feb 2014 – Oct 2015
iOS Mobile App Developer
App Link: https://itunes.apple.com/us/app/joss-main-beautiful-decor-beautifully-priced/id525522332
The Wayfair iOS shopping app needed to reflect the ideology of the store, which is beauty – beautiful décor, and ease, so it had to look great be somewhat minimal in design and very easy to use.
Implemented the app design strictly following the UI/UX schematics provided by the UX designers, and worked closely with the designers to make sure I implemented the image and feel.
Implemented the iOS app using Xcode in Objective-C and Swift as it arrived, using bridging headers to integrate Swift and create a hybrid code-base.
Created the shopping list ViewController contents, including custom UITableViewCells creating a gallery type exbibit with large, high-resolution images which we managed with multiple threads and background processes using SDWebImage.
Parsed JSON objects using JSON Model library with AFNetworking.
Implemented Google+ login for users by working with Google API.
Added video functionality within app using AVFoundation library.
Worked with CocoaPods dependencies for necessary 3rd-party abilities.
Optimized store locator functionality and refactored corresponding UI of workflow using Storyboards
Enhanced performance of app by profiling app using several Instruments
Project matriculated utilizing the Agile/SCRUM methodology
Used Instruments to fine tune the app performance and memory management.
Worked on implementing MessageUI.Framework, AVKit.Framework, Core Data Framework, UI Kit Framework, and AFNetworking.
Used MagicalRecord library with Core Data to clean up code and simplify fetches.
Used Atlassian tools such as JIRA and Applause to manage and keep track on progress of project.
Managed the iOS code base in GitHub using the GitHub interface and using Git Lab for continuous integration.
Magzter, Inc,
New York, NY
Aug 2012 – Feb 2014
iOS Mobile Application Software Developer
App Link: https://itunes.apple.com/us/app/revista-proceso/id932816415
The app allows the users to see news and receive periodically information about their favorites highlights.
Developed the app in Objective-C using Xcode.
Test Driven Development methodology to ensure every method was properly done and tested.
Worked in a team of 2 developers and 1 user interface expert.
Conducted frequent code review activities with the members of the development team.
Invoked RESTful web services for pulling down the latest information. JSON responses parsed using NSJSONSerialization.
Utilized GCD to load images in a background thread from consumed services to improve the user experience.
Used NSUserDefaults to save and retrieve application settings information.
SQLite integrated to persist user created information.
Worked with Apple Push Notification Service (APNS) to allow for users to be sent notifications to users about their favorites subjects.
Used XCTest framework for unit testing
Utilized Git version control tool as source control management system.
Worked with Scrum methodology to have a prototype to show every two weeks.
Hotels.com
Dallas, TX
Nov 2011 – Aug 2012
iOS Mobile Developer
App Link: https://itunes.apple.com/us/app/hotels-com-hotel-booking/id284971959?mt=8
When you’re ready to travel, take our app with you, after all, it’s your perfect travel companion.
Generated build using a MVC architecture.
Started developing e-commerce iOS app using Objective C.
Worked with Objective C and Cocoa framework, which includes UIKit Foundation and Core Location.
Used various view controllers such as: UITabBarController, UINavigationController and UIScrollView to build the user interface.
Created of various views, table views, customized views and popovers.
Worked with JSON for data exchange between client and server JSON data Serialization.
Used Cocoa Pods to manage dependencies.
Worked with iOS frameworks Core Data, Core Animation, Core Graphics, and Core Text on applications.
Implemented Auto-layout concept for the entire Storyboard and dynamically adjusted the height of the collection View based on the content.
Used TestFairy for scenario testing and worked with QA to make sure all issues were logged and resolved.
Worked through JIRA backlog to make sure app was rolled out without glitches.
AutoZone, Inc.
Memphis, TN
Jul 2009 – Nov 2011
Software Developer
AutoZone, Inc. is an American retailer of aftermarket automotive parts and accessories,
Prepared work plans and managed large-scale implementation projects
Designed software utilizing Use Case Diagram, Sequence Diagram, Life Cycle Model, and Critical Path Analysis.
Worked on web development using PHP, HTML, CSS, JavaScript, and MySQL
Created algorithms to output specific sequences.
Debugged scripts.
Designed and programmed new custom programs to automate select work functions.
Worked with C++, Java, CSS, XHTML, Oracle, MS Server, etc.
Modified software code of existing programs to optimize programs and/or add features/functions per departmental requests.
Developed an extract-transform-load process in C# to anonymize personally identifiable information within the database.
Automated workflows that generate monthly reports using Windows Task Scheduler.
Provided technical support for computer hardware, software, and IT network issues.
Education
North Carolina Agricultural and Technical State College – Masters
Computer Science and Engineer
North Carolina Agricultural and Technical State College – Bachelor Mathematics