Senior Principal Desktop Software Engineer
Apply now »Date: 2 May 2024
Location: Abu Dhabi, AE
Company: EDGE Group PJSC
About ADASI
ADASI is the regional leader in autonomous systems and services, dedicated to offering holistic solutions – from the development and production of unmanned systems to joint mission analysis and careful equipment acquisition. ADASI manufactures, operates and maintains next-generation autonomous solutions for air, land and sea – capable of performing in a diverse range of demanding environments. Leveraging advanced technologies to comply with the tactical demands of the future, ADASI aims to be a world leader in building the next generation of autonomous capabilities.
Key Responsibilities
- Software Architecture: Lead the design and architecture of desktop software applications, defining system architecture, component design, and software interfaces to meet functional and non-functional requirements.
- Software Development: Develop high-quality desktop software code using programming languages such as C++, Java, C#, or Python, following best practices, coding standards, and design patterns.
- User Interface Design: Design intuitive and user-friendly graphical user interfaces (GUIs) for desktop software applications, focusing on usability, accessibility, and visual aesthetics.
- Feature Development: Lead the development of new features and functionality for desktop software applications, including requirements analysis, design, implementation, testing, and deployment.
- Performance Optimization: Identify performance bottlenecks and areas for optimization in desktop software applications, and implement performance improvements to enhance responsiveness, efficiency, and scalability.
- Code Review and Quality Assurance: Conduct code reviews and quality assurance activities to ensure code quality, reliability, and maintainability, and enforce coding standards and best practices within the software development team.
- Version Control and Configuration Management: Manage source code repositories, branches, and releases using version control systems (e.g., Git), and implement configuration management processes to track changes and dependencies.
- Cross-Platform Development: Develop desktop software applications for multiple platforms, including Windows, macOS, and Linux, and ensure compatibility, portability, and consistency across different operating systems.
- Technical Leadership: Provide technical leadership and guidance to software development teams, including mentoring junior engineers, conducting technical training, and promoting knowledge sharing and collaboration.
Education & Experience:
- Bachelor's degree in Computer Science, Software Engineering, or a related field. (Master's degree or Ph.D. preferred.)
- Minimum 8 years of experience in desktop software development, with a proven track record of designing and implementing desktop software applications.
- Proficiency in desktop software development languages and frameworks, such as C++, Java, C#, .NET, Python, Qt, or Electron.
- Strong understanding of software architecture principles, design patterns, and best practices for desktop application development.
- Experience with user interface design and development using GUI frameworks (e.g., WinForms, WPF, GTK+, Qt), and familiarity with UI/UX design principles.
- Knowledge of software development tools and practices, including integrated development environments (IDEs), build systems, testing frameworks, and debugging tools.
- Excellent problem-solving and analytical skills, with the ability to troubleshoot complex software issues and propose effective solutions.
- Effective communication and interpersonal skills, with the ability to collaborate effectively with cross-functional teams and stakeholders.
- Leadership abilities, including the ability to lead software development teams, prioritize tasks, and drive technical excellence and innovation.
Job Segment:
User Experience, Testing, Quality Assurance, Application Developer, Computer Science, Technology