PROFESSIONAL SUMMARY
EXPERIENCE
* ***** ** ********** ** mobile app development, creating apps for iOS devices using Xcode and iOS SDK with Swift, Objective-C, and Cocoa frameworks.
* ******** Facing Enterprise iOS mobile apps for iPhone/iPad published in the App Store.
More than 7 years of experience in technology, automation, and software development.
DEVELOPMENT
Experience in iOS mobile app development using both Swift and Objective-C; particularly advanced in programmatic development using Swift 1 – Swift 5.
Expert coder who consistently produces high quality, reliable, consistent, and stable mobile app code.
Looks for ways to apply new iOS technologies to current projects in ways that enable improvement, efficiencies, and marketable design.
Have a keen analytical ability and enjoy the challenges of problem-solving; particularly as applied to the challenges of iOS mobile app architecture, development and performance.
Plan solutions by testing ideas prior to making a decision or beginning implementation in any iOS development project.
Eager to keep learning more in my field of iOS app development, and enjoy following trends and new technologies.
COLLABORATION
Works with iOS mobile app product owners and stakeholders to develop products that support business needs.
Excellent personal presence with proven ability to work with all levels of management.
Works with iOS creative team and UX designers to develop interfaces according to specification, and following best practices.
Works with testing and QA, defining processes and designing tests to ensure quality.
LEADERSHIP
Have led Agile/Scrum iOS app development teams, facilitating daily scrums and weekly or bi-weekly sprints.
Team player who participates with other developers and assists through mentoring and coaching.
As a consultant, contributed problem-solving analysis and recommended solutions within the guidelines of the project and advice on following best practices.
Leads and manages iterative development process employing continuous integration, test driven development and scrum practices.
TECHNICAL SKILLS
PROGRAMMING LANGUAGES
Swift, Objective C, C, C++, C#, .NET, Java, SQL, Python, R, Scala, HTML, UML, CSS, JavaScript
Web Scripting
HTML/CSS, PHP, CMS, XML, jQuery, XML, Bootstrap, jQuery Mobile
WEB SERVICES
RESTful, SOAP, JSON, XML
DESIGN SOFTWARE
Sketch, Zeplin
TESTING
TDD, Unit Testing
XCTest, TestFlight
Automated Testing
CONTINUOUS INTEGRATION
Jenkins, Hudson, Travis CI
IDE
XCode, Eclipse, Visual Studio
DATABASES
SQLite, SQL. mySQL and MS SQL Server, Queries, tables, forms, design and development
METHODOLOGIES
Agile Scrum, SDLC
MODELING
UML, Diagrams, ERD
iOS
Cocoa Touch, CocoaPods, UIKit, Core Graphics, Core Animation, Core Bluetooth, MapKit, TextKit Core Location, EventKit, Social Framework,
LocationKit
GCD, Interface Builder
Adaptive Layout
Auto Layout
Storyboards, Xibs, Standard System View Controllers
Views and View Controllers, UI State Preservation
Apple Push Notification Service
Local Notifications
VERSION CONTROL TOOLS
Git and SVN
Desktop Software
Proficient in Microsoft Office Word, Excel, PowerPoint, & Access
Architecture & Design Patterns
MVC, MVP, MVVM, OOP/OOD, Builder, Abstract Factory, Visitor, Singleton, Key Value Observing, Observer, Decorator, Delegation, Proxy, Interpreter, Iterator, Mediator
PROJECT TOOLS
JIRA, Confluence, KanBan, Trello, Slack
PROFESSIONAL EXPERIENCE
eBay
San Jose, CA
May 2020 – Present
SENIOR IOS MOBILE ENGINEER
The eBay app had already been well established when I joined the team. However, UI testing was considerably unstable, and the codebase needed to be cleaned up and modularized. In addition, the company was looking to improve the look and feel of the app with new features and enhancements.
eBay’s iOS App
https://apps.apple.com/app/ebay/id282614216
The eBay app is an online auction and shopping app that allows users to buy and sell all kinds of items worldwide, including collectibles, sneakers, and tech gadgets. Users can find deals and offers, place orders quickly and securely, track orders in real time, and create listings for items they wish to sell without hassle.
Responsibilities/Actions:
Worked in a team consisting of 6-8 iOS developers, 3-5 iOS QEs, and 1-2 Product Owners.
Worked in an Agile development environment in 2-week sprints.
Coordinated with our team’s Agile lead to plan upcoming work through biweekly sprint planning meetings and grooming sessions.
Developed the app and created views using Swift 5 and Objective-C on Xcode 12.
Updated status of stories, bugs, and tasks using JIRA.
Created pull requests for feature development and bug fixes using GitHub.
Used GitHub and Jenkins for Continuous Integration and monitoring pull request builds; fixed build issues whenever the pipeline failed.
Coordinated with QEs to verify completed features and defects.
Migrated web views from UIWebView to WKWebView; converted web view properties to WKWebView equivalents.
Removed wrapper classes for the deprecated UIWebView.
Added image assets to support new payment methods such as Sofort, and to show warranty information.
Used NSTextAttachment to create labels that include images.
Implemented a dot indicator for the Image Panel on the View Item page using UIPageControl, to indicate that the item has multiple images.
Coordinated with the design team and iOS architecture team while working on the Image Panel dot indicator feature to create an optimal UI/UX.
Coordinated with our Product Owner and QEs to facilitate AB testing for the Image Panel dot indicator through a custom experimentation platform.
Collaborated with the iOS architecture team to add support for videos on the View Item page.
Collaborated with the backend service team to create an API contract for videos on the View Item page.
Consumed video URLs in HLS format.
Used a custom video player view that was created using the MVVM architecture, AVFoundation, and PassthroughSubject to show videos and handle user inputs.
Enhanced the appearance of text fields using a custom text field class that leverages Core Animation and Combine.
Modularized the View Item domain by moving views and classes from the main app into a separate module for our domain.
Removed XIB files from our codebase in order to improve compile times and reduce the number of style-related defects.
Created views programmatically using NSLayoutConstraint and PureLayout.
Used GCD multithreading to build and reload views.
Used NSURLSession to send API requests and receive API responses.
Monitored API requests and responses using Charles Proxy and a custom, in-house network logging/debugging tool.
Consumed API responses in JSON format, and then converted the response into data objects used by the app.
Participated in bug bash sessions led by QEs to test new features, such as Escrow and videos on View Item, and to detect any feature-related bugs.
Used custom unit test classes based on XCTest to write unit tests for various features.
Used XCTest and XCUIElement to write and fix UI tests.
Created snapshot tests to test various views and UI elements.
Used the Accessibility Inspector and a custom Layout Inspector to fix UI and accessibility bugs.
Fixed accessibility bugs to conform to WCAG 2.0 standards.
Added localizable strings for accessibility.
Technologies:
Xcode, Swift, Objective-C, NSURLSession, GCD multithreading, MVC architecture, MVVM architecture, JSON, Git (source control), GitHub (source code repository), Figma (UI mockups), Jenkins (continuous integration), SourceTree (Git client), Charles Proxy (API request/response monitoring), JIRA (story/bug/task tracking), Slack (team communication), Accessibility Inspector, AVFoundation, Core Animation
MACY’S
San Francisco CA
May 2018 – May 2020
SENIOR IOS MOBILE ENGINEER
I Joined a team that involved converting one component of the app (the “Bag”) from Objective-C to Swift, as well as using a new API backend for any calls pertaining to the Bag; joined the team shortly after development had begun. Implemented the Bag component using the VIPER architecture and other design patterns. Learned about the architecture, development, and features through KT sessions.
Macy’s iOS App
https://itunes.apple.com/us/app/macys/id341036067
The new version of the Macy’s app is better than ever – good as new, improved performance, bug fixes and a host of new features for superior User Experience (UX).
Responsibilities/Actions:
Worked in a team of 11 members: Project Manager, Product Manager, 2 backend developers, 2 iOS developers, 2 Android developers, and 3 QE’s
Worked in an environment of Swift 4 developed in Xcode 9 and later Xcode 10.
Converted one component of the app (the “Bag”) from Objective-C to Swift, using Swift 4; responsible for optimizing the Bag page performance
Developed and architected the Bag component using the VIPER architectural pattern
Managed an internal CocoaPod to facilitate API calls to the backend
Enhanced modules of the Bag view; organized view components in a logical manner, such as by using stack views
Reduced the number of API calls needed for various bag functions
Consumed the API response, provided in JSON format, and then converted the response into a format that the app can understand
Used the delegation design pattern to handle various user inputs on the Bag page
Used the notification design pattern to pass data objects from one component to another
Created a class to save the promo code applied to the bag using a custom persistence module based on GRDB
Monitored API responses using Charles Proxy
Updated status of stories and defects using VersionOne
Fixed reported defects, including production defects, from VersionOne using Charles Proxy and the Xcode debugger
Used XCTest to write unit tests around the Bag module and our API calls
Provided builds to QE’s, our project manager, and our product manager as needed using Fabric
Facilitated daily standup meetings in the absence of the Project Manager
Coordinated with other teams dependent on our work to align efforts and releases
Coordinated with our team’s project manager to plan iterations and manage our backlog
Technologies:
Xcode, Confluence (documentation), VersionOne (story/defect tracking), Git (source control), GitLab (source code repository), Jenkins (continuous integration), SourceTree (Git client), Charles Proxy, Microsoft Teams (team communication), Fabric (builds)
SUNTRUST
Atlanta GA
July 2016 – May 2018
SENIOR IOS ENGINEER
This app had been around for a very long time, and the code base had never been fully transitioned to Swift. There was a lot of messiness in the code base which needed to be refactored, and performance was an issue. The company also wanted to update the look and feel of the app and expand on features, so it was time for a major overhaul. This presented me with the kind of challenge that I crave.
SunTrust Mobile
https://itunes.apple.com/us/app/suntrust-mobile-app/id458680449
This iOS app allows users to manage personal, small business and corporate accounts. It provides tracking, reporting, filtered search, and fraud alert. Users can find offers on a map, track reward points, and buy gift cards.
Responsibilities/Actions:
Manages the team in a full audit of the code base and planned the changes we wanted to make going forward.
Recommended methods, tools, frameworks, and technologies to best achieve the desired result.
Set-up and managed version control and continuous integration with GitHub and Jenkins.
Responsible for issue tracking and project management in JIRA.
Developed and architected the application based on the MVVM architectural pattern.
Suggested different ways to improve work processes by implementing new features in the Agile system.
Developed improvements using Core Animation and Core Graphics.
Responsible for enhancing various modules such as the different views and user interfaces.
Collaborated with cross-functional teams to define, design, and ship new features.
Worked on bug fixing and improving application performance.
Researched and evaluated new technologies to make the development process and workflow more efficient.
Served as client liaison on design, development, quality, and submission.
Provided regular update reports on overall application development status and tasks.
Documented project tasks and application functions and features.
Analyzed customer requirements and created a project plan and functional analysis for the design of the application.
Performed security audit to ensure that no confidential information was persisted on the device or transmitted insecurely, and that log-in credentials were securely stored with Keychain.
Technologies:
Swift, Objective-C, MVVM, Core Graphics, Core Animation, TDD, Testflight,, Auto Layout,, Keychain, CocoaPods, Git, Instruments
TD AMERITRADE
Omaha NE
January 2015 - June 2016
SENIOR IOS APP DEVELOPER
I had the opportunity to get on board this project early and participate in the design and architecture for this new app. This was an experience I had been wanting, and I still got to implement and deploy. Simultaneously, I was added great value to the team through my expertise and experience in leadership, project management, and app approval
TD Ameritrade Mobile
https://itunes.apple.com/us/app/td-ameritrade-mobile/id534659421
This great app does everything. The users account access allows banking and trading actions. Users can deposit checks, transfer money, as well as do research and place trades.
Responsibilities/Actions:
Provided advice/consultancy regarding team development and strategies.
Improved developer communication amongst the team.
Found the best workflows for source control, task management, and continuous integration.
Heavily revised an refactored an older app in Objective-C and transitioned the codebase to Swift
Designed custom iOS user interface classes to be used in the application using IBDesignables.
Added support for Apple Watch
Designed and developed remote data layer using protocols and dependency injection
Use of MVVM design pattern as a preferred architecture.
Implemented new menu design and functionality for an improved user experience
Followed Apple UI guidelines throughout the iOS mobile app project.
Involved in getting requirements from the engineering team and analyzed the feasibility with the existing system design.
Implemented SiteCatalyst to track all user behaviors.
Utilized Instruments, Crash Logs, LLDB statements, NSLog statements, and Breakpoints to resolve various issues and bugs brought to attention by QA team.
Discovered memory leaks and subsequently tracked down the root cause and resolved the issue using Leaks and Allocations.
Added Localization to the iOS app to enable content tailored to a user’s language settings.
Used AVFoundation to handle audio play back and video streaming in iOS. I made some changes to the interactions for a smoother user experience.
Technologies:
Swift, Objective-C, SiteCatalyst, Cocoa Touch, Localytics, Instruments, Time profiler, Allocations, Keychain
MASTERCARD
Purchase, NY
December 2013 – December 2014
IOS MOBILE APP DEVELOPER
On this project POC had already been done, the functionality and design created, but I was brought onto the team to help implement this new app, and I was excited to have the opportunity to work on something new. After the app was deployed, there was a lot of refinement to be done and features to add.
MasterCard Nearby
https://itunes.apple.com/us/app/mastercard-nearby/id778074772?mt=8
This iOS app locates MasterCard no-fee ATMs. The database includes over 2 million ATMs worldwide. The navigation provides door to door or step mapping in over 46 countries. City level search capabilities apply to over 200 countries. Sophisticated filters enable refined and efficient searches.
The app also lets users find merchant who will accept their card and who will provide cash back.
Responsibilities/Actions:
Developed app entirely in Objective-C, and started making some POC’s and prototypes in Swift towards the end of the project.
Worked with server team on integration of web services and authentication
Updated location finder functioning with MapKit for iOS.
Communicated with RESTful API to fetch information, such as nearby ATMs.
Used JSON parser to parse fetched REST data from server to the iOS mobile app.
Implemented Unit Testing of the iOS mobile app, and helped move the app to production.
Participated in testing for app submission and ensuring app store guidelines were met.
Implemented advanced animation techniques to provide a user-friendly interface.
Reviewed entire iOS code base and participated in peer-to-peer code reviews.
Worked closely with various departments to ensure that our iOS mobile app delivers the greatest experience to the end user.
Created a framework for reusable components that can be applied to iOS applications developed throughout the organization.
Technologies:
Cocoa Touch, Cocoa Pods, Xcode, Swift, Objective-C, MapKit, Core Animation, JSON, AFNetworking
FIDELITY INVESTMENTS
Boston, MA
January 2013 - November 2013
JUNIOR IOS MOBILE APP DEVELOPER
Project Summary
I joined a small mobile development team within the larger Fidelity software and web development department. As this was an established app, I did maintenance, troubleshooting and code reviews. My team lead and the very structured environment taught me good habits. I gained valuable experience in security and a love of working in finance.
Fidelity Investments App
https://itunes.apple.com/us/app/fidelity-investments/id348177453?mt=8
The Fidelity app is a trading app. It provides users with mobile access to their accounts, and they can do more than just view. Users can watch and track stocks, place bids, buy sell and have full control over their trading.
Responsibilities/Actions:
Worked on RESTful web services technologies to support the iOS mobile app.
Used Git extensively as the versioning tool for the iOS mobile apps development team.
Worked in Agile environment with active scrum participation, and assisted in documenting progress on backlog, bug fixes, and tasks.
Utilized MVC design pattern for modular and scalable development in iOS mobile apps.
Integrated third-party libraries to iOS projects, using Cocoa Pods.
Responsible for managing the backlog in JIRA.
Created views and linked outlets using Storyboard, based on wireframes.
Developed code for different views for portrait and landscape orientation.
Developed 3 different visualization approaches tied to the work order date segregated by timeframes.
Tested fixes using XCTest to ensure success.
Technologies:
iOS, Xcode, Cocoa Touch, Cocoa Pods, Objective-C, MVC, AFNetworking
GS MARKETING, INC.
Houston, TX
March 2012 - December 2012
SOFTWARE DEVELOPER I
Project Summary
Coding with Java and C++
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.
Maintained the company website and updated the website content as needed.
Created documentation to provide instructions to set up a Scala development environment.
Assisted other junior software developers.
Worked on projects to create Address Book using Java and Payment Processing using C++
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
Worked on projects to fix errors in existing scripts.
Worked on a project utilizing Java and C++ connected with Raspberry Pi
EDUCATION
Bachelor of Science
Computer Science; Concentration Software Design, Minor in Mathematics
University of Houston, Houston, TX