Senior Principal Desktop Softwar...
EDGE -
Dubai, United Arab EmiratesJob Details
Experience Needed:
Career Level:
Education Level:
Salary:
Job Categories:
Skills And Tools:
Job Description
About ADASIADASI 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 ResponsibilitiesSoftware 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.