React Native Developer
Roles and Responsibilities
-
React Native Expertise: Be the primary technical expert for React Native, driving the design and implementation of new features and maintaining the core application architecture.
-
TypeScript Proficiency: Write clean, maintainable, and type-safe code across the application using TypeScript to reduce runtime errors and improve code quality.
-
Mobile App Development: Lead the full lifecycle of cross-platform mobile application development, from conception and design through to testing and deployment for both iOS and Android.
-
APIs and Backend Integration: Integrate various backend services and third-party APIs by designing and implementing efficient and robust network layers.
-
State Management (Redux, MobX): Implement and manage complex application state using modern patterns and libraries like Redux or MobX, ensuring predictable data flow.
-
Push Notifications: Implement and maintain push notification services across platforms, including configuration, targeting, and handling notification lifecycle events.
-
Offline Storage and Offline Apps: Design and implement solutions for offline data synchronization and storage, enabling a seamless user experience even without an internet connection.
-
Background Tasks: Develop and manage background processes to handle data processing, synchronization, or other critical operations efficiently without impacting the main UI thread.
-
Communication Between React Native and Native iOS/Android: Develop and maintain Native Modules and components to bridge the gap between JavaScript and native code, enabling access to platform-specific APIs when necessary.
-
App Store Submission: Manage the entire app submission and update process for both the Apple App Store and Google Play Store, adhering to platform guidelines.
-
Custom Hooks and Reusable React Components: Develop high-quality, reusable, and well-documented custom hooks and components to promote code reusability and maintainability across the app.
-
Good Debugging Skills: Possess strong analytical and debugging skills to efficiently troubleshoot and resolve complex issues across the native and JavaScript layers.
-
Time and Space Complexity Optimization: Write code that is optimized for performance, focusing on reducing rendering time and memory usage for a fluid mobile experience.
-
Experience with Multithreading and Efficient Utilization of Multiple Cores: Design solutions that leverage multithreading where appropriate to handle intensive tasks and efficiently utilize device hardware.
-
Good Error Handling & Unit Testing: Implement comprehensive error handling strategies and write robust unit and integration tests to ensure code reliability and stability.
-
Garbage Collection: Monitor and optimize memory usage to prevent leaks and ensure efficient garbage collection, leading to improved application performance and stability.
-
Realm Database: Utilize and maintain the Realm database for local data storage, ensuring efficient data manipulation and persistence
Required Skills
-
Flexibility in Learning and Implementing New Libraries
-
Strong Verbal and Written Communication Skills
-
Presentation Skills
-
Team Collaboration and Vocal Participation in Discussions
-
Salesforce mobile SDK integration