Position: Senior Python/Go Developer
Company: Exadel
Category: Python
Experience required: 3y
English level: intermediate

**Requirements:**
• 3+ years of experience in Python;
• Strong hands-on experience using Go programming language; 
• Experience in Shell scripting (bash), Javascript/HTML/CSS; 
• Familiarity with WordPress would be great;
• Experience with the full site of Go frameworks and tools, including:
• Dependency management tools such as Godep, Sltr, etc.
• Go’s templating language
• Go’s code generation tools, such as Stringer
• Popular Go web frameworks, such as Revel
• Router packages, such as Gorilla Mux
• Ability to write clean and effective Godoc comments;
• Experience with GitHub, BitBucket, Jira, Trello, Confluence, Slack, Zoom, Google Suite.
• Understanding of core Internet infrastructure concepts: DNS, BGP, routing;
• Familiarity with threat intelligence core concepts, Linux (specifically Unbuntu and CentOS);
• Experience with relevant unit testing frameworks and the ability to implement unit tests
• Good communication skills in English - verbal and written;
• Great attention to detail.

**Responsibilities:**
• Help design and implement functional requirements;
• Build efficient back-end features in Python/Go;
• Manage testing and bug fixes;
• Prepare technical documentation;
• Implement software enhancements and suggest improvements;
• Be in touch with customers directly.


**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.

**We offer:**
• Vacation is 20 working days / till 20 working days per year for sick leaves;
• Full payment of taxes;
• English courses;
• Flexible work schedule;
• Friendly environment;
• Medical insurance;
• Opportunity for career growth.

You can find more information about Exadel in Ukraine here: www.facebook.com/exadelukraine