About the Opportunity
As an iOS Engineer, you’ll help us maintain and develop new features for the mobile app experience of our world-class platform. Working closely with designers and other members of the Mobile team, you’ll integrate mockups and user flows and utilize our existing infrastructure to deliver new experiences within our apps. As much as we love our platform, we know it’s not perfect so you’ll help us out with fixing reported bugs and assist with getting app updates released.
Do you have a passion for building apps that are well-designed, both interface and under-the-hood? Our ideal candidate is passionate about app development, both with the code they write and with the overall experience for the end user as well. You put as much care into building apps as you do supporting them.
New feature getting added to our auction platform? You’ll architect the experience from start to finish and put together a UI with attention to every little detail from the design deliverables.
What does success look like?
- Maintain and add new features to our app-based auction experience and organization event management apps
- Ensure a high level of app stability and help reduce bugs being introduced in the system
- Add additional product support and features to our virtual terminal app
- Build scalable, well-documented code that is consistent with existing patterns
- Assist in the redesign of Givi, our donor-facing app
What challenges can you expect?
- There is a lot to learn; the overall platform is complicated, multi-faceted and the auction system very complex!
- Our newer apps use the Reactive programming paradigm, if you’re unfamiliar there will be a learning curve
- Most of the system features are not test-driven, requires manual testing and lots of scenarios to account for
- Our apps have ARC turned off (don’t ask), must demonstrate familiarity of non-ARC practices
What do you need to qualify for this role?
To succeed in this role, you’ll need:
- Experience building iOS apps for both iPhone and iPad
- Extensive experience building apps in Swift
- A solid understanding of Objective-C
- Experience with Grand Central Dispatch, threading and concurrency
- Familiarity with Server Sent Events
- Solid understanding of RESTful APIs
- Experience managing code in Github (or some other method of version control)
- Networking using URLSession and AlamoFire, working with JSON and Codable
Things that will help you stand out:
- Functional Reactive programming experience using RxSwift, RxCocoa and various RxCommunity Libraries
- Experience with more advanced Swift features like generics and protocols
- Complex library management and integration experience
- Experience integrating 3rd party SDKs (like Apple Pay or Facebook Login)
- Experience with Firebase and analytics
- Unit testing
- Understanding of App Store Connect and the deployment lifecycle
- Working with the KeyChain
- Experience with the MVVM or MVVM-C pattern
- Building UI in both the storyboard as well as programmatically using auto layout