SENIOR SOFTWARE ENGINEER

Main Responsibilities:

  • Lead the design, development, and implementation of software projects, ensuring adherence to best practices and coding standards.
  • Collaborate with the team to analyse, 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/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.
  • Professionally document all work in relevant technical environment, including advanced algorithms and design calculations, plans & estimates as well as the design performance characteristics and a summarized project cost breakdown.
  • Develop procedures for testing modules/components/products and evaluate, modify/enhance and re-test products.
  • Work in a professional manner consistent with the company’s commitment to excellence, and R&D’s applicable development methodologies and/or standard operating procedures.
  • Standardise all designs as far as possible, using standard components; particular consideration must be given to inventory management. Always use appropriate components to ensure product excellence (exceptional reliability, high levels of functionality, excellent value, ease of manufacture and maintainability, etc.).
  • Solve all but the most complex problems in core discipline. Relies on assistance from senior personnel only in the most challenging situations.
  • Designs complex modules/components/products that are reliable, cost effective and that will perform consistently in specified operating environments within agreed timelines and budgets.
  • Responsible for projects requiring complex judgement 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’ work experience as a Software Developer/ Engineer
  • Proven experience in a Senior role with a track record of successful projects.
  • Strong technical skills in C#, Maui/Xamarin, SQLite, MSSQL Server, PostgreSQL with a good understanding of Blazor, JavaScript and Flutter.
  • Experience with code review processes and quality assurance practices to ensure software quality and maintainable codebase.
  • Solid understanding of software development methodologies, such as Agile or Scrum, and experience with project management tools.
  • Familiarity with cloud platforms (such as Azure, or Google Cloud) is a plus.
  • Previous leadership or team management experience, demonstrating the ability to lead and motivate a team or individuals towards successful project delivery.
  • Leadership qualities, including the ability to inspire and motivate team members, foster a positive work culture, and drive continuous improvement.
  • Excellent communication and interpersonal skills, with the ability to collaborate effectively with cross-functional teams and stakeholders.
  • Strong problem-solving and decision-making abilities, with a focus on finding practical solutions to complex technical challenges.
  • Ability to adapt to a fast-paced, dynamic work environment and manage multiple priorities effectively.