About NXLog
NXLog helps IT engineers manage the logs better. We provide a unified platform for log collection, storage, and analysis. We give versatile solutions to capture high-volume logs from diverse sources, transform log data on the fly, filter, enrich, and route it to other systems to boost business, security, and compliance.
NXLog was started in 2009 and by 2011 it turned into open-source with NXLog Community Edition, now used heavily in millions of deployments across the world, including those from Fortune 500. Especially, we had huge success with cybersecurity and high-load use cases, which led to technology partnerships with Google, Microsoft, Securonix, IBM, Arctic Wolf, AT&T, and other top-tier security product vendors and service providers that benefit from leveraging NXLog technologies and expertise.
Who are we looking for?
The Rust Development Lead is responsible for designing, developing, and implementing high-quality software solutions for the company that is efficient, readable, scalable, lean, and cloud-friendly and for providing leadership within the Rust Team.
Required activities and tasks:
Creating the architectural designs, planning the development process, and execution
Building software using programming language Rust and other languages (C++, go, etc.)
Multi-platform development (Linux, Windows, AWS, Azure, GCP)
Participate as an active member in Architecture forums, make proposals, and decisions
Planning and team learnings, Organize planning sessions and retrospective
Provide guidance in planning for development
Provide data on the performance of developers in retrospective
Take an active part in refinement meetings with Refinement issues - Product and Engineering Manager
Research new technology, performance testing, working with DevOps and Support
Liaising with DevOps on environments needed for Development
Working with Support on high-profile urgent issues
Working with other lead developers from other teams
Working with the Product Owner and Senior Project Manager to help refine issues
Provide an example of standardization of work – the lead’s issues contain description, architectural breakdown, and clear and clean code with reasons why the direction was chosen
Daily update of reports – allowing teams to see progress
Time management Code Reviews, Architectural Discussions, Merging
Development of own lead issues
Working with frontend, backend, and DevOps teams to improve test coverage and test environment
Suggestions to improve ways of working e.g., when a new developer starts we set up a few basic examples of ways of working. Working with Hubstaff and Git
Providing information and decisions on new libraries when required
Research, analysis, and evaluation of software applications and operating system needs; and capturing of that research in the Gitlab repository
Research, design, and develop the product architecture
Daily committing of code into the Gitlab repository
Estimation and collaboration in planning sessions via digital video conference facilities
Testing both manual and unit tests of software developed by yourself and your teammates
Modifying existing software to fix bugs, adjust to new hardware, or improve performance
Management of software programming and documentation development; where required discussion with technical writers to explain work that has been completed
Participation in development and testing – through the writing of code, unit tests of your own work, as well as code review of teammates, work
Planning of work and leave to ensure that project timelines are not jeopardized
Provide input to technical writers where documentation is required
Communicating where constraints will be missed i.e. timings or technology stack
Continuous learning on new networking technologies and software products, technologies
Strive to develop innovations that serve the company strategy and overall team performance
Requirements:
At least 4-5 years of programming experience with the Rust language.
10+ years in systems programming, which may include other languages (C++, go, etc).
5+ years of experience as Lead Developer.
Building and working in high-performance agile software development teams.
Building processes to support highly effective teams.
Network programming skills.
Multithreaded programming knowledge.
Experience with SSL/TLS APIs.
Good algorithmic skills.
Debugging, profiling, and performance optimization skills.
Secure coding practices.
Care for the quality and readability of your code.
Passionate about hacking on Linux systems while also feeling at home on Windows. Multi-platform development experience.
Nice to have:
Experience in building distributed systems,
Build automation,
Prior experience working as a software architect.
Cloud platforms (AWS, Azure, GCP),
Master's degree in Information Technology or similar,
Customer-oriented and able to communicate in English,
Most importantly you should be a quick learner and eager to jump on and understand new technologies.