Software engineer (Go, Infrastructure, Security)
Ukraine・Full time・Remote // Build data security software.
The opportunity #
Cossack Labs is looking for a Golang developers to join the product development team and work with us on making innovative security tools robust, reliable and efficient. If you are interested in systems engineering, security, building elegant and efficient tools for other developers - this could be an interesting offering for you.
We are a data security solutions company, developing software products (open-source and proprietary), as well as providing custom bespoke solutions to innovative development teams around the world. Our mission is to make strong security methodologies and approaches convenient within modern infrastructures and, as the software is eating the world, help it eat the world responsibly, without leaking customer’s data.
Among our customers are power grid operators, payment processors, legal companies, million-user customer applications. We cater to young ambitious startups and well-established enterprises, who use our software and solutions as core part of their security arsenal.
Our mission would be impossible without brilliant engineering force, and we’re looking to grow it.
You will: #
- Develop new features in our infrastructural products using Go, cover code with unit and integration tests.
- Cover new features with documentation and examples for other engineers.
- Actively participate in code reviews, design sessions, test case modelling.
- Participate in product’s feature discussions and affect design and implementation results.
Technical stack: #
- Golang (product development), Python (tests).
- OS: Linux Debian (mostly). RHEL, Alpine, other distributives just for Docker images and test environments. No MS products at all.
- DB: PostgreSQL, MySQL/MariaDB, Redis.
- CI/CD: GitHub, CircleCI.
We expect you to have: #
- Golang: strong knowledge of programming language, paradigms, constructs, and idioms.
- Knowledge in computer science and engineering fundamentals including algorithms, concurrency, multithreading, data structures, design patterns.
- Python, Bash: good knowledge level to be able to read/write/maintain scripts.
- PostgreSQL, MySQL/MariaDB: base knowledge of SQL language and practical experience with DBMS (at least one of them).
- Docker: practical experience with writing Dockerfiles and working with images/containers.
- Debugging: practical experience in diagnosing problems at any level (application, network, server, database, OS).
Please note that you can be a perfect fit even if not everything we’ve outlined above applies to you. If you have any questions, please don’t hesitate to ask – everyone is unique.
As a plus you’d have: #
- Rust/C: our products uses our crypto library written with Rust and C. It would help your work if you’re able to read/maintain/review code in Rust or C.
- Security & cryptography: basics of information security, symmetric/asymmetric cryptography, TLS.
- Linux: understand how application communicates with OS, difference between userspace & kernelspace, how to deal with blocking operations.
We will feel comfortable working together if you: #
- Develop applications for users, write code for developers and write documentation about how it works for both.
- Don’t get desperate to find and read documentation. Of course, each of us is always ready to assist with approaches and search for solutions, but we respect the time of colleagues, and we can read reference information on our own.
- You don’t necessarily like to write, but you do write good technical documentation if you have to. If you like it - it’s even better.
- You’d rather do well once than constantly generate monkey patches.
- You’re not deprived of healthy perfectionism, a sense of beauty and a sense of humour.
We offer: #
- Friendly and experienced team: smart people to learn from, great people to build with. Each of us is unique, we value and support each other.
- An atmosphere that motivates you to grow and get smarter every month, a healthy ratio of routine / experimentation.
- Trust: schedule, reporting, bureaucracy is kept at reasonable minimum. We hire smart people and trust them to do the right thing. When things go wrong, we help rather than punish.
- Shared decision making: this business is driven by engineering excellence, so engineers are important part of tactical and strategical business decisions.
- Friendly to humans: not just a formal vacation and sick leave quota. Feel like your mental or physical wellbeing needs care? Take some time off. Feel like working a few days from home? Sure. As long as you’re in line, we are here to support you when you’re not.
- Team that facilitates internal learning and growth all the time.
- Interesting technologies to work with — sometimes, even unique ones (we design applied cryptography schemes and techniques and novel ways to use them).
- Ability to grow into one of the fastest growing industry sectors (computer security) with a team of experienced professionals.
- Management attention to help you improve upon your personal goals (through regular 1:1s and mentoring).
Unique experience: #
- Interesting engineering challenges across the board, ability to hop from high-level system design to protocol reverse engineering and clever data modelling hacks.
- Reasonable time budgets to do everything well - we build for decades, rather than till next release.
- Work at the intersection of technologies: cryptography, software engineering, information security. You won’t be bored :)
- Public track record in the Open Source part of the products and the opportunity to participate in R&D projects.
- A sense of meaning and responsibility for those who seek purpose – your code will work for many years in large and small systems, from data protection in power plant management to advanced fintech.
- Competitive compensation with flexible bonus scheme.
- Sick leaves, 21 vacation days a year, extra days off — according to agreements and laws.
- Conferences, books, courses — we encourage learning and sharing with the community. Our team members share a lot in talks, workshops and blog posts.
Not sure but considering? Talk to us. #
If you see yourself fit but a few things are off — don’t hesitate to talk anyway. It might be that your unique combination of skills and knowledge would be perfectly fitting for our environment, but we both just don’t know it yet.
How to apply?
We'd like to get your CV to start a conversation. A supporting letter explaining your story, your interest in software, what you have done in the past and what kind of work you find interesting would help, but is not necessary.
Check out the recent customer story
Building ironclad data security for VDR SaaS
Building state-of-the-art security for Virtual Data Room — online document storage and collaboration platform. Integrating mobile-specific security measures seamlessly into mobile apps and aligning security with backend infrastructure.