Applied Materials, Inc. logo

C++ Linux - Software Engineer

Applied Materials, Inc.
NewPosted today

LOCATION

Bangalore · Onsite

EXPERIENCE

5 - 10 Years

TYPE

FullTime

SKILLS REQUIRED

C++LinuxPerformance OptimizationMultithreadingData Structures & Algorithms [DSA]Distributed Systems

Job description

Overview

Technical lead role designing and implementing high-performance computing software for semiconductor equipment components, with responsibility for system design, low-level optimization and mentoring junior engineers.

What you'll do

  • Design and implement high performance computing software solutions for the organization.
  • Work closely with cross-functional teams, including software engineers, product managers and business stakeholders, to understand requirements and translate them into architectural and software designs that meet business needs.
  • Act as a subject matter expert to unblock software engineers in the HPC domain.
  • Profile systems to understand bottlenecks, and optimize workflows, code and processes to improve cost of ownership.
  • Identify and mitigate technical risks and issues throughout the software development lifecycle.
  • Lead the design and implementation of complex software components and systems.
  • Ensure that software systems are scalable, reliable and maintainable.
  • Mentor and coach junior software engineers.
  • Implement features of high quality with maintainable and extendable code following software development best practices.

What you'll need

  • 5 to 10 years of experience in design and coding in C/C++, preferably in a Linux environment.
  • Very good knowledge of data structures, algorithms and complexity analysis.
  • In-depth experience in multi-threading, thread synchronization, inter-process communication and distributed computing fundamentals.
  • Very good knowledge of operating systems internals (Linux preferred), networking and storage systems.
  • Experience in performance profiling at application and system level (e.g. VTune, OProfile, perf, NVIDIA Nsight).
  • Experience in low-level code optimization techniques using vectorization and intrinsics, cache-aware programming, lock-free data structures, etc.
  • Excellent problem-solving and analytical skills.
  • Strong communication and collaboration abilities.
  • Ability to mentor and coach junior team members.
  • Experience in Agile development methodologies.
  • Bachelor's degree or higher in computer science or a related discipline.

Nice to have

  • Experience in GPU programming using CUDA, OpenMP, OpenACC, OpenCL, etc.
  • Good knowledge of workflow orchestration software such as Apache Airflow, Apache Spark, Apache Storm or Intel TBB flowgraph, etc.
  • Experience developing distributed high performance computing software using parallel programming frameworks such as MPI and UCX.
  • Experience with HPC job-scheduling and cluster management software (SLURM, Torque, LSF, etc.).
  • Good knowledge of low-latency and high-throughput data transfer technologies (RDMA, RoCE, InfiniBand).
  • Familiarity with microservices architecture, containerization technologies (Docker/Singularity) and low-latency message queues.
  • Experience in Java and Python programming.

Details

  • Location: Bangalore, India.
  • Employment type: Full time, assignee/regular.
  • Travel: Yes, about 10% of the time.
  • Relocation eligible: Yes.

Read the full description and apply on the company’s own careers page.

Stay safe

Hiring on Abekus is free for applicants

We never charge a fee, and employers are prohibited from doing so. If a recruiter asks for payment, please report them right away.

C++ Linux - Software Engineer