Guangyan
Li
*************@*****.***
I am a Senior iOS Developer with 5 years of experience. As a motivated problem solver and diligent learner, I have developed proficiency in multiple areas of application design and development. With confidence in my programming abilities and communication skills, I’m able to work well in diverse environment with a variety of people from technical and non-technical teams.
Skills
Language: Swift, Objective-C, C++, Java, JavaScript, Assembly
Database: Core Data, SQLite, Firebase
Web Service: AlamoFire, URLSession, NSJSONSerialization, JSONDecoder
Multi-Threading: GCD, NSOperation
Code Repository: Git, GitHub, GitLab, SourceTree
Project: Agile/Scrum, TDD, Jira, Asana, Trello, Slack
Design Pattern: MVC, MVVM, Singleton, Adapter, Decorator, Interpreter, Mediator, Observer
Test: Unit Test (XCTest), Debugger, Continuous Integration (CI/CD), Instrument, TestFlight
Professional Profile
Extensive experience and expertise with native iOS application development using Xcode, Swift, Objective-C, Storyboard and Instruments in an enterprise environment
Knowledge of many design patterns applicable to iOS development, such as Singletons, KVO, Notifications, MVC, MVVM, Factory, Object-Oriented Programming (OOP), Object-Oriented Design (OOD), and Protocol-Oriented Programming (POP).
Proficiency with CocoaPods for dependency management and integration of 3rd-party libraries.
Adept at the use and integration of MapKit, GameKit, EventKit, UIDynamics, CoreGraphics, CoreLocation, AVFoundation, CoreAnimation, CloudKit, Social Framework, SQLite, CoreData, AlamoFire, Google APIs, and various other 3rd party frameworks and APIs.
Skilled at asynchronous programming with GCD and NSOperations.
Skilled at integrating RESTful and SOAP web service communication within iOS as well as parsing data responses such as XML and JSON.
Strong understanding of Internet protocols and technologies (TCP/IP, UDP, SSL, DNS, FTP, etc.).
Worked extensively on GitHub, GitLab, SVN and Git local repository.
Committed to the SOLID principles; strive to produce stable code of high quality and reliability and aim for strong quality code metrics.
Experience in unit test and automation test; highly adept in Testing and Debugging using XCTest framework, Breakpoints, LLDB statements, NSLog statements, and Instruments; capable of managing/monitoring data traffic as well as troubleshooting/reporting issues.
Skilled in the disciplines of Software Engineering with strong commitment to organizational work ethics, value-based decision-making and managerial skills.
Eager team player, that always strives to meet all deadlines and assist others as much as possible; shows initiative to initiate and actively facilitate meetings and issue resolution
Excellent organizational skills and communication skills both verbal and written, with experience working with a variety of team makeups including local and international teams.
Skillful with requirement gathering and producing technical documentation and wireframes.
Experience developing mobile applications throughout the entire software development lifecycle (SDLC). Experienced in using Agile methodologies, participating in Sprints and Scrums; and employing Test Driven Development (TDD) and Continuous Integration.
Experience
APR 2019 – PRESENT
Senior iOS Developer / BEST BUY CO, Richfield, MN
https://apps.apple.com/us/app/best-buy/id314855255
Used Storyboards to design and develop custom UI from the wireframes
Worked with MVVM architectural pattern with Delegation, Observer, Singleton, Notification and KVO design patterns
Handled product barcode and QR code scanning with AVFoundation
Redesigned and implemented the user profile page using AutoLayout and TableView to improve user experience
Implemented custom Map functionality and features by leveraging delegate callbacks available in MapKit and CoreLocation; made UI tweaks with MKAnnotations
Implemented functionalities to invoke and consume Restful web services and parsed the response with JSONDecoder
Tested newly implemented features using XCode IDE with XCTest for Unit Tests and TestFairy for functional testing
Maintained existing unit tests and added new unit tests and UI tests, following Apple UI Testing guidelines and best practices
Verified and debugged feature/functionality implementations and enhancements in the application using a combination of NSLog statements, Breakpoints, and LLDB statements as per QA team’s feedback
Ensured consistency in design by collaborating with Android team.
Used a private Git server for version control and worked with Jenkins Continuous Integration server
JAN 2018 – MAR 2019
Senior iOS Developer / YOMP, San Diego, CA
(removed from App Store)
Used Swift and Objective-C to develop the iOS application in XCode IDE
Participated in Daily Scrums and Sprint planning, following the Agile methodology with 2-week development Sprint and 1-week testing Sprint
Built iOS Storyboards and established IBOutlet and IBActions; created and performed segues between different scenes in the Storyboard
Used NSCache to enable caching workflow for images to reduce loading time from the initial launch of app onwards
Created Core Data Model and NSManagedObjects to persist data on the device for offline access
Used Auto Layout to implement UI/UX design by working closely with UX designer
Implemented application web server database with Firebase framework
Utilized multithreading APIs, GCD/NSOperation, for downloading images on background thread as to not lock up the UI and ongoing animations
Profiled the application extensively using Instruments to improve performance throughout multiple sprints
Installed frameworks and tracked dependencies using CocoaPods
Implemented a continuous integration system on Github with TravisCI to ensure quality code base and reduce issues
Introduced and enforced consistent programming styles using SwiftLint
Regularly performed code reviews to ensure efficiency, readability, and maintainability
Published beta version of the application via TestFlight
Set milestones, assigned tasks and monitored performance using Asana
Effectively and actively plays the role of technical advisor for projects, providing advice on tools, process and design to others
MAR 2017 – DEC 2017
iOS Mobile Developer /
BLOOMINGDALE’S INC, New York, NY
https://itunes.apple.com/us/app/bloomingdales-designer-style/id525536985
Used Swift to implement the application and worked with Objective-C in a hybrid codebase
Used MapKit and CoreLocation/Location Manager to implement functionalities for Store Locator and added custom map display features
Designed signup page and added validations for all fields
Implemented custom UITabBarController & UINavigationController for easy navigation within the app
Built parts of the data access layer and service access layer and delegated all web communications so that they are performed in background threads to enhance performance and user experience
Analyzed and optimized the UI and the backend interface code for efficiency and performance
Added animation and custom scene transitions for better user experience
Sent push notifications using Apple Push Notification Service (APNS)
Contributed to the Implementation of Localization to attract a wider audience of customers
Refactored the code base with MVVM architectural pattern and various other design patterns such as Singleton and Delegation
Worked with QA to fix bugs and documented them in Jira
Attended brainstorming sessions and contributed to iOS app enhancements, features, and fixes
Worked both independently and with the iOS development team and cross-functional teams
Active in leading and mentoring other team members
AUG 2015 – FEB 2017
iOS Application Developer / TAKL, Brentwood, TN
https://itunes.apple.com/us/app/takl-on-demand-home-services/id1069423956
Worked with both Swift and Objective-C in troubleshooting, development and feature implementation
Refactored and customized a variety of custom UI, including UICollectionView and UITableView, for various user information with a global branding theme
Participated in Sprint planning meetings and worked with team lead and product manager to prioritize tasks in JIRA
Designed interface with Design & UX team for better usability and maintained relative nativity
Designed the code for random string generation following user options such as password length, special characters, and case sensitivity
Fixed memory issues by using Instruments, most notably using the Allocations and Time Profiler
Designed and demonstrated several POC’s for new functionalities and microfeatures
Implemented SiteCatalyst framework to track all behaviors of user and provide analytics
Enhanced and optimized the menu design and functionality for an improved user experience
Added Localization to the app to enable content tailored to a user’s language settings
Education
B.S. Mathematics - Computer Science / UC San Diego