cdnnow!
Golang Developer
Experience: 3–6 years
Full-time
Schedule: 5/2
Work format: remote or hybrid or office
☑️ Responsibilities
- adapt the development process to the product, technologies used, and the team; propose and implement improvements to the development process: code review rules, testing, CI/CD, releases, documentation, and quality control
- remain calm towards constructive criticism and be able to give it to colleagues
- work independently, but in a team with engineers of other specializations (developers in other languages, DevOps and SRE engineers)
- estimate task deadlines and notify if the estimate has changed significantly
- design and justify product architecture
- formalize and agree on task requirements and an implementation plan
- develop maintainable code suitable for industrial operation; agree on the code style for the project
- conduct and undergo code reviews
- write project documentation and commit descriptions
- write automated tests and perform testing (unit, integration, etc.)
- identify bottlenecks in CPU, memory, I/O, and network interaction
- have a good understanding of Linux internals at a level necessary for developing and optimizing high-load services: processes and threads, system calls, memory, I/O, network, file descriptors
- perform profiling and load testing
- optimize concurrent code
- design efficient data structures and algorithms
- monitor allocations and memory consumption
- work with GC and understand its impact on latency
- integrate C/Rust SDKs with Go; deep knowledge of C / Rust is not required, but you will need to be able to read others' code and documentation
- use lock-free / wait-free approaches and atomic operations when necessary
- read code in Python, C, Rust, and preferably PHP
- use linters and other code quality control tools
- work with SQL databases using transactions
- work with external message brokers, caches, etc.
- build Docker containers to improve the development process
- write Make and Bash scripts
- use AI tools in development to increase productivity — while independently verifying generated code, tests, and technical solutions, and taking responsibility for the result (AI-assisted development)
- read documentation in English
☑️ Our requirements for candidates
- code detachment and closure (therefore, cpython or pyinstaller is not suitable)
- transition of some libraries (SDKs) from C to Rust
- memory limitations arise
- it is required to ensure a performance of about 1000 rps
- it is required to implement service monitoring mechanisms both when deploying in our infrastructure and in the customer's infrastructure
- P.S.: We do not want to use Rust in this project, as we do not have expertise in this language
Contacts: recruiter contact