A

Software Engineer

Applied Materials, Inc.
NewPosted yesterday

LOCATION

Bangalore · Onsite

EXPERIENCE

5 - 10 Years

TYPE

FullTime

SALARY

Negotiable

SKILLS REQUIRED

Performance OptimizationMultithreadingData Structures & Algorithms [DSA]C Programming

Job description

Overview

As a Software Engineer and technical lead, you will design and implement high-performance computing software for low-latency, high-throughput image processing and deep-learning workloads supporting semiconductor process control equipment. You will work on complex system design, low-level optimization, and maintainable software solutions.

What you'll do

  • Design, prototype, develop, debug, and implement software solutions for semiconductor equipment components and devices.
  • Design and implement high-performance computing software solutions.
  • Work with software engineers, product managers, and business stakeholders to understand requirements and translate them into architectural and software designs.
  • Serve 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 software systems are scalable, reliable, and maintainable.
  • Develop software documentation and test procedures.
  • Troubleshoot software problems and communicate with internal customers to understand project requirements.
  • Mentor and coach junior software engineers.
  • Implement high-quality features 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, with Linux preferred, networking, and storage systems.
  • Experience in performance profiling at application and system level, such as vtune, Oprofiler, perf, or Nividia Nsight.
  • Experience in low-level code optimization techniques using vectorization and intrinsics, cache-aware programming, lock-free data structures, and similar techniques.
  • 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 related disciplines.

Nice to have

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

Details

  • Location: Bangalore, India.
  • Employment type: Full time.
  • Travel: Not specified.
  • Relocation eligible: No.

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.

Software Engineer