- Location
- Edinburgh, United Kingdom
- Workplace
- Hybrid, Onsite
- Type
- Full-time
- Department
- Engineering
- Seniority
- Senior
- Education
- PhD
- Source
- Workday
Description
Job Description Summary
Become part of a winning team and help to deliver the Green Energy transition.As a Staff Software Engineer, you will contribute to developing a new generation of our critical software solutions for managing and controlling power systems as they transition to zero carbon energy.
In a rapidly changing environment for power utilities worldwide, there is a significant need for innovative solutions to manage the stability, security and resilience of the power system while enabling it to accommodate ever-increasing renewable resources.
You will work with a multidisciplinary group that collaborates closely with customers to develop solutions that harness the value of high-resolution data for real-time control as well as in-depth analysis.
You will be involved in designing and developing modules, features or suite of features for world leading Grid Software products.
You will work independently and contribute to the immediate team and other teams across the business and lead design decisions where appropriate.
Location: Edinburgh, UK (Hybrid Working 2-3 days onsite)
Job Description
Roles and Responsibilities:
- Providing technical leadership and defining, developing, and evolving software in a fast-paced agile development environment using the latest software development technologies and infrastructure.
- Understand whole product, its modules, and the interrelationship between them while being an expert in the assigned component or module.
- Identify the scope of the work, provide initial estimate, and justify the estimate with facts.
- Work with Product Line Leaders (PLLs) to understand product requirements & vision.
- Demonstrate the understanding of Agile software development lifecycle and able to distinguish the core inputs and outputs in each cycle.
- Engage in technical discussions; participate in technical designs and present technical ideas; seek and provide feedback on design and development.
- Drive design reviews, define interfaces between code modules, and apply existing technology to designs.
- Maintain code quality through best practices, unit testing and code quality automation.
- Demonstrate the ability to make informed technology choices after due diligence and impact assessment.
- Articulate the need for scalability and understand the importance of improving quality through testing.
- Be an expert in writing code that meets standards and delivers the desired functionality using the technology selected for the project.
- Be an expert in assessing application performance and optimising/improving it through design and best coding practices.
- Be an expert in core data structures as well as algorithms and can implement them using language of choice.
Technical Skills:
- Strong knowledge of Computer Science fundamentals, including data structures, analysis of algorithms, object-oriented analysis and design, software design patterns and Java coding principles.
- Advanced experience of Java and Spring / Spring boot frameworks.
- Advanced experience with micro-services architecture and web services (REST, SOAP).
- Hand-on experience with containerisation technologies such as Docker, Kubernetes, and Helm.
- Hands-on experience with web development using JavaScript, ideally TypeScript and Angular.
- Experience with languages such as Golang, Python.
Business Acumen:
- Ability to take ownership of tasks and deliver without supervision while using their discretion to seek help when necessary.
- Voices opinions and presents clear rationale. Uses data or factual evidence to influence.
- Recognises collaborative behaviour and participates in collaborative activities.
- Understand the technology landscape, up to date on current technology trends and new technology, brings new ideas to the team.
- Displays understanding of the project’s value proposition for the customer. Shows commitment to deliver the best value proposition for the targeted customer.
- Learns organisation vision statement and decision-making framework. Able to understand how team and personal goals/objectives contribute to the organisation vision.
- Demonstrates the initiative to explore alternate technology and approaches to solving problems.
- Skilled in breaking down problems, documenting problem statements and estimating efforts.
- Demonstrates awareness about competitors and industry trends.
- Has the ability to analyse impact of technology choices.
Personal/Leadership Attributes:
- Demonstrates strong problem solving and organisational skills.
- Ability to work independently and as an exceptional team player including cross-functional and global teams with time-zone flexibility.
- Able to effectively direct and mentor others in critical thinking skills and effectively delegate work.
- Ability to analyse complex technical user requirements and translate them to development tasks.
Education:
- Bachelor’s Degree in Computer Science or STEM (Science, Technology, Engineering and Math).
- Significant and demonstrated years of experience in commercial software development / advanced experience (UK).
Desired Technical Expertise:
- Master’s Degree / PhD in Computer Science.
- Experience working on software projects in the Energy domain (Energy Management, Oil & Gas, Power & Water).
- Certified Scrum Master and/or Product Owner.
- Experience of AI/ML techniques / methodologies.
- An advanced understanding of Wide Area Monitoring and Control Systems (WAMCS).
Additional Information
Relocation Assistance Provided: No
Skills
PythonJavaScriptTypeScriptJavaAngularSpring BootDockerKubernetesRESTAgileScrumGo