Main Responsibilities :
- Lead the design, development, and implementation of software projects, ensuring adherence to best practices and coding standards.
- Collaborate with the team to analyze, design, and implement software solutions that meet business requirements.
- Write clean, efficient, and well-documented code following coding standards and best practices that will perform consistently in specified operating environments within agreed timelines and budgets.
- Participate in code reviews and provide constructive feedback to ensure a high-quality codebase, maintainability, and scalability.
- Mentor and guide junior developers, assisting them in their professional growth and promoting best practices.
- Assist in troubleshooting and debugging software issues, identifying and resolving defects and performance bottlenecks.
- Contribute to the development of software documentation, including technical specifications, user guides, and test plans.
- Stay up to date with emerging technologies and industry trends to continuously improve your skills and knowledge.
- Perform unit testing, support integration and system testing activities.
- Collaborate with cross-functional teams, including firmware engineers, designers, and product managers, to deliver high-quality software products.
- Actively participate in stand-ups, sprint planning, and retrospectives, as well as team meetings, discussions, and brainstorming sessions to contribute ideas and solutions.
- Participate in architectural discussions and contribute to the continuous improvement of our software architecture.
- Document all work professionally in relevant technical environments, including advanced algorithms, design calculations, plans, estimates, and project cost breakdowns.
- Develop procedures for testing modules, components, and products; evaluate, modify, enhance, and re-test products.
- Work professionally in accordance with the company's commitment to excellence and R&D’s development methodologies and SOPs.
- Standardize all designs using standard components, considering inventory management, and ensuring product reliability, functionality, and ease of manufacture and maintenance.
- Solve all but the most complex problems within the core discipline, seeking assistance from senior personnel only in challenging situations.
- Design complex modules, components, or products that are reliable, cost-effective, and perform consistently within specified environments, timelines, and budgets.
- Handle projects requiring complex judgment using high-level engineering principles and techniques.
Qualifications and other Requirements :
- Bachelor's degree in Computer Science, Software Engineering, or a related field.
- Minimum of 5 years’ experience as a Software Developer/Engineer.
- Proven experience in a senior role with successful project delivery.
- Strong skills in C#, Maui/Xamarin, SQLite, MSSQL Server, PostgreSQL, with understanding of Blazor, JavaScript, and Flutter.
- Experience with code review and quality assurance processes.
- Understanding of Agile or Scrum methodologies and familiarity with project management tools.
- Knowledge of cloud platforms (Azure, Google Cloud) is a plus.
- Leadership or team management experience.
- Leadership qualities to inspire and motivate teams, foster positive work culture, and drive improvements.
- Excellent communication and interpersonal skills.
- Strong problem-solving and decision-making skills.
- Ability to adapt to a fast-paced environment and manage multiple priorities.