Software Engineer
JOB TITLE: Software Engineer
DEPARTMENT: Software – Technology
REPORTS TO: Software Manager
JOB HOLDER'S NAME:
1. PURPOSE OF JOB:
To provide hands-on software engineering expertise to support the Software team to bring new products to market whilst improving the design and performance of all existing products.
2. PRINCIPAL ACCOUNTABILITIES:
- To develop maintainable, well-structured software in line with coding standards
- To work collaboratively with colleagues in the Software team, Technology department, other departments and international offices
- To be actively involved in the formal product development process, from idea generation and screening, through concept and prototype development, to final design verification and validation
- To identify new areas of research and work closely with other product development team members to deliver product solutions that fulfil the needs of the customer
- To generate requirements documentation to ensure objectives and technical specifications are clearly defined
- To provide guidance and support during the seamless transition of new projects from development into mainstream production
- To always act in a professional manner to develop products which are aligned with the principles, strategy and goals of the business and expectations of the customer
3. CONTEXT
There is a requirement within the Technology team for a Software Engineer-end, to accelerate development of new and existing products.
4. KNOWLEDGE & EXPERIENCE
The Job Holder must have:
- Minimum 1-2 years’ C# software development experience in a commercial environment.
- A keen eye for detail and identifying problems at an early stage
- An innovative and self-motivated approach, good all-round engineering knowledge, a flexible attitude and be able to work in a multi-disciplinary team to meet time and budget deadlines The Job Holder may also have:
- 3 years’ commercial software development experience for industrial products
- Qualified to HND / Degree standard in software engineering or similar discipline
- Interested in building DevOps skills and experience (TeamCity or similar e.g. Azure Devops)
- Have experience of a variety of database technologies and platforms, such as MS SQL (T-SQL), PostgreSQL and SQLite
- Have experience of version control systems such as Git
- Good understanding of applying advanced domain driven design and development principles to industry best practices
- Awareness of standard design pattern (and anti-patterns)
- Ability to translate technical terminology and produce similar standard documentation for peers
- Experience of developing intranet-based browser applications
- Experience of developing GUI front ends (XAML/Blazor/Razor)
- Experience of implementing REST web services
- Have embedded software development experience using C++ or C (for Linux)
- Willingness to travel internationally on an occasional basis
- Able to demonstrate an ability to communicate effectively with customers and suppliers Skills Matrix, based on our tech stack (ordered by desirability) Primary Skill Including C# ASP.Net Core EF Core Blazor / Razor JSInterop WPF (legacy) SQL T-SQL PostgresSQL Message Queue MQTT RabbitMQ Data Analysis / Visualization Python Jupyter Notebook R/RStudio Plotly M2M (Industrial Control) OPCUA Modbus/TCP C++ Embedded Linux Microcontroller (Platform IO) SQLite DevOps TeamCity ESXI/Hypervisor Docker/PodMan