We are seeking a Senior iOS Developer who is passionate about great software and motivated to make a huge impact with our mobile development. We are excited about candidates who are creative, innovative and enjoy working through problems which ultimately results in solid software designs that are tailored completely for our users. To be a successful member of this team you must prioritize quality and be driven by self-motivation to succeed.
Responsibilities: Contribute to the mobile application strategy
Design and implement features for a suite of Mobile Applications
Learn and apply new technologies, best design practices and usability patterns
Contribute to end-to-end system architecture, working with back-end engineers
Collaborate with product managers and other technical teams to create optimized and delightful user experiences.
Maintain source code quality, provide code review feedback, and help create team coding principles.
Mentor, train, and provide guidance to other team members and lead by example.
Basic Qualifications: Bachelor’s degree in Computer Science (or equivalent experience)
7 years of software development experience with Apple platforms
Expert knowledge of Swift
Broad experience with the iOS SDK, particularly UIKit, SwiftUI, and Foundation
Solid experience with asynchronous programming using structured concurrency and GCD
Understanding of reactive paradigms, experience using Combine and/or RxSwift is a plus
Solid understanding of the MVVM architectural pattern
Experience with consuming and designing RESTful API type web services. Experience with realtime streaming frameworks like Socket.io, Ably, or LightStreamer is a huge plus.
Strong knowledge of iOS UI design principles, patterns, and best practices. iPadOS is a plus. The ability to cleanly integrate with both in one codebase is ideal.
Solid fundamentals with XCTest, and hopefully you’ve heard of SwiftTest. You don’t aim for 100% coverage, but instead focus on what really matters.
Excellent debugging and optimization skills, including use of Instruments for identifying issues as they arise, and utilizing performance testing to ensure they don’t happen in the first place.