Lock Applications for this job are now closed
Closing soon

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 2022 - people who want to inspire creativity and co-create the future with TikTok. PhD Internships at TikTok aim to provide you with the chance to work on complex and exciting projects, addressing fundamental 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.

Responsibilities

  • 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 with.

What this role will support with

  • Design and develop new Linux kernel features to meet production demands.
  • Design and develop NFV feature which is related to DPDK/OVS/LB/VPN
  • Linux kernel performance analysis, tuning and optimisation for production workloads
  • Improve and deploy customised Linux kernel in the data centre
  • Collaborate with global cross-function engineering teams

Qualifications

  • You will have recently completed a degree in computer science or a related subject and currently be pursuing a PhD.
  • 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.