Position: Mobile Developer
Company: Orbit IT Recruitment Agency
Category: Android
Experience required: 3y
English level: intermediate
Published: 2021-10-01T00:00:00+03:00

**STACK**
- Capacitor / Ionic / Cordova
- IOS / Android
- TypeScript / React / jQuery
- Python 3 / Django

**MAJOR REQUIREMENTS**
Before all, we expect you to like working with hybrid applications since WorkFlowy is a web-first hybrid application written in JavaScript and is going to stay this way until the end of the universe. So if your interests lie in things like React Native or Flutter, then you'll likely get disappointed.

Provided you like hybrid applications in general, we expect you to be interested in and have a solid understanding of that particular family of technologies we use (Capacitor / Ionic / Cordova), up to being able to write custom plugins and being aware of what's going in their community (so we're not surprised with upcoming major releases and deprecations).

And then, we expect you to know the native specifics of iOS and Android: how their file systems work, which permissions are needed for what, restrictions on push notifications, peculiarities of position tracking, and so on. In other words, all the idiosyncrasies and pitfalls are usually unknown to developers coming to mobile from the web JavaScript world.

**RESPONSIBILITIES**
You'll take over the native part of our hybrid application and in the beginning, will be responsible for two things:

1) helping web-developers to overcome the native challenges by implementing necessary bridges;

2) keeping the technology stack up to date and well maintained (e.g. right now we need to migrate from Capacitor 2 to 3).

Provided you've nailed both those things, we'd like to advance further into the native world and develop specialized mobile-only things like widgets, position-based reminders, and so on.

It's worth mentioning, that our architecture is good enough to clearly separate the platform-agnostic features code from the specific Capacitor bridges, so you'll not have to mess with the main web codebase and it's not expected from you.

**ABOUT COMPANY**
We're a product company, working on one of the best note-taking apps in the world. We pioneered the market 10 years ago as a two-person startup and evolved into a well-established company throughout the years.

**INFORMATION ABOUT THE TEAM**
We hire only if there is a real need, so you'll find a tight coherent team, where people get along, have fun and trust each other.

Your opinion will matter and the opinion of other developers, so you can expect constructive debates on various topics.

There is no elaborate management hierarchy and we watch closely that there are no communication barriers between anyone.

**BENEFITS**
We'll propose a *highly* competitive salary for the Ukraine market, should your skills match our requirements.

Paid vacations, sick leaves, days off for personal business, etc. are, of course, included.

**WORKPLACE**
We trust you to manage your time in whatever way you think appropriate and don't care if you're online during your working hours or how long it takes for you to reach for a message. There is no time-tracking software, no daily reports, no "no commit no work" or such. We simply assume that you do your best and evaluate the results of your work, not the way you work. Besides, we keep Extreme Programming philosophy close to our hearts and here you'll find:

- A complete CD pipeline with your changes delivered to real users every day;
- No arbitrary test coverage percentage, but rather heavy investments into testing and debugging tools;
- Trunk-based development with all code constantly integrated - merge conflicts are extinct species in our lands;
- No "technical debt backlog" for "later", but developers deciding on the spot if something needs refactoring.

**TECHNOLOGY**
WorkFlowy is a classical single-page application, split into a client and an API.

The backend is written on Python 3 / Django, PostgreSQL, Celery, RabbitMQ, and SQS, with some parts of the logic handled by microservices. Besides the API, the backend contains a set of internal tools for marketing and support.

The client is written in TypeScript / React, with a few (a million) sprinkles of jQuery. It's a hybrid application, that works on the web by default, and is wrapped into Capacitor for the phones and Electron for desktop.

The pipeline is managed by Drone CI, which runs the tests and deploys it all on AWS with Docker.