Kernel Research Engineer

We are looking for brilliant kernel developers, with strong academic background. The ideal candidate is extremely independnet, capable of ramping-up on any linux kernel subsystem quickly, manipulating and tweaking them as if they were their own code. The desired candidate will take a central role in analyzing and defining our next product line.

Responsibilities:

  • Requirement analysis, on-going research, design and development of kernel code and userspace interface in several subsystems
  • Porting and optimization of kernel code, from simple modules, to entire subsystems to/from various architectures
  • Android and Linux kernel integration and testing on diverse projects and branches
  • Unit test and system wide test planning, coding, and execution
  • Active participation in kernel and Android development community

Requirements:

  • M.Sc/PhD specializing in operating systems or/and compiler practical research. Outstanding graduate students (in progress) may be considered for part time position (at least 60%).
  • Good understanding of hardware concepts, and strong hands-on experience in developing Linux device drivers in at least two of the following disciplines: graphics, input, and network
  • Good understanding of the scheduler subsystem, virtual memory subsystem, graphics subsystem, and the way user accounts and permissions are enforced.
  • Experience in kernel and application performance tuning and resource optimization
  • Experience in working with the Linux kernel community or with the Android kernel community
  • Familiarity with open source development tools and methodology (git, gerrit, writing and testing patches, submitting code to upstream projects)
  • Android platform development experience(kernel, libraries, framework) – a huge plus
  • Proficiency in C and C++; excellent understanding and working experience of object oriented programming in both languages; Java is a plus
  • Proficiency in at least one scripting language (*sh, tcl,expect, python, perl, ruby)
  • Ability to learn new systems and techniques quickly - a must