- 9 + years of iOS mobile apps development experience, starting with iOS4
- Proficient in understanding customer and business needs, as well as server/hosting requirements, data modeling, business logic and UX/UI design
- Highly - experienced with design patterns such as MVC, MVVM, Delegation, Singleton, Categories, Notification, KVC, Blocks
- Increased security practices.
- Valuable experience in the entire software development life-cycle including requirements gathering, design, coding, testing, debugging and maintenance
- Strong working noledge of Xcode, Cocoa touch, Objective-C, and iOS5 through iOS10
- Experienced persisting data on device using SQLite, CoreData, Realm and NSUserDefaults
- Experience integrating with multiple RESTful and SOAP web services, parsing JSON and XML, responses respectively
- Constructed and implemented UI designs using Storyboards, XIB files and programmatic UI
- Performed functional Unit Tests using the XCTest framework
- Solid understanding and use of various iOS frameworks such as: UIKit, MapKit, Core Location, AVFoundation, Core Audio, Quartz Core, Security, Data Protection, SSZipArchive, Fabric/Crashlytics, Urban Airship, AFNetworking, Social Framework, Event Kit
- Extensive use of Grand Central Dispatch (GCD) to perform tasks on different threads, allowing for a more lag free user experience
- Experienced developing with Watch Kit and watches
- Working experience in ARC, as well as the older, MRR for managing memory
- Experience working with Swift 1 through Swift 3
- Enthusiastic and willing to do watever it takes to make sure tasks are completed on time and to the highest standard
Languages: Swift, Objective-C
Databases: SQLite, Core Data, Realm
Frameworks: Cocoa Touch, Core Location, Foundational, UIKit, Core Graphics, MapKit, XCTest, Google API, Facebook API, Event Kit, Watch Kit, Fabric/Crashlytics, SSZipArchive, Security Framework, Urban Airship, Fabric
Web Services: RESTful, SOAP, JSON, XML
IDEs: Xcode, Eclipse
Libraries: AFNetworking, Reachability, Red Laser, CocoaLumberJack
Version Control: GIT, SVN, SourceTree, Tower
Issue Tracking: JIRA
Methodologies: Agile, MVC, TDD, SCRUM, Waterfall-hybrid, Categories, Blocks, Continuous Integration, Delegation, Singleton, KVC, Notification, PUSH Notification, Localization
Analysis and Modeling: UML
Operating Systems: iOS4-iOS10, OS X, Linux, Windows.
Tools: Storyboards, Interface Builder, Separations, NSXMLParser, NSJSON Serialization, GCD, UI Refresh Control, NSURL Cache, Keychain, Instruments, Allocations, Leaks, Zombies, LLDB, CocoaPods, Flinto, Sketch
Data Persistence: SQLite, Realm, Core Data, NSUserDefaults
Confidential, Atlanta, GA
Sr. iOS Mobile App Architect
- Managed 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 a private GitHub and Jenkins.
- Responsible for issue tracking and project management in JIRA Agile.
- Developed and architected the application based on the MVVM architectural pattern.
- Suggested diverse 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 modern 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, SQLite, UIKit, UIView, Adaptive Layout, Auto Layout, AirDrop, Document Picker, Keychain
Confidential, Plano, TX
Sr. iOS Mobile App Architect
- Initial task was to overhaul the wish list experience from adding multiple items to a single wish list to being able to save and make new wish lists, save to multiple wish lists and save items to different wish lists.
- Re-architected parts of the app to allow for a more smoother flow between screens.
- Added animations to transitions and views to provide feedback on user actions.
- Implemented a $4.5 Million + feature that allowed people to view an album and be able to purchase items associated with the photo that was displayed.
- Resolved freezing issues with the videos and improved for a smoother viewing experience.
- Put analytics throughout the components to allow tracking to see highly utilized features and experiences.
- Created and maintained the app to allow for automation.
- Worked in an Agile development environment with 1-week sprints to allow for quick turnovers and process changes.
- Used almost all native components to keep with strong security requirements.
- Updated UX elements throughout the app as requested to improve clarity.
- Handled compatibility with iOS 9 through iOS 11.
- Pair programmed to halp accomplish and finish tasks on time.
- Helped more junior developers with any questions they might has with storyboards and general iOS tasks, and taught Git CLI to other developers.
- Continually gave feedback on better iOS design concepts when something didn’t feel correct.
- Used Charles to diagnose and reverse engineer some web components and network calls.
- Used instruments to profile the app and locate memory leaks and performance bottlenecks.
- Migrated the app from using a custom serializing to using encodable to facilitate better access to JSON properties.
- Took initiative to document visual errors on the iPhone x and report ahead of time.
- Implemented animations that provide user feedback thus enhancing user experience.
- Implemented the ability to share videos and products with the share sheet.
- Used Jira to keep track of tickets and work progress, and updated tickets as they were fixed.
- Used UITest to ensure the app was well-tested and wouldn’t break because of a change.
- Used BitBucket Gui for manage code base in Git repository.
Technologies Used: iOS 9 - 11 backward combability, BrightCove Native Player SDK, PromiseKit, CoreLocation, NSUSerDefaults, Swift 3.2 & 4, Doxygen, AppleKit, Adobe Analytics, Charles, Zeplin, BranchIO, SwiftLint, UberTesters
Confidential, Austin, TX
Sr. iOS Engineer
- Finished the first app from design to working production line in a week.
- Responsible for project planning, architecture and design, implementation, testing, approval and deployment.
- Rearchitected the external facing app to be easier to extend.
- Migrated the code-base from Objective-C to Swift3 to keep it modern and sleek.
- Worked with a Swift-Objective-C hybrid code-base.
- Used AudioKit to play, record and email audio files that are used to run analysis on the server.
- Used Flinto to create and design micro-interactions to demonstrate prototypes before being built.
- Redesigned settings screen to wat was designed with new reusable UI/UX components.
- Resolved critical issues causing an app to crash.
- Resolved critical issue involving network traffic and traffic through the web services. Troubleshooting and root cause analysis revealed a problem with RESTKit limits with handling of network traffic and restful web traffic
- Balanced priorities and scope creep to ensure timely deliveries and no missed dates
- Implemented sharing via Emails, Dropbox, Airdrop and more for large Audio Files
- Utilized GCD to keep the app running smoothly.
- Project used Agile methodology in 2-week sprints that resulted in quick turnarounds with bi-daily scrums.
- Implemented use of Android Studio versus Eclipse for development work.
- Decreased product development cycle times.
- Redesigned and engineered mobile agility process with high use of current technology, systems and existing organization assets.
- Worked with Objective-c and Swift hybrid code bases; practical experience working with bridging header files and minor issues with a dual language code base
- All code for the mobile and server applications were written using strict object-oriented design techniques.
- Refactored execution management to be handled in the background without locking up the main thread and UI using GCD; NSOperations also leveraged for more complicated concurrency concerns
Technologies: Swift 3.0, Objective-C, AudioKit, CallKit, Encrypted Core Data, Core Data, RESTKit, Flinto, Sketch, Storyboards, Singletons, Managers, STATEful programming, Push Notifications, Localization
Confidential, Mounds View, MN
Sr. iOS Developer
- Added a toolbar to improve user experience in dismissing the keyboard on iPhone
- Fixed a custom calendar implementation to work more predictable and fixed long-standing issues
- Resolved crash scenarios that involved the calendar, when switching to a new calendar view
- Rebranded the app and changed assets, including updating the interface to be cleaner and use the newly defined colors
- Created a dynamically sized UITableViewCell to be able to fit all the information that needed to be shown for the cell
- Ensured sure that the apps' security requirements and directions by the security team were strongly followed
- Updated AFNetworking from version 1.3 to 3.1, to replace the now deprecated NSURLConnection with NSURLSession
- Delivered code continuously via 2-week sprints and daily deliverables, with updates to Jenkins as well as managing it
- Updated old scripts and jobs to keep the app as modern as possible
- Created POCs to move the app to a schema-based deployment
- Created and maintained custom CocoaPods libraries, to promote code reuse throughout the organization
- Talked about best practices with other developers in the organizations
- Code stored in Bitbucket Repository
- Profiled the app using instruments to see performance leaks, memory optimizations and battery use
- Resolved long standing crashes and weird behavior that was intermittent in the app
- Rearchitected the app in several places to improve the readability, comments and stability to fit a more MVC pattern
Confidential, Austin, TX
Sr. iOS Developer
- Initial task was to complete login UI-refactoring based off wireframes from lead architect, using Storyboards, size classes and Auto Layout constraints
- Redesigned shopping list ViewController contents, including custom UITableViewCells
- Resolved crash scenario for iOS7.1.2 users when tapping shopping list and other bugs with Breakpoints, LLDB statements and Zombies
- Implemented Google+ login for users by working with Google API
- Added video functionality within app using AVFoundation library
- Invoked RESTful web services using AFNetworking
- Parsed JSON responses using NSJSONSerialization into NSObjects
- 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
- Handled optimizations of application for compatibility with iOS9 standard calls
- Created POCs in Swift2.0 to prototype current app functionality for decisions on integration
- Project matriculated utilizing the Agile/SCRUM methodology
- Code delivered in 2-week sprints
- Project developed on a team of 3 other iOS developers and 3 backend developers
- Code stored in Git repository; SourceTree used for version control functions
- Created Singleton for converting measurement values from US to Metric based off user’s selection
- Redesigned views using Storyboards for expanding user preferences and filters for optimized searching
- Implemented social sharing APIs like Facebook, Twitter, Pinterest, and Google for allowing user to share recipes to the desired social network
- Made RESTful web calls using NSURLSession and parsed response JSON using NSJSONSerialization
- Utilized GCD for lazy loading, multithreaded workflow to invoke web service request on background to not tie up the main thread
- Added implementation to registration workflow that allows a user to register via Facebook and Google+ social network logins
- Utilized iCloud API for syncing shopping list among other iOS devices
- Refactored code and thoroughly-tested app to ensure compatibility with iOS8 SDK
- Redesigned the home screen experience and other views using Storyboards and AutoLayout constraints
- Code stored in SVN repo
- Project governed by Agile/SCRUM methodology
- Resolved numerous bugs using NSLogs, Breakpoints, LLDB statements and Instruments
Confidential, Seattle, WA
- Fully refactored UI into flat, minimalistic standard of iOS7 using Storyboards and AutoLayout constraints
- Constructed new UIs from wireframes from Lead Architect
- Refactored RESTful requests from NSURLConnection to NSURLSession to be compatible with iOS7 new standard
- Parsed JSON responses using NSJSONSerialization
- Enabled social sharing capabilities by implementing the Facebook API
- Imported XML formatted recipes from cooking sites and blogs utilizing NSXMLParser
- Project development team comprised of 3 other iOS developers and 3 back-end developers
- Project matriculated using Agile/SCRUM methodology; code delivered in 3-week sprints
- Code housed in Git repository
- Version control functioning handled by SourceTree application
- Debugged several bugs using NSLogs, Breakpoints, Instruments, and LLDB statements
- Map View implementation using the MapKit and Core Location Frameworks
- Web Services consumption on the iPhone to communicate with the MediaWiki API using the NSURLRequest and NSURLConnection objects natively; POC’s where made for using ASIHTTP
- Creating project and application architecture deliverables that are consistent with architecture principals, standards, methodologies, and best practices; namely allowing for maintainability and scalability
- Lead technical design sessions with the development teams, including the creation of class models, sequence diagrams, component models, etc., and detailed design specifications to ensuring that architecture standards are followed.
- XML Response parsing using the SAX NSXMLParser and NSXMLParserDelegate. JSON Response parsing using the SBJSON Framework.
- Data scrolling is achieved using UIScrollPane and UITextView
- Lead the technical analysis and evaluation of modern technologies, vendors, products, and product enhancements with a strong point of view on end-user functionality and an eye for highly usable user interface design.
- Responsible for defining technical evaluation criteria for product and technology selection and determining technical approaches to ensure all architectural solutions result in a coherent systems design.
- Audio playback using the AVAudioPlayer from the AVFoundation Framework.
- This application was designed and implemented using iPhone SDK, Xcode, interface builder with XIB’s, objective-c and instruments for performance tuning/optimization