Senior Software Engineer
ReversingLabs was founded in 2009 with the mission of offering organizations the ultimate in threat detection solutions. In 2017, we were honored to receive the JPMorgan Chase Hall of Innovation Award for our truly unique, automated, and scalable static file analysis, malware classification and malware hunting technologies. Our pioneering technologies, exceptional products, and successful customer deployments also drove a $25 million investment in ReversingLabs, backed by some of the savviest investors in the world. With our center of development excellence located in Zagreb, and offices in the United States and Switzerland, ReversingLabs is poised to achieve rapid growth and deliver groundbreaking innovation in 2019.
ReversingLabs is looking for people interested in joining our Sample Analysis team. You will be part of an effort to analyze all samples ingested into our system in order to provide data for downstream processing and sample classification. Your daily challenges will revolve around designing systems to manage and process files collected from various sources using several analysis tools, on the scale of millions of data points per day.
The team you will be working with develops and runs our sample analysis array based on microservices architecture using Python 2.7/3.6, RabbitMQ running on Docker, as well as physical Linux/Windows-based machines. We analyze 6 million files per day using 5 different analysis tools, including 50 different AV solutions, the YARA engine, and static/dynamic analysis sandboxes.
You will research, design and extend our system to support various analysis tools in order to gather information required for sample classification. You will work on improving our system by enhancing the quality and scale of the existing system, as well as by integrating new technologies into the processing pipeline. Most crucially, we are developing an intelligent system capable of autonomous load-balancing between analysis tools to ensure we meet ReversingLabs' ever-increasing need for data.
In our work, we use Jenkins to build and deploy containers, and Graylog, Influx and Clickhouse DBs for logging and data analysis. We also employ a CI/CD development cycle, follow coding practices, and perform mandatory code reviews.
The key aspect of our work is scalability of the solution we provide in both volume and quality of data we gather and present to our customers.
- Design, build, and maintain efficient, reusable, and reliable Python code
- Implement performant, high quality modules
- Identify bottlenecks and bugs, and devise solutions to these problems
- Help maintain code quality, organization, and automatization
- Participate in the development of project timelines, implementation design specifications, system flow diagrams, documentation, testing and ongoing support of systems
- Provide expertise and guidance in setting standards, choosing tools, libraries etc.
- Perform code reviews
- 5+ years of experience in development
- 1+ year of experience with design of system architecture
- Professional programming experience, preferably in Python or similar (Java, Go..)
- Experience with containerization services (Docker, Kubernetes, …)
- Knowledge of coding practices
- Knowledge of network protocols
- Knowledge of authentication and authorization protocols
- Positive attitude towards teamwork, constant learning, and adapting to new circumstances
- Experience with PostgreSQL
- Experience with microservices
- Experience with message queueing
- Experience with Docker/Virtualization
- Experience with CI/CD and/or Jenkins/Ansible
- Flexible working hours
- Competitive compensation and benefits package
- Permanent contract in a fast-growing global company
- Challenging projects in a dynamic, collaborative team
- Great career advancement opportunities - ReversingLabs encourages internal promotion
- Personal improvement through attending leading conferences and seminars in the field