C++ Engineer

BitTorrent   •  

San Francisco, CA

Industry: Information Technology

  •  

Less than 5 years

Posted 66 days ago

This job is no longer available.

Job Description

We are looking for a C++ developer responsible for building a well-known desktop torrenting application. Your primary responsibility will be to design, develop and improve the μTorrent Desktop application, and to coordinate with the rest of the team working on different layers of the infrastructure.

Responsibilities

  • Design, build, and maintain efficient, reusable, and reliable C++ code for μTorrent desktop client.
  • Implement performance and quality modules.
  • Identify bottlenecks and bugs, and devise solutions to these problems.
  • Help maintain code quality, organization, and automation.

Required Skills

  • Strong proficiency in C++, with fair knowledge of the language specification.
  • Thorough knowledge of the standard library, STL containers, and algorithms.
  • Good understanding of network protocols, knowledge of Bittorrent protocol is a plus.
  • Good understanding of memory management in non-garbage collected environments.
  • Understanding of dynamic polymorphism and C++ specific notions, such as friend classes.
  • Familiarity with templating in C++
  • Knowledge of low-level threading primitives and concurrency topics
  • Be familiar with the Win32 programming API. Know differences between Windows and POSIX support for processes, threads, synchronization primitives, files, sockets.
  • 3+ years of programming experience in C++

Good to have

  • Knowledge of the latest C++ standards (C++11 and beyond)
  • Familiarity with system call wrapper library functions
  • Knowledge of writing native modules for high-level languages such as Node.js, Python, JavaScript, etc.
  • Implementation of automated testing platforms and unit tests.
  • Proficient understanding of code versioning tool such as Git.
  • Familiarity with FFmpeg, transcoding is a plus.
  • Knowledge of Jenkins and VMs to manage automated testing and continuous integration as part of our release process. Understand the value of automated testing and continuous integration.