We are recruiting a Software Developer in C++ to work on innovative projects at xGMobile in 5G and 6G Networks, in the Software Defined Radio (SDR) area, for one of the most influential institutions in the telecommunications ecosystem, with strong involvement in advanced research, strategic projects, and the development of new solutions.
Responsibilities and duties:
- Design, develop, optimize, test, and validate digital signal processing (DSP) algorithms in C++ for software-defined radio systems;
- Develop digital communication algorithms, including modulation, demodulation, error correction codes, filtering, channel estimation, and equalization;
- Work with SDR software development platforms such as GNU Radio;
- Analyze and optimize C++ code to improve performance on multi-core processors;
- Use profiling, parallelization, and SIMD (Single Instruction, Multiple Data) techniques for signal processing optimization;
- Develop software with low latency and high reliability requirements;
- Create and execute unit and integration tests for algorithm validation;
- Integrate and test solutions with SDR hardware and real networks;
- Document technical specifications, software architectures, and implemented algorithms;
- Participate in code reviews and ensure compliance with software development standards for critical systems;
- Technically lead the development of research and development activities;
- Prepare proposals for new projects;
- Support the development of Scientific Initiation Projects in your area of expertise, acting in student mentoring, writing, and reviewing articles, whitepapers, and reports with the obtained results.
Requirements and qualifications:
- Complete higher education in Electrical Engineering, Telecommunications Engineering, Computer Engineering, or related fields;
- Experience in software development;
- Advanced English.
Proficiency in:
- C/C++ language with object-oriented development;
- Linux operating system, gcc compiler, cmake, compilation directives;
- Code versioning tools, such as Git;
- Use of threads (std::thread, std::mutex, std::future, std::condition_variable) for parallel processing;
- Knowledge in: Multi-threaded systems, semaphores, mutexes, data processing optimization directives.
It would be interesting if you had:
- Experience in Python and MATLAB;
Knowledge in:
- Digital signal processing techniques and communication algorithms, such as synchronization, modulation/demodulation, error-correcting codes, channel estimation, and equalization,
- Performance and low latency: design of concurrent pipelines with SPSC/zero-copy queues; SIMD vectorization (AVX2/AVX-512/NEON).