15 Oct
|
Whitefield Careers
|
Noida
15 Oct
Whitefield Careers
Noida
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++ (C++11 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).
- Solid 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.
Job Requirements: C++, data structures, algorithm, GPU, HPC, multithreading, memory management, systems software , linux, debugging
📌 Software Engineer — C++ / HPC / GPU Computing (Noida)
🏢 Whitefield Careers
📍 Noida