Senior Software Engineer (Native mobile – Swift / Kotlin)
Roles and responsibilities
All engineers at Red Airship are expected to:
- Meet programming and quality standards by following production, productivity, quality, and customer-service standards; identifying work process improvements; implementing new technology.
- Integrate applications by studying and implementing API’s and libraries.
- Troubleshoot development and production problems across multiple environments and operating platforms.
- Support users by developing documentation and assistance tools.
- Work with the customer’s architects and developers.
- Hone your skills, update job knowledge by researching and trying out new technologies and software products; participate in educational opportunities; read professional publications; maintain personal networks; participate in professional organizations.
On top of these, a typical week at Red Airship in this role may involve:
- Defining application objectives by envisioning system features and functionality, analyzing and clarifying user requirements with customers.
- Making technical decisions, researching best practices and technology required for a project, comparing advantages and disadvantages of various technologies either custom-built or off-the-shelf.
- Driving enablement and training of new team members; Supporting individual development of other developers by providing advice, coaching and educational opportunities.
- Conducting regular code reviews and guiding developers to adhere to appropriate standards.
- Leading architecture design and solutioning activities.
As a senior position, you are also expected to take part in defining your own role and responsibilities.
Good foundational technical skills and some industry experience are a must. We don’t expect you to be experts in our entire tech stack, but we believe the best people can transfer their skills and experience to the language or framework where required.
- Great interpersonal communications capabilities demonstrated through a history of successful software development projects.
- Comfortable talking to clients, designers, and end users.
- Good presentation skills, effective communication internally and externally.
- High level of self-motivation and maturity.
- Capacity to evaluate trade-offs between correctness, robustness, and performance.
- Strong desire to tackle hard technical problems.
- Familiar with Swift/Kotlin, some knowledge of ObjC/Java where required.
- Familiar with respective package management systems (SPM / Carthage / CocoaPods / Gradle, etc), and popular/common libraries
- UI and e2e testing frameworks
- iOS/Android standard frameworks (Biometrics, security, etc).
- Understands security and best practices.
- Bachelor’s level degree in Computer Science, engineering, mathematics, or another related field. In the absence of which, at least 6 years of working experience in related fields.
- Able to review wireframes and design to give constructive feedback, highlight uncertainties, give suggestions on feasibility.
- Familiar with Mac/Linux environments and command line interface.
There are always extra skills that can give you an edge, not necessarily just in technology:
- Experience designing and building production-ready native mobile applications.
- Hybrid frameworks like React native or ionic/cordova
- Commercial acumen, experience working alongside commercial teams.
- Prior experience working for a technology startup
- Experience with automated testing / TDD.
- Experience with the Agile mindset and SCRUM methodology
- Knows when, why, and how to accept technical debt
- Project management experience, working with any known methodology and more importantly, being able to scope, manage and deliver on a plan no matter how simple or complex.
- Experience training and mentoring junior members of the team