Software Engineer

منذ يوم

Dubai, Dubai Emirate, الإمارات العربية المتحدة wedgetechflash دوام كامل ‏240,000 د.إ.‏ - ‏420,000 د.إ.‏/سنة

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.

Ideal Candidate

1. Strong Software Engineer Profile

Strong Software Engineer Profile with C++/Systems programming background and high-performance computing experience.

2. Mandatory (Experience 1)

Must have 2+ years of professional experience in C/C++ development, systems programming or performance-focused engineering.

3. Mandatory (Experience 2)

Must have experience designing and optimizing performance-critical software including memory layout, access patterns and data movement.

4. Mandatory (Experience 3)

Must have experience with multithreaded or concurrent programming (std::thread, OpenMP, pthreads) and synchronization.

5. Mandatory (Tech Skill 1)

Must have hands-on modern C++ (C++11 and later) including memory management, pointers, templates and OOP.

6. Mandatory (Tech Skill 2)

Must have hands-on experience developing and debugging on Linux using gcc/clang, gdb, and make/CMake.

7. Mandatory (Tech Skill 3)

Must have a solid grasp of data structures, algorithms, and their performance trade-offs.

8. Mandatory (Note)

F2F interview at Noida office is compulsory. Candidates unwilling to attend in person must not be submitted and will not be considered.

9. Preferred (Experience 1)

Experience with GPU programming using CUDA or HIP/ROCm and understanding of GPU architecture (warps, memory hierarchy).

10. Preferred (Experience 2)

Experience with parallel programming models and HPC concepts (MPI, SIMD/vectorization).

11. Preferred (Experience 3)

Projects or open-source contributions in C++, compilers, or performance optimization.