About Applied
As a technical lead, you will get the opportunity to grow in the field of high-performance computing, complex system design and low-level optimizations for better cost of ownership.
Roles and Responsibility
- As a technical lead, 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 intoarchitectural/softwaredesigns that meet business needs.
- 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.
- 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.
- Your primary focus will be on implementing features of high quality with maintainable and extendable code following software development best practices
Qualifications
- 5 to 10 years of experience in Design and coding in C/C++ preferably in 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, Oprofiler, perf, Nividia Nsight etc.)
- 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.
Additional Qualifications:
- Experience in GPU programming using CUDA, OpenMP, OpenACC, OpenCL etc.
- Good Knowledge of Work-flow orchestration Software like Apache Airflow, Apache Spark, Apache storm or Intel TBB flowgraph etc.
- Experience in developing Distributed High Performance Computing software using Parallel programming frameworks like MPI, UCX etc.
- 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)
- Familiarity with microservices architecture and containerization technologies (docker/singularity) and low latency Message queues.
:
Bachelor's Degree or higher in Computer science or related Disciplines.
QualificationsBachelor's Degree
4 - 7 Years
Full time
Assignee / Regular