We're Hiring: Senior Systems Programmer
Location: United Arab Emirates (Remote)
Employment Type: Full-Time
Experience Level: Senior
Work Arrangement: Fully Remote
About UsWe are a globally focused organization committed to building reliable, secure, high-performance technology platforms that support critical business operations across diverse markets.
Our technology teams collaborate across Software Engineering, Infrastructure, Cloud, DevOps, Security, Architecture, Data, Operations, and Product to develop and maintain robust systems, improve platform performance, and enable scalable digital services.
The RoleWe are seeking an experienced Senior Systems Programmer to design, develop, maintain, optimize, and troubleshoot system-level software and infrastructure components. The ideal candidate will have strong expertise in operating systems, low-level programming, performance optimization, systems integration, automation, and production reliability.
The role will focus on developing and improving software that operates close to the operating system and infrastructure layer, including system utilities, services, tools, drivers, runtime components, automation frameworks, monitoring solutions, and performance-critical applications.
Key Responsibilities
- * Design, develop, maintain, and optimize system-level software and programming components.
- Develop high-performance utilities, services, tools, daemons, libraries, and system applications.
- Work extensively with operating-system internals, processes, threads, memory, storage, networking, and system resources.
- Develop software using appropriate systems-programming languages such as C, C++, Rust, Go, or equivalent technologies.
- Analyze system requirements and translate them into robust technical designs and implementation plans.
- Develop low-level software components that interact closely with operating systems and infrastructure platforms.
- Develop and maintain system utilities for monitoring, administration, diagnostics, automation, and operational support.
- Optimize CPU, memory, disk, network, and other system-resource utilization.
- Conduct performance profiling, benchmarking, and bottleneck analysis.
- Identify and resolve memory leaks, race conditions, deadlocks, resource contention, and other low-level software issues.
- Analyze system crashes, failures, performance degradation, and unexpected behavior.
- Conduct root-cause analysis of complex system and software problems.
- Develop debugging tools, diagnostic utilities, and automated troubleshooting capabilities.
- Work with operating-system APIs, system calls, libraries, kernel interfaces, and runtime environments.
- Develop and maintain software for Linux, Unix, Windows, or other relevant operating systems.
- Support cross-platform development, compatibility, portability, and system integration requirements.
- Develop processes, services, agents, and background components for enterprise systems.
- Design efficient inter-process communication and synchronization mechanisms.
- Work with concurrency, multithreading, asynchronous processing, and parallel execution.
- Develop software that interacts with networking stacks, protocols, sockets, and distributed infrastructure.
- Support high-performance networking and systems communication requirements.
- Develop and optimize file-system, storage, caching, and data-processing components where required.
- Integrate system-level applications with databases, messaging platforms, APIs, cloud services, and enterprise infrastructure.
- Develop automation scripts and tools that improve system administration and operational efficiency.
- Automate repetitive infrastructure, deployment, diagnostics, monitoring, and maintenance tasks.
- Support CI/CD pipelines and automated build, test, packaging, and deployment processes.
- Maintain build systems, compilers, linkers, libraries, dependencies, and development environments.
- Troubleshoot compilation, linking, dependency, runtime, and compatibility issues.
- Establish and maintain software-development standards for systems programming.
- Conduct detailed code reviews with particular attention to correctness, reliability, security, performance, and maintainability.
- Develop comprehensive unit, integration, system, stress, performance, and regression tests.
- Build automated testing frameworks for system-level software and infrastructure components.
- Validate software behavior under high load, resource constraints, failure conditions, and degraded environments.
- Support production deployments and system upgrades while minimizing operational risk.
- Monitor production systems and investigate performance, availability, and reliability issues.
- Participate in incident response and provide technical support for critical system problems.
- Develop remediation plans and preventive improvements following incidents.
- Implement logging, metrics, tracing, diagnostics, and observability capabilities for system components.
- Ensure system software follows appropriate security, access-control, hardening, and vulnerability-management practices.
- Identify and remediate system-level security vulnerabilities and weaknesses.
- Work with Security and Infrastructure teams to implement secure system configurations and development practices.
- Evaluate emerging systems-programming technologies, programming languages, operating-system capabilities, and development tools.
- Contribute to architecture and technology decisions involving system software and infrastructure platforms.
- Support modernization and migration of legacy system components to newer architectures and technologies.
- Develop technical documentation covering system architecture, implementation, interfaces, configuration, troubleshooting, and operational procedures.
- Mentor software engineers and technical team members in systems programming, debugging, performance engineering, and low-level software development.
- Establish reusable libraries, frameworks, tools, coding standards, and engineering practices.
- Collaborate with Architecture, Infrastructure, DevOps, Security, Operations, and Product teams on complex technical initiatives.
- Provide technical estimates, implementation plans, risk assessments, and progress updates to engineering leadership.
- Contribute to continuous improvement of system reliability, performance, maintainability, security, and operational efficiency.
Key Performance Indicators
- * System software reliability
- System availability
- Application and service uptime
- CPU utilization efficiency
- Memory utilization efficiency
- Network performance
- Storage performance
- System throughput
- Application latency
- Resource utilization
- Performance benchmark results
- Performance regression rate
- Memory leak incidence
- Deadlock and race-condition incidence
- System crash frequency
- Defect rate
- Production incident rate
- Mean time to detect system failures
- Mean time to resolve system incidents
- Root-cause analysis completion
- Critical defect resolution time
- Code-review completion
- Code-review quality
- Automated test coverage
- Regression-test success rate
- Build success rate
- Deployment success rate
- Release stability
- System compatibility
- Cross-platform reliability
- Security vulnerability remediation time
- System hardening compliance
- Observability coverage
- Monitoring and alerting effectiveness
- Automation coverage
- Operational-efficiency improvements
- Technical-debt reduction
- Legacy-system modernization progress
- Documentation completeness
- Engineering standards adoption
- Tool and framework reuse
- Production support effectiveness
- Infrastructure cost efficiency
- Stakeholder satisfaction
- Knowledge-sharing and mentoring effectiveness
Ideal CandidateThe successful candidate should have strong experience in systems programming, low-level software development, operating systems, infrastructure software, performance engineering, platform engineering, or systems engineering, preferably within technology, financial services, telecommunications, cloud, enterprise software, or other high-availability environments.
The candidate should demonstrate:
- Strong experience developing and maintaining system-level software.
- Advanced programming skills in C, C++, Rust, Go, or comparable systems-oriented languages.
- Strong understanding of operating-system architecture and internals.
- Deep knowledge of processes, threads, memory management, synchronization, and concurrency.
- Strong understanding of Linux, Unix, Windows, or other enterprise operating systems.
- Experience with system calls, APIs, libraries, runtime environments, and low-level interfaces.
- Strong debugging and troubleshooting capabilities.
- Experience using debuggers, profilers, tracing tools, performance-analysis tools, and diagnostic utilities.
- Strong understanding of networking concepts, protocols, sockets, and system communication.
- Experience developing high-performance and resource-efficient software.
- Strong knowledge of data structures, algorithms, concurrency patterns, and systems-design principles.
- Experience with multithreading, asynchronous programming, parallel processing, or distributed systems.
- Experience with file systems, storage technologies, caching, or memory-management systems is highly desirable.
- Strong understanding of software build systems, compilers, linkers, libraries, and dependency management.
- Experience developing automated testing and validation frameworks.
- Strong knowledge of software-development lifecycle and engineering practices.
- Experience with Git and modern source-control workflows.
- Familiarity with CI/CD, containerization, infrastructure automation, and cloud environments.
- Strong understanding of application and system security principles.
- Experience diagnosing complex production incidents and performance problems.
- Strong analytical and problem-solving capabilities.