Software Engineer — C++ HPC GPU Computing
Job Summary
Software Engineer — C / HPC / GPU Computing
Location : Noida Uttar Pradesh India (on-site)
Experience : 2 years in C/C or systems software development
Employment type : Full-time
Compensation : Competitive commensurate with experience and level
About the role: You will design implement and optimize performance-critical software in C working close to the hardware on CPUs and GPUs. The work spans systems programming parallel computing and GPU kernel development using CUDA and HIP.
This role suits engineers who want to understand what happens beneath the abstraction — how code maps to memory threads and hardware — rather than only using libraries and frameworks.
Key responsibilities:
- Design develop and maintain high-performance C software for compute-intensive workloads.
- Write and optimize parallel code for multi-core CPUs and GPUs including CUDA/HIP kernels.
- Profile applications identify bottlenecks in compute memory and I/O and deliver measurable speedups.
- Optimize memory layout access patterns and data movement across the memory hierarchy.
- Work with Linux systems internals: processes threads synchronization and virtual memory.
- Write clean well-tested maintainable code and take part in code and design reviews.
- Benchmark debug and validate correctness and performance across hardware platforms.
- Collaborate with the team to evaluate new hardware toolchains and optimization techniques.
Required qualifications:
- Bachelor's or Master's degree in Computer Science Electronics or a related field.
- 2 years of professional experience in C/C development systems programming or performance-focused engineering.
- Strong command of modern C (C11 and later) including memory management pointers templates and OOP.
- Solid grasp of data structures algorithms and their performance trade-offs.
- Strong understanding of operating system concepts: processes threads virtual memory scheduling and synchronization.
- Hands-on experience developing and debugging on Linux (gcc/clang gdb make/CMake).
- Experience with multithreaded or concurrent programming (e.g. std: thread OpenMP threads).
- Strong analytical and debugging skills and a habit of measuring before optimizing.
Preferred qualifications:
- Experience with GPU programming using CUDA or HIP/ROCm.
- Understanding of GPU architecture: warps/wavefronts occupancy and the memory hierarchy (global shared registers caches).
- Experience with parallel programming models and HPC concepts (MPI OpenMP SIMD/vectorization
- Familiarity with profiling tools such as perf VTune Nsight Systems/Compute or rocprof.
- Knowledge of computer architecture: caches memory bandwidth NUMA and instruction-level parallelism.
- Exposure to compilers LLVM or low-level code generation. Projects or open-source contributions in C CUDA/HIP compilers systems programming or performance optimization.
- CUDA/HIP experience is a plus not a requirement.
- Strong C and systems fundamentals matter most; we will help you ramp up on GPU computing.
Required Skills:
C data structures algorithm GPU HPC multithreading memory management systems software linux debugging