Position: Front-end developer
Company: OMO Systems
Category: JavaScript
Experience required: 3y
English level: intermediate

About us:
We are a global startup in the realm of smart home services focused on all-in-one property automation.
We deliver technology solutions for access control, security & comfort suitable for multi-family buildings and commercial properties.
The OMO ecosystem is able to support thousands of multi-vendor smart home devices and solves the most complex property automation challenges.

**Requirements:**
3+ years of experience with JavaScript (ES6+);
3+ years of experience with React Native;
3+ years of experience with React.js;
1+ years of experience with Typescript;
1+ years of experience in native Android/iOS development;
Experience with Redux;
Experience with React Native framework and its commonly used libraries;
Experience with WebSockets;
Experience with Git and branching workflows (git-flow);
Understanding of CI/CD concepts;
Experience with React library, along with relevant state management techniques: Redux, redux-thunk (preferred), redux-saga, hooks;
Experience in writing unit tests (jest, react testing library, etc), integration and end-to-end tests;
Ability to analyze, profile and eliminate performance bottlenecks in mobile applications;
Great communication skills;
Proficient in Test Driven Development working within an Agile team;
Passion for new technologies and ready to lead engineering initiatives with opportunity to grow to Tech Lead;
English: Intermediate+ (verbal and written).
**Would be a plus:**
Experience with live streaming (video+audio) or intercom development/integration;
Experience in event sourcing architecture;
Experience in payment systems integration;
Experience in React.js web development;
Knowledge of application architecture best practices.
**Responsibilities:**
Develop new features in the project;
Write reusable, testable code;
Review the code of teammates;
Review your implemented code in the dev environment;
Maintain and refactor existing code to meet the requirements for improved or new features;
Fix production issues and supervision of your code;
Participate in the whole development process from planning to product features releasing
Participate in backlog refinement process;
Participate in estimation process;
Proactiveness in generating new ideas for the product;
Creation of common UI components;
Optimize application regarding project requirements.
**Our stack:**
ES6 & Typescript;
React.js & React Native;
Redux & redux-saga;
WebSockets & data flows using event sourcing architecture pattern;
react-native-navigation & react-navigation;
react-native-reanimated (v2);
react-native-firebase (v5 yet);