Design, build and maintain advanced applications for iOS platform.
Conduct code refactoring, optimization, and building reusable components for future use.
Participate in research and application of new technologies to products.
Collaborating with the backend developers and other team members to establish objectives and design more functional, cohesive codes to enhance the user experience.
Optimize applications for maximum speed and scalability.
Understand the product thoroughly, constantly optimize the product, identify and problems, improve stability and user experience
2) Job Requirement:
1. Education- Bachelor’s degree in Computer Science or related field
2. Technical experiences
2.1 Must have
Minimum 1 year of experience in iOS app development
Have good knowledge or experience with iOS SDKs, frameworks and third-party libraries
In-depth understanding of computer science fundamentals (OOP, data structures and algorithms, architectures, etc)
Familiar with SOLID principles, architectural patterns (Viber, MVVM, MVP, etc)
Experience working with database types in iOS such as Core Data, Realm
Ability to debug applications and collaborate with team members to overcome technical problems
Proficient understanding of code version control tools, such as Git
Knowledge of development based on RESTful API
Hard-working, hard playing, keep learning to improve knowledge and skills, and a friendly attitude.
2.2 Nice to have
Experience in optimizing performance for iOS application is a plus.
Experience in SwiftUI, UI/Unit test, Reactive Programming, FirebaseSDK, and GoogleSDK is a plus.
Knowledge about UX/UI on mobile is an advantage. Ability to work alongside creative for implementation of UI/UX features. Has a good UI sense.
Experience in Xcode Instrument tools is a plus (Leaks, Zombie, ….)
Understand in-app purchase process and how to implement its.
Prefer to have published mobile apps in AppStore.
Having Android development skills with Java or Kotlin.
Clean and efficient code lover
Attention to detail. Analytical mind and problem-solving aptitude. Has a good troubleshooting skill.
Motivation to learn a new programming language
Enjoy working on challenging solutions and systems
Believe that building great applications is not only about delivering code that “works”, but involves thinking about reusability, maintainability, security and performance