Position: Middle Android Engineer
Company: Exadel
Category: Android
Experience required: 3y
English level: intermediate

**The Project** is a free, recursive, anycast DNS platform that provides end users with robust security protections, high-performance, and privacy.

**Security**: The Platform blocks against known malicious domains, preventing computers and IoT devices from connecting to malware or phishing sites. Whenever a user of the Platform clicks on a website link or types in an address into a web browser, the program checks the site against a list of domains combined from 19 different threat intelligence partners. Each threat intelligence partner supplies a list of malicious domains based on their heuristics, which examine such factors as scanned malware discovery, network IDS past behaviors, visual object recognition, optical character recognition (OCR), structure and linkages to other sites, and individual reports of suspicious or malicious behavior. Based on the results, the Platform resolves or denies the lookup attempt, preventing connections to malicious sites when there is a match.

**Performance**: Platform’s systems are distributed worldwide in more than 145 locations in 88 nations, with 160 locations on deck for 2019. These servers are located primarily at Internet Exchange points, meaning that the distance and time required to get answers is lower than almost any other solution. These systems are distributed worldwide, not just in high-population areas, meaning users in less well-served areas can see significant improvements in speed on DNS lookups. The systems are “anycast” meaning that queries will automatically be routed to the closest operational system.

**Privacy**: No personally-identifiable information is collected by the system. IP addresses of end users are not stored to disk or distributed outside of the equipment answering the query in the local data center. The Customer’s company is a not-for-profit organization dedicated only to the operation of DNS services. There are no other secondary revenue streams for personally-identifiable data, and the core charter of the organization is to provide secure, fast, private DNS.

**Tech Background**: Platform’s systems operate in about 140 locations globally primarily on virtual machines and dedicated hardware. They essentially operate in a private cloud. There is little to no usage of public cloud providers like Google, Microsoft, or Amazon. 

In each location the Customer runs a set of recursive DNS resolvers, a telemetry node for collecting statistics and a variety of other processes to support DNS resolution and malicious domain blocking. 

The edge nodes run some custom GO and Python code primarily to support the collection of statistics from edge nodes. These nodes interface with a central cluster of servers where they interface with more custom GO and Python. The backend store for this system is a cluster of Kafka servers. 

In addition the central nodes also house integrations with various threat intelligence providers. They provide lists of malicious domains. That list is aggregated and sent to the edge nodes periodically. Various APIs are also supported. That service either to the end user community or threat intelligence community. 

Some of the user facing tools are implemented using Javascript/CSS/HTML. In addition the Customer has an end user facing application for Android. Right now the Customer has an Android developer though he is in the process of making this project open source and a code review from a more **Senior Android developer** would be useful.  

The Customer has a number of internal tools - mostly written in Shell (Bash) or Python that interface with data in Kafka and our APIs. Many of these tools are just command line utilities but some of them interface with Slack for alerts, reports, and notifications. 

The Customer team typically works in two weeks sprints w/a single video planning meeting to kick off the sprint. Written communication occurs daily in Slack as a sort of stand-up. The sprint ends with a team video meeting (status, show and tell, +improvements). Video meetings can be ad-hoc when someone needs more detail or a specific question answered. 

**Requirements**:
3+ years of experience in building Android apps;
A strong understanding of automation testing of mobile apps;
Knowledge of the full life cycle of mobile app development; 
Understanding of the nuances of Android SDK, different versions of Android, and how to effectively write code for a multitude of Android devices;
Experience in building RESTful API’s focusing on integration with back-end services;
Experience in GitHub, BitBucket, Jira, Trello, Confluence, Slack, Zoom, Google Suite;
Self-motivated with strong time-management skills;
Good written and verbal communication skills.

**English level**: 
Intermediate +

**Responsibilities**:
Perform requirements analysis;
Design and build advanced applications for the Android platform;
Discover, evaluate, and implement new technologies during R&D activities;
Collaborate with cross-functional teams to define, design, and ship new features;
Communicate with the customer.

**Benefits**:
Official and timely pay;
Social perks;
Sick pay, vacations;
Flexible work schedule;
Friendly environment;
Medical insurance.