Senior iOS Software Engineer

Product Development Belgrade, Serbia


Description

Position Description
 
SnapOne is a leading manufacturer and distributor of audio, video, surveillance, power, and wiring equipment for residential and commercial A/V integrators.  We believe that life’s better when everything works together. And the same can be said about the collaborative work we do. Join our award-winning team in our continuous quest to deliver the most brilliant, personalized smart home experiences to people around the world. 
The Senior iOS Software Engineer will report to the Software Development Manager of Smart Device Software. They will evaluate and select technology and architecture that is appropriate for the desired customer experience, establish patterns, procedures, and practices that enable the highest quality standards. They will also be responsible for developing mobile applications appropriate for our customers and utilized by thousands of home automation systems. This position will help develop the Home Control Customer Interface for iOS mobile apps utilizing the Swift programming language.  
This role will work cross functionally, and the candidate should be a motivated self-starter with good testing and DevOps practices.  A successful individual should follow the best industry practices to demonstrate intellectual curiosity, accountability, and a passion for software development, home automation and mobile development. 
 
Specific Responsibilities
  • Ensure parity between iOS and Android apps by working with the Android team developers
  • Use Test Driven Development to speed feature delivery and reduce the bug count while increasing test code coverage as well as perceived customer quality
  • A good understanding of iOS app development, Swift and SwiftUI, thread management, custom views, and animations
  • Experience with iOS app architecture patterns (MVVM, MVP, etc.) and design principles
  • Experience integrating with backend systems, web services, and third-party software
  • Proven understanding and experience using reactive frameworks
  • Build high-quality and maintainable code by always writing tests and using performance and static analysis evaluation tools
  • Experience with test automation and continuous integration
  • Familiarity with Scrum and Agile methodologies
  • Excellent English communicator who collaborates well across teams, while also being able to work fully independently when needed
  • Implement graphical designs within the application with pixel perfect accuracy 
Required Qualifications
  • 5+ years software engineering experience and a bachelor’s degree in computer science, software engineering or relevant field of study 
  • 3+ years of extensive experience developing iOS mobile native applications in Swift and SwiftUI
  •  Solid understanding of the full iOS mobile development life cycle 
  •  Understanding of mobile database data persistence, including the use of Realm
  •  Strong knowledge of iOS UI design principles and best practices
  •  Advanced knowledge of SwiftUI layouts and creating adaptive layouts for various hardware    configurations
  •  Experience writing custom views and controls
  •  Experience in testing iOS applications: unit test, integration test, UI test, performance test
  •  Experience working in a team and mentoring junior members
  •  Working knowledge of Internationalization and app localization