Senior Software Engineer
Our high-technology industry client is seeking a Senior Software Engineer to join our team.
The prime function of the role is to assist in the further development our current application suite with an eye to the future development of our product. You will be expected to Lead small projects and work closely with Product, Project managers and Principal Engineers.
The Opportunity:
The position of Senior Software Engineer is part of our cross-functional engineering team within the company. The individual is required to be part of a tight knit software group working on real-time machine control, automation, algorithm implementation, UI, data-analysis and contributing to areas such as diagnostics and predictive maintenance.
Key Responsibilities:
* Help develop and document requirements.
* Help educate and advocate for software best practices and overall product quality.
* Participate in design and documentation reviews.
* Coordinate with multiple teams to understand requirements and get issues addressed.
* Look at the product holistically and rigorously to identify inconsistencies and issues.
* Collaborate effectively as part of an integrated software team whilst also being able to work independently.
* Work across functions (Systems Engineering, Mechatronics, Research, Electronics) to help identify issues and guide the optimal technology choices, architectures, and implementation.
Education / Qualifications:
* Degree educated in Computer Science or relevant experience.
* Experience at a local level in our core technology areas.
Professional Skills/ Abilities:
Essential
* Experience developing MS Windows desktop applications/UI (C#, WPF, Avalonia, etc.).
* Software experience using C# .Net Framework and .Net Core.
* Experience of IPC technologies and techniques
* Software architecture (distributed systems, real-time control).
* Multi-Threading techniques.
* JIRA and Confluence or equivalents.
* Experience documenting technical requirements.
* Experience writing unit tests.
* Understanding of the principles of real-time machine control.
* Knowledge or experience of Agile methodologies.
* Good written and spoken English.
Preferred
* Knowledge of Python, C++, and other languages.
* Networking and Network Topology (TCP/IP, routing etc.).
* Systems Engineering understanding or appreciation