Post Job Free

Resume

Sign in

IOS

Location:
San Francisco, CA
Posted:
May 31, 2021

Contact this candidate

Resume:

Experienced with various methodologies such as Test-Driven Development (TDD), Sprints, and Agile / SCRUM methodologies.

Adept at integrating various native and 3rd party frameworks such as CoreLocation, MapKit, XCTest, CoreGraphics, CoreData, SQLite, Google APIs, Social Framework, CoreAnimation, AVFoundation, UIKit, EventKit, CloudKit, Core Bluetooth, etc.

Demonstrated skill using Interface Builder to build UI/UX via Storyboards and XIBs, and AutoLayout in conjunction with size classes to optimize apps for the iPhone and iPad.

Hands-on with CoreData, SQLite, NSUserDefaults, Settings Bundle, Plists, Documents Directory and NSCoding protocol & Arching/Unarchiving to store application data persistently.

Skilled in XML and JSON Parsing using NSXMLParser and NSJSONSerialization. Consumption of webservices done with native NSURLConnection and NSURLSession; also used third parties such as ASIHTTP, RestKit, AFNetworking, Alamofire imported via CocoaPods.

Adept in all aspects of iPhone/iPad application development including designing for all types of screen sizes and orientations. Comfortable with Auto Layout, Size Classes, and even programmatic implementations that listen for UIDeviceOrientationDidChange notifications.

Worked with both aspects of application flow using Storyboarding and NIB files

Experience with SVN and Git for version control with both command line / terminal, and with GUIs like Source Tree and Tower.

Programming Languages

Objective-C, Swift, HTML/CSS, SQL, Java, C++, and Python

Web Services

RESTful, SOAP, JSON, XML

Architecture & Design Patterns

MVC, MVP, MVVM, Abstract Factory, Façade, Decorator, Builder, Singleton

iOS Development

App Extension

Handoff

Desktop Software

MS Office

Databases

SQLite, Core Data, SQL, MySQL, NoSQL (MongoDB), Realm

Testing

TDD

Unit Testing

XCTest

Automated Testing

Jenkins

TestFlight

Software Project Management

Agile, Scrum, Pair Programming, Extreme Programming, Software Development Lifecycle (SDLC), Sprint Planning, Requirements Gathering, Backlog, Daily Scrums, Task Prioritization, Working with Product Manager, Scrum Master

IDEs/UI Tools

XCode

Eclipse

IntelliJ

Visual Studio

Storyboard, XIB, Interface Builder

Frameworks

Cocoa, CocoaTouch, CocoaPods, Reactive-X, ReactiveSwift, ReactiveCocoa,

Core Data, UIKit, CoreGraphics, Core Animation, XCTest, Core Bluetooth, MapKit, Core Location, Location Kit

EventKit, Social Framework,

TextKit, Realm,

UIKit, UI Dynamics, SDWebImage, Kingfisher, Alamofire, AFNetworking

Version Control Tools

Git and SVN

Desktop Software

Proficient in Microsoft Office Word, Excel, PowerPoint, & Access

Project Tools

JIRA, Confluence, Slack, Trello

Version Control

Git, GitHub, SourceTree, BitBucket, Tower

Continuous Integration

Jenkins, Hudson, Travis

Senior iOS Consultant/Engineer

Expedia, San Francisco, California December 2019 – Present

This is an app improvement and update project. I served a consulting role on the iOS project lifecycle and technology sides, working alongside the Project Manager and distributed iOS technology team applying an Agile project methodology. My work involves:

Collaborating with internal and external teams - Product Managers, Engineers, Designers, and Marketers to conceptualize, build, test, and implement new features.

Developing and updating various pages and UI elements used throughout the app as per design team specifications and wireframes.

Transitioning code from Objective-C to Swift and creating POCs for app in Swift.

Transitioning MVC to MVVM.

Configuring collection view to create navigation menus to create a UI to make transactions easily accessible.

Using accounts framework and Keychain for user accounts, with Core Data for data persistence.

Using navigation table and table view with compound views in the UI.

Creating a POC for architecture and UI to display charts and financial data – planned to a future release.

Applying GCD and NSOperations for threading in the background of transitional operations.

Configuring Git on a private Git server with Jenkins for continuous integration.

Debugging using LLDB statements and using profiling tools such as Instruments for memory leaks.

Using RESTKit library to make connections to server, and handle authentication challenges, and consumed RESTful web service using NSURLSession.

Interfacing connection to web service using GCD. Delegate methods implemented to handle reception of response, data, error, and load finish.

Applying Localization to allow users to view content in a variety of languages.

Configuring NSOperations for pulling the latest information from various services with NSJSONSerialization used to parse said service JSON responses.

Using GCD for concurrency, and Core Data and SQLite for Data persistence.

Writing a multitude of unit tests to validate logic and ensure resolved issues were not reintroduced.

Conducting QA unit testing with XCTest and scenario testing with TestFlight.

Performing continuous integration and testing using Jenkins.

Senior iOS Developer

Geico Insurance, Chevy Chase, MD May 2017 – December 2019

https://apps.apple.com/us/app/id331763096

The GEICO Mobile app is here to lend a hand if you ever need a quote, policy update, tow, or you just need to change your address. Now, when life changes lanes we will be right there because we’re always headed in your direction.

Developed UI sizes and orientations using Storyboards, XIB’s and Autolayout features.

Applied Storyboards to refactor several UI layouts based off wireframes to heighten the user experience.

Used Xcode as the IDE and coded in Swift.

Utilized Operations for downloading images on background thread so as to not lock up the UI and provide a better user experience.

Utilized BlockOperations for downloading images on background thread so as to not lock up the UI and provide a better user experience.

Worked extensively on Tableviewcontroller and Scroll Views to make customized table view cells according to the requirement.

Created custom UI Views, custom Table Views, custom Buttons and custom Table View Cell for user interface.

AlamoFire was used for Asynchronous back-end communication with Swift code.

Worked with Navigations controllers, Navigation Bars & Tab Bars

Branded the app look and feel with the organization logo throughout the app.

Developed with Cocoa touch framework on UI-Kit.

Designed and built Custom UI with use of wireframes from UX team.

Designed all views with auto layout and constraints.

Used a Test-Driven Development methodology with Jenkins CI continuous integration with private Git server.

Worked on security of the user by saving the details in Keychain Services.

Information used encryption AES 256 to store the information using Core Data.

Continuously provided input to project management activities throughout the project life cycle, influencing scope, risk plan, project plan, issues and status.

Mentored junior members for Agile (Scrum) process & Unit testing.

Documented the app in confluence and provided documentation of app maintenance and help desk procedures in knowledge transfer.

Sr. iOS Developer

Coinbase Inc., San Francisco, CA July 2015 – May 2017

Project Title: Coinbase

https://itunes.apple.com/us/app/coinbase-buy-bitcoin-more/id886427730?mt=8

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 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 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.

Used Coinbase Commerce API 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 to connect with GDAX API to guarantee real-time feed for bitcoins trades activity and bitcoins price changes.

Implemented AVFoundation and AVCaptureSession to create a QR scanner to generate account addresses using AVCaptureMetadataOutput, this for allowing users to send funds using QR codes.

Configured TLS and App Transport Security 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 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 to create decouple views, improving the user experience by supporting different screen sizes.

Senior iOS Mobile Developer

Avis Rent-a-Car, Parsippany, New Jersey March 2013 – July 2015

https://itunes.apple.com/us/app/avis-car-rental/id308342527?mt=8

The Avis Car Rental app has you covered. Exclusive to the Avis app, Avis Preferred members gain access to all features as well as exchanging or upgrading your car upon arriving at the rental location, quickly returning your car, locking and unlocking your car and more real-time rental features. Find your nearest Avis Car Rental locations, hours of operation, addresses and phone numbers at any time.

Met with business stakeholders and designed stories for the development team.

Utilized MVVM architecture to have the data model update reactively to UI changes.

Regularly participated in pair programming sessions.

Participated in architecture and design of the new iOS app, along with leading

implementation planning.

Led technical design sessions with the development teams, including the creation of class models, sequence diagrams, component models, etc., and detailed design specifications to ensure that architecture standards were followed.

Managed App bandwidth and memory usage while optimizing code to reduce total

data cost.

Mentored members of iOS team using Agile (Scrum) process.

Employed test driven development (TDD) and continuous integration to achieve consistent, stable, reusable code using XCTest and tracking issues in JIRA.

Engaged with design team to determine requirements and workflows, and provided feedback on ways to improve upon the UI/UX.

Developed UI using Storyboards with AutoLayout constraints and size classes to

support both iPhone and iPad devices.

Adopted Xcode and Swift; transitioned code base working with a hybrid code until all got transitioned.

Collaborated with backend services team in the integration and consuming of RESTful web services to book trips, review itinerary, etc. NSJSONSerialization used to parse JSON responses.

Debugged issues using a combination of NSLog statements, breakpoints, LLDB statements, crash logs, and Instruments.

Integrated push notifications to allow users to receive updates and reminders for their trip status and other items.

Reviewed and refactored code and transitioned code base from Objective-C to Swift.

iOS Mobile App Developer

General Motors, Detroit, Michigan June 2011 – March 2013

I joined this project team to reevaluate the app and determine where to make improvements or add features and functions to target contemporary user needs.

The myGMC iOS mobile app is constantly adding capabilities for GMC owners to access and control car features such as lights, horn, locks, remotely. Updates included changes to improve app functioning with the 2014 changes in GMC technology and upgrades. The app also includes some interface design changes and accessibility options.

MyGMC App -

https://itunes.apple.com/us/app/mygmc/id399408958

Found the best workflows for source control, task management systems, and continuous integration systems.

ed initiative to migrate app to Swift.

Designed custom iOS user interface classes to be used in the application, using IBDesignables.

Designed and developed persistent data layer using Core Data for iOS.

Designed Core Data model and used NSOperations to get all GPS coordinates and trip information using encryption AES 256 to store the information.

Implemented many OOP and patterns like MVC, KVO and Singleton.

Implemented new menu design and functionality for an improved user experience.

Followed Apple UI guidelines throughout the iOS mobile app project.

Implemented SiteCatalyst to track all behaviors of users.

Used Swift and Objective-C with Xcode IDE for iOS mobile app development.

Utilized Instruments, Crash Logs, LLDB statements, NSLog statements, and Breakpoints to resolve various issues and bugs brought to attention by QA team.

Fixed iOS mobile memory issues by using Instruments, most notably using the Allocations and Time Profiler tools.

Added Localization to the iOS app to enable content tailored to a user’s language settings.

IOS APPLICATION DEVELOPER

REI, Kent, WA February 2009 – June 2011

Hiking Project: https://itunes.apple.com/us/app/hiking-project/id964351449

This iOS mobile app by REI provides full GPS route info, elevation profiles, interactive features, photos, suggested explorations. Location feature for nearby or in specific search sear. Local experts show you the highlights, challenging features, and insights you need to plan a great day on the trails. Consumes information from a back-end database of more than 74,000 miles of trail.

Followed the Agile methodology for implementing the project.

Used EventKit to manage calendars for various instructors and locations and incorporate scheduling.

Added reminders with EventKit to remind users of upcoming events.

Used UIKit, MapKit and CoreLocation to enhance user to find nearest studio.

Maintained the business standards and requirements and ensured proper adherence by iOS development team.

Used Cocoa framework with CocoaPods as dependency manager for management and installation of external libraries.

Used Cocoa Touch for abstraction layer providing responsiveness to user actions.

Analyzed existing code for improvements and optimizations.

Worked with Core Data to prepopulate UITextfields with persisted data received in prior web service calls.

Maintained high test coverage and ensured that all issues found by QA were fully addressed and resolved, as well as user experience improvements suggested by QA.

Worked with MapKit, CoreLocation and MKAnnotation to make UI tweaks on the map view and enhance functionality to get the latitude and longitude co-ordinates.

Designed UI using Storyboard and Auto Layout constraints.

Designed signup page and done validations for all fields

Connection to web service was achieved using GCD. Delegate methods implemented to handle reception of response, data, error, and load finish

Involved in iOS performance testing along with Functional and Regression tests.

Took care of Code Review, Code Fixes and Bug Fixes.

Bachelor’s in Computer Science from UNIVERSITY OF ALASKA ANCHORAGE

Summary

Technical Skills

Experience

Education



Contact this candidate