Software Engineering Expert at Applied Materials
Bengaluru, karnataka, India -
Full Time


Start Date

Immediate

Expiry Date

17 Feb, 26

Salary

0.0

Posted On

19 Nov, 25

Experience

10 year(s) or above

Remote Job

Yes

Telecommute

Yes

Sponsor Visa

No

Skills

C/C++, Linux, Data Structures, Algorithms, Distributed Computing, Parallel Programming, Multi-threading, Thread Synchronization, Inter Process Communication, Performance Profiling, GPU Programming, Microservices, Containerization, Agile Development, HPC Job-Scheduling, Workflow Orchestration

Industry

Semiconductor Manufacturing

Description
As a Software Architect, you will be responsible for designing and implementing High performance computing software solutions for our organization. You will work closely with cross-functional teams, including software engineers, product managers, and business stakeholders, to understand requirements and translate them into architectural/software designs that meet business needs. You will be coding and developing quick prototypes to establish your design with real code and data. You will be a subject Matter expert to unblock software engineers in the HPC domain. You will be expected to profile systems to understand bottlenecks, optimize workflows and code and processes to improve cost of ownership. Conduct technical reviews and provide guidance to software engineers during the development process. Identify and mitigate technical risks and issues throughout the software development lifecycle. Evaluate and recommend appropriate technologies and frameworks to meet project requirements. 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 architects and engineers. Your primary focus will be on ensuring that the software systems are scalable, reliable, maintainable and cost effective. Someone who has the drive and passion to learn quickly, has the ability to multi-task and switch contexts based on business needs. 7 to 15 years of experience in Design and coding in C/C++ preferably in Linux Environment. Very good knowledge Data structure and Algorithms and complexity analysis. Experience in developing Distributed High Performance Computing software using Parallel programming frameworks like MPI, UCX etc. In depth experience in Multi-threading, Thread Synchronization, Inter process communication, and distributed computing fundamentals. Very Good knowledge of Computer science fundamentals like, Operating systems internals (Linux Preferred), Networking and Storage systems. Experience in performance profiling at application and system level (e.g. vtune, Oprofiler, perf, Nividia Nsight etc.) Experience in low level code optimization techniques using Vectorization and Intrinsics, cache-aware programming, lock free data structures etc. Experience in GPU programming using CUDA, OpenMP, OpenACC, OpenCL etc. Familiarity with microservices architecture and containerization technologies (docker/singularity) and low latency Message queues. Excellent problem-solving and analytical skills. Strong communication and collaboration abilities. Ability to mentor and coach junior team members. Experience in Agile development methodologies. Experience in 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) Good Knowledge of Work-flow orchestration Software like Apache Airflow, Apache Spark, Apache storm or Intel TBB flowgraph etc.

How To Apply:

Incase you would like to apply to this job directly from the source, please click here

Responsibilities
As a Software Architect, you will design and implement high-performance computing software solutions. You will work with cross-functional teams to translate requirements into architectural designs and mentor junior engineers.
Loading...