Job Description
- Contract length: 6-12 months
- Hours per week: 40
- Start date: Early February
- Timezone: Must be willing to work PST or MST
- Candidates must have their own laptop/equipment
As Software Engineer, iOS, you build native mobile applications for iOS. You work as part of
a small cross-functional team to deliver features on our roadmap, as well as continually
maintaining and improving a specific area of our product. You are responsible for large pieces
of work, as well as setting best practices and mentoring other members of the team.
Essential Duties & Responsibilities
- Build, test and maintain native mobile applications using modern and declarative use interfaces using SwiftUI and supporting Swift.
- Architect and develop applications following CLEAN architecture principles.
- Ability to work with CI tools to support mobile builds and releases
- Participate in technical design and planning discussions
- Uphold standards for quality by performing code reviews, fixing bugs, creating automated tests, and monitoring performance
- Collaborate with UX designers to build polished user interfaces
- Adhere to all system operation policies including but not limited to Access Control, Encryption Control, Logging, Change Management, Platform Security, System Configuration, Physical and Incident Management policies.
Desired Outcomes
- Write high quality code with automated test coverage
- Deliver work on well-communicated timelines
- Collaborate with the cross-functional team to support project discovery, break down tasks and help with estimation.
Required Education / Certificates / Experience
- Experience building native iOS applications
- Knowledge and understanding of mobile development best practices
- Experience building and maintaining automated test suites
Attributes / Characteristics
- Writes correct and clean code with guidance and consistently follows stated best practices
- Understands how their work fits into team and company objectives
- Prioritizes tasks without getting caught up in unimportant details
- Communicates assumptions and gets clarification on tasks up front to minimize the
need for rework. Occasionally provides assistance to other team members
- Solicits feedback from others, and gives timely, helpful feedback to peers and managers