Internships
Register
Copyright © 2000—2025 JetBrains s.r.o.

JB LLDB Debugger for Windows

Description

We're looking for a highly motivated and skilled student to join our team as an intern specializing in the LLDB debugger on Windows. This role offers a unique opportunity to dive into the complexities of system development, operating systems, and the internals of debuggers and compilers. You'll gain hands-on experience working with C++ and Python in a real-world development environment, focusing on debugging large binaries, particularly those within Unreal Engine-based game projects. Given the scale and complexity of these binaries, optimizing debugger performance is crucial. If you're passionate about software development, eager to tackle significant challenges, and keen to deepen your understanding of debugging tools, systems programming, and high-performance scenarios, we'd love to hear from you!

Projects

We have prepared two projects so you can choose the one that excites you most. Both are important and present unique challenges, but they require different skill sets and levels of complexity. We do not necessarily value the more difficult one over the other.


Custom stepping on C++

We use custom stepping scripts for step-in, step-over, and step-out operations. The scripts are written in Python using the LLDB API, which presents some limitations and reduces performance. As part of the project, you will need to understand the custom stepping functionality in LLDB, investigate how it works, and write a C++ implementation to make it faster and replace the default LLDB stepping implementation.

Extra requirement:

  • Basic understanding of x86 assembler


Natvis Support in C++

Our debugger currently supports Natvis technology for visualizing native data structures. The existing implementation is written in Python and relies heavily on interop with LLDB, which results in performance overhead during parsing and interpretation of Natvis files.

We plan to reimplement Natvis support in C++ in order to significantly improve the performance of parsing and interpreting Natvis visualizations, and to reduce interop overhead.


Requirements

General requirements:

  • Strong knowledge of C and C++

  • General understanding of the debugging process

Nice to have:

  • Proficiency in Python

  • Understanding of operating system principles

  • Understanding of x86 assembler

  • Understanding of compilers


Admission

Internship projects 2025-2026

Contact details

internship@jetbrains.com

Preferred internship location

Armenia
Cyprus
Czechia
Germany
Netherlands
Poland
Serbia
UK

Area

Development

Internship timing preferences

Flexible start