/

Rust Development Lead

Worldwide, Remote

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.