Basic requirements
-
Extensive, multiple year experience with Go and C programming languages and related frameworks
-
Deep understanding of parallel programming concepts and development of high performance, distributed services
-
SQL programming; practical experience with relational (MySQLl, Postgres) and embeddable NoSQL databases
-
Knowledge of Go web frameworks (gin, fiber) and Go ORM (such as GORM)
-
Development experience of Go-based microservices and CLI tools
-
Knowledge of common scripting languages (javascript, python, bash)
-
Extensive Linux servers administration experience in 24/7 production environment
-
Deep, low-level understanding of networking protocols (IP, TCP, TLS, etc.)
-
Knowledge and experience of working with Linux network stack: IP routing, netfilter, tc, BPF, etc.
-
High-performance network programming and network stack interaction with Go
-
Ability to understand and analyze raw network traffic logs, experience with traffic analysis tools
-
Virtualization technologies (QEMU, LXD), container management APIs
-
Problem area analysis skills, ability to write down concise requirements and documentation
-
Self-sufficiency, ability to complete all steps in the task without extensive supervision
-
Strong learning and team communication skills
Job tasks
-
Developing Go microservices for various purposes such as: network management, telegram bots, container management, VPN tools, traffic analysis and statistics, fault monitoring, etc.
-
Non-disruptive integration of various micro services into production infrastructure
-
Analysis, improvement, and possibly development of server-side VPN software
Job type
- Remote, full time, with occasional in-person meetings in Moscow/Moscow region.