Software Engineer - Scenario D...Software Engineer - Scenario Developer (Python)
You’ll work with top companies around the world which surely use their products or services on a daily basis. Our client gives an answer to their needs by helping them validate their security-related assumptions.
● How do they do it?
At the core of their values, is the ability to challenge ideas and engage in thoughtful discourse. They've created an environment where every employee is well respected and where anyone can be respectfully challenged regardless of their position.
Their work environment is joyful while holding themselves to high standards. They like to be surrounded by amazing peers from whom they can learn from. They like to joke, they like to learn, they take ownership and they take pride in their work. They also like to play ping pong!
● Who are you?
You are a passionate person. You are not only a dedicated individual contributor but also a team player. You demonstrate a genuine interest in understanding why you are working on something and you are able to respectfully challenge any decision in pursuit of a solution to engineering and customer problems.
You don’t feel comfortable working as if in a supply chain and you are eager to get involved in anything that could tangentially impact your work.
You are used to getting things done and you are confident about your skills but still humble and able to accept criticism and follow guidelines.
● Your mission
As a software engineer at you will develop state of the art cyber-attacks in order to validate security controls and processes. You will have to follow best engineering practices to write software that is extensible, easy to package and deploy, as well as, maintainable and well tested.
You will have to design and implement all the infrastructure the scenarios rely on, which means you have to be familiar with infrastructure as code concepts, containerization, and its orchestration.
- Proficient English communication skills.
- Understands and can employ Object Oriented Design Principles (SOLID)
- Deep knowledge of py2 / py3 and ecosystem (lambda functions, decorators, unicode issues, threading, multiprocessing, queues, most used Python libraries, etc)
- Deep knowledge of packaging and distributing Python libraries (JFrog Artifactory, pip, setup.py, wheels)
- Understand TDD; Ability to implement automated tests and code coverage
- Understand software development patterns
- Knowledge about Windows OS and how to troubleshoot software running there (Windows Event Log, Registry, Procmon, Process Explorer, etc)
- Experience with development tools like Git (Git workflows such as Gitflow or GitHub flow) and Unix systems
- Experience configuring server technology (uWSGI, nginx, supervisord)
- Experience with databases, message brokers and caching (e.g postgresql, celery, redis)
- Experience with Django Rest Framework - Experience with Terraform and Ansible
- Experience with Docker, Docker-Compose, and Kubernetes - Experience developing in C or C++