Description

Requirements:

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.

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.

Bonuses

Another info