NK - iOS Engineer
As the Senior iOS Engineer, you'll guide a team that builds and ships apps that connect to millions of users in over 40 countries. We use scrum with daily stand-ups, two-week sprints, sprint planning, and retrospectives. You'll be interacting with other teams (quality engineering, design, content management, API, security, localization etc.) to ship a quality app worthy of the Swoosh. You'll use your Swift talent to help us build out our app with exciting new features and capabilities.
You will be working alongside other developers across various infrastructure layers, building new features, fixing bugs, and writing tests for your code. We’re looking for someone with a commitment to collaborative problem solving, sophisticated design, and creating quality products. Our ideal candidate will have an in-depth knowledge of Apple’s iOS SDK and the Swift language.
Combined with this technical knowledge, we’re looking for someone who can take direction and run with it and complete feature development with quality, on schedule, and according to specification.
- Senior developer with experience leading development efforts
- Drives design and coding solutions across the team
- Able to define architecture and oversee proper implementation
- Works with Product Owners and Managers to refine requirements with design estimates and alternate solutions
- Breaks down Stories with technical solutions for team
- Provides point estimation feedback and calibration for team
- Handles production issues and can resolve them without any assistance
- Frequently mentors other developers on the team
- Understands how to build maintainable and testable software
- Team player and goal oriented
- Collaborates well with teammates
- Constructively debates alternative approaches
- Can agree to disagree but still commit to team agreements
- Commitment to delivery with examples of helping team meet a difficult deadline
- Working hard and focused on critical path
- May have helped cover work from teammates that are absent
- May have come up with designs or technical solutions that saved the team time and effort.
- Responsive to critical issues and production outages
- Very clear, direct and concise communication
- Naturally explains with “what, how, why”
- Able to adjust communication to the audience
- Explain technical concepts in easily understandable terms to the business
- Leads with a concise direct answer, like the definition or answers the questions directly and does not start with examples.
- Provides supporting evidence for the definition through examples, how it works, or how to use it.
- Explains why a technology is used. Able to summarize benefits, drawbacks or tradeoffs
- Full understanding of iOS tech stack and Swift language
- Thorough understanding of UI architecture
- MVVM, MVP, MVC, VIPER
- Can explain tradeoffs with each one
- Code Quality differences
- Maintainability and Testability impact
- Memory Management
- Full understanding of the Automatic Reference Counting (ARC)
- Understands effects of references with Strong, Weak and Unowned
- Understands differences between Value types and Reference types
- Knows differences between Heap and Stack memory
- Understands “var” versus “let” and when to use each
- Understands “late” initialization and when and why to use
- Never uses “Forced unwraps"
- Uses “If let” and “guard” statements
- Utilizes Extensions all the time, especially with UI components
- Explains Generics, when to use and their benefits
- Design Patterns
- Understands the core design patterns with “what, how, why“
- Observer, Factory, Delegate, Adapter, Builder, Singleton
- Experience with Dependency Injection
- Practices SOLID principles
- Understands memory management and memory leak issues with solutions
- Understanding of basic data structures and algorithms
- Arrays, Lists and Dictionaries
- Leverage interfaces to create Mock objects
- Understands benefits of Mock object
About Our Client:
Our customer does more than outfit the world’s best athletes. It is a place to explore potential, obliterate boundaries and push out the edges of what can be. The company looks for people who can grow, think, dream and create. Its culture thrives by embracing diversity and rewarding imagination. The brand seeks achievers, leaders and visionaries. At NIKE, Inc. it’s about each person bringing skills and passion to a challenging and constantly evolving game.
Our customer is a technology company. From our flagship website and five-star mobile apps to developing products, managing big data and providing leading edge engineering and systems support, our teams at Our customer Global Technology exist to revolutionize the future at the confluence of tech and sport. We invest and develop advances in technology and employ the most creative people in the world, and then give them the support to constantly innovate, iterate and serve consumers more directly and personally. Our teams are innovative, diverse, multidisciplinary and collaborative, taking technology into the future and bringing the world with it.