System Software Engineer Intern 2021
TikTok is the leading destination for short-form mobile video. Our mission is to inspire creativity and bring joy. TikTok has global offices including Los Angeles, New York, London, Paris, Berlin, Dubai, Mumbai, Singapore, Jakarta, Seoul and Tokyo. We are now looking for talented individuals to join us in 2021 - people who want to inspire creativity and co-create the future with TikTok.
Internships at TikTok aim to provide students the chance to work with our clients and teams to address key business problems and identify areas of growth for the company. With your education and experience, you will be able to take on real-world challenges from day one.
This role is part of our STE (System Technology & Engineering) team. This team has been committed to research and engineering development in the primary technology fields, such as operating systems, virtualisation and optimisation of essential system software.
You will be working on developing operating systems in the user mode and the system-level tools. As a Software System Engineer, you will have a broad range of technical knowledge and specialise in Linux platform and software development. You will sit in between the development and operations team, and your key focus will be to deliver a first-class platform that our development teams can build upon.
The role will involve working closely within our software development teams to design, develop and deploy a range of complex software solutions hosted on Linux platforms:
- Design and develop new Linux kernel features to meet production demands
- Linux kernel performance analysis, tuning and optimization for production workloads
- Improve and deploy customised Linux kernel in the data centre
- Collaborate with global cross-function engineering teams
- Available from June for 12 weeks during Summer 2021
- Currently in your penultimate year pursuing a bachelor's degree (or final year going on to study a masters)
- Studying computer science, engineering or a related technical discipline
- Solid knowledge and experience in one or more programme languages: C or C++ and preferable some experience in other languages such as Python/Go/Rust/Java
- A good understanding of data structures and algorithms
- Experience working with Linux/Unix systems from kernel to shell and beyond, with experience working with system programming
- Familiarity with one of the Linux kernel subsystems: networking, memory management, process scheduling, filesystem and storage, virtualisation etc.
- Strong Linux debugging skills and problem-solving skills in a fast moving environment
- Self-driven and capable of coping with ambiguity and moving projects from concepts to delivery