
C++ Linux - Software Engineer
Applied Materials26 days ago
Bengaluru, IndiaStaff+
Responsibilities
- Design and implement high-performance computing software solutions.
- Collaborate with software engineers, product managers, and business stakeholders to translate requirements into architectural and software designs.
- Serve as a subject matter expert in high-performance computing and unblock software engineers.
- Profile systems, identify bottlenecks, and optimize workflows, code, and processes for improved cost of ownership.
- Identify and mitigate technical risks throughout the software development lifecycle.
- Lead the design and implementation of complex software components and systems.
- Ensure software systems are scalable, reliable, maintainable, and high quality.
- Mentor and coach junior software engineers.
- Develop software documentation, test procedures, and troubleshooting solutions for semiconductor equipment software.
- Work as part of a cross-functional team developing low-latency, high-throughput image-processing and deep-learning systems.
Requirements
- 5–10 years of experience designing and coding in C/C++, preferably in a Linux environment.
- Strong knowledge of data structures, algorithms, and complexity analysis.
- In-depth experience with multithreading, thread synchronization, inter-process communication, and distributed computing fundamentals.
- Very good knowledge of operating-system internals, networking, and storage systems.
- Experience with application- and system-level performance profiling tools such as VTune, OProfiler, perf, or NVIDIA Nsight.
- Experience with low-level optimization techniques including vectorization, intrinsics, cache-aware programming, and lock-free data structures.
- Experience with GPU programming using CUDA, OpenMP, OpenACC, or OpenCL.
- Knowledge of workflow-orchestration software such as Apache Airflow, Apache Spark, Apache Storm, or Intel TBB flowgraph.
- Experience developing distributed HPC software with parallel programming frameworks such as MPI or UCX.
- Experience with HPC job scheduling and cluster-management software such as SLURM, Torque, or LSF.
- Knowledge of low-latency and high-throughput data-transfer technologies such as RDMA, RoCE, or InfiniBand.
- Familiarity with microservices, containerization technologies such as Docker or Singularity, and low-latency message queues.
- Experience with Java and Python programming.
- Bachelor’s degree or higher in computer science or a related discipline.
- Ability to mentor and coach junior team members and collaborate effectively across teams.
Benefits
- Full-time regular employment.
- Location: Bangalore, India.
- 10% travel required.
- Relocation eligible.
- Supportive learning and professional-development culture with employee health and wellbeing programs.
About Applied Materials
Applied Materials builds semiconductor and display manufacturing equipment and related materials engineering technologies used by chip and flat-panel makers. It sells capital tools, process technology, and lifecycle services and software to support high-volume wafer fabrication and display production worldwide. Founded in 1967 and headquartered in Santa Clara, California, the company is publicly traded on NASDAQ under the ticker AMAT.