300+ HQ jobs
100+ Top-tier companies
Meticulously curated, no BS

C++/Kotlin Software Developer (RustRover Debugger)

JetBrains

At JetBrains, code is our passion. Ever since we started, back in 2000, we have been striving to make the strongest, most effective developer tools on earth. By automating routine checks and corrections, our tools speed up production, freeing developers to grow, discover, and create.

As Rust is currently one of the fastest-growing programming languages, we want to provide the development community with the smartest tools for coding in Rust. This is why we’ve just released RustRover – a dedicated IntelliJ-based Rust IDE.

One of the key features of our IDE is its debugger. Rust debugging is tricky, and despite the high quality of the current RustRover debugger, it still has a lot of room for improvement both in terms of new features and bug fixes for various existing configurations.

The functionality of the RustRover debugger is distributed across two separate processes that are in communication with one another: 

  1. The OS-specific debugger (LLDB or GDB): code in C++.
  2. The IntelliJ-based debugging client in RustRover: code in Java/Kotlin.

Our job involves working on both of these parts extensively. The scope of the technical challenges we face is very broad, but here are some examples for the purposes of illustration: 

  • The IntelliJ-specific integration of debug information to the in-editor code insight.
  • Handling and parsing specific Rust language constructs.
  • Fixing OS-specific SIGSEGV errors in C++ code from LLDB.

Debugging is very important to us, and we have a lot of plans for it. With this in mind, we’re looking for a new member to strengthen our team. This person will be responsible for the whole state of the RustRover debugger, helping us to drive it forward.

We will be happy to have you on our team if you:

  • Enjoy solving challenging problems.
  • Want to make developing and debugging applications in Rust more convenient.
  • Have extensive experience in software development processes.
  • Have at least three years of experience in C++ programming.
  • Are familiar with concepts from system programming and multi-processes communication.
  • Can design and write code that is easy to read and support.
  • Are able to work independently, proactively initiating communications when necessary.
  • Understand the algorithms behind the code you write.
  • Have strong teamwork skills, are open to diverse opinions, and can support your points of view with sound reasoning.
  • Are willing to grow as a professional by trying and mastering new approaches and technologies.
  • Have basic knowledge of Java/Kotlin or are ready to learn it quickly.

We'll be especially excited if you:

  • Know other programming languages and paradigms, such as Rust, C/C++, Java, Clojure, Python, Ruby, or Haskell.
  • Are familiar with compiler development and code analysis technologies.
  • Have experience with LLVM/LLDB development.
  • Are familiar with low-level debugging on various OS platforms.

How we develop the IntelliJ Rust plugin:

  • Most of the source code is written in Kotlin.
  • We strive to reach a balance between processes and stability, introducing only the processes we need.
  • Our organizational structure follows a flat hierarchy, and each team contains a range of various professionals, including QAs, support engineers, marketing specialists, and developers.