Position: Middle Android Software Engineer
Company: AgileVision.io
Experience required: 2y
English level: intermediate

We are looking for an **Android Software Engineer** with good technical skills. You'll join a team of professionals to work on IoT/Big Data projects. 

**You will be working with:**

- Modern Android Platform
- Modern approaches (we use microservice-based and monolith architecture where appropriate)
- A team of experts like you
- IDEs of your choice

**Responsibilities:**
- Design and implement components of sophisticated mobile apps
- Write code to consume REST/GraphQL APIs
- Write code to interact with IoT devices using MQTT
- Writing unit and integration tests
- Performing code reviews

**Requirements:**
- Good spoken and written English
- Knowledge of data structures and algorithms
- Strong knowledge of Java
- Understanding of the Android platform, build/release process of mobile apps
- Familiarity with modern design patterns
- Knowledge of Reactive Programming will be a plus
- Experience with MQTT will be a plus
- Being ready to learn new technologies and approaches
- Knowledge of Flutter will be a plus

**Benefits:**
- Proper compensation
- Coverage of paid certifications
- Teambuilding events
- Microbonuses system
- Remote
- 20 days vacation
- 24 days sick-leave

**We DON'T have:**
1. Corporate bullshit
2. Bureaucracy
3. HRs, People Partners, Happiness Managers, Wellbeing Coaches (see point 1.)
4. Outdated Android versions
5. <Ask me during the interview about this, you are going to like it>

**About AgileVision.io**
We are creating SaaS(software-as-a-service) from scratch for our clients. Usually, it's a B2B(business-to-business) for logistics and manufacturing. This means we deal a lot with IoT, edge computing, and ML. Our main backend language is Java.
AgileVision.io is an official AWS Partner and we build most of our solutions on AWS.

**About the interview process ( a.k.a. a bonus for those who can read so much text):**
1. We have only one interview - a deep technical interview
2. The interview consists of two rounds, one hour each

Topics we usually cover:
- Data structures and algorithms basics. You won't be sorting anything, at least at this stage
- Network protocols basics (application, and transport levels)
- Data encryption basics (encryption, approaches, digital signatures, popular algorithms)
- Java (language basics, concurrency, streams, features from recent releases)
- English (you will have to answer some of the questions in English, so we understand you can communicate with English-speaking colleagues if needed)
- Android Platform
- Development of Android applications
- Building and publishing applications
- Databases (SQL basics)
- Working in a team (version control, peer reviews)
- Your past experience