Software Engineer

Posted 2 hours 55 minutes ago by Full Stack Energy

Permanent
Full Time
Academic Jobs
Limerick, Ireland
Job Description
Position: Software Engineer Role Summary

Participate in the development, maintenance, and operation of analytics and optimisation software within the energy technology domain.

The role requires strong technical thinking, reliability, and the ability to work independently without excessive supervision.

Core Responsibilities
  • Contribute to the design and implementation of software modules and data-processing components.

  • Perform analytical tasks involving mathematical models, time-series data, and optimisation workflows.

  • Conduct research on algorithms, data structures, and mathematical concepts as needed.

  • Assist in troubleshooting, debugging, and improving system performance.

  • Collaborate effectively with senior staff, engineering experts, and a wide range of customers, whilst managing tasks with minimal guidance.

  • Maintain clear, concise technical documentation.

  • Degree in Computer Science, Software Engineering, Mathematics, Electrical Engineering, or a related technical field (where coursework must involve some degree of software development).

  • Solid grounding in programming fundamentals (control flow, data structures, complexity) and practical Python development experience.

  • Ability to write, read, test, debug, and maintain Python code for analytics, data processing, automation, APIs, and prototype/R&D software.

  • Experience with some additional high-level language is desirable

  • Familiarity with Linux environments and command line tooling, experience with using them within a commercial, or academic, environment.

  • Strong problem solving skills and the ability to reason effectively and creatively with algorithms and software systems in general.

  • Ability to work methodically and think independently, with the capability and confidence to defend views when challenged, explain concepts clearly to non-technical collaborators, and not be afraid to speak up in what can often be highly technical discussions.

  • Understanding of time-series data, analytics workflows, and basic statistical methods.

  • Exposure to database paradigms including relational databases, NoSQL/document or key-value databases, and time-series databases. Specific products are less important than understanding how these paradigms are used and where each is appropriate.

  • Working knowledge of SQL and relational data modelling is expected; exposure to time-series storage and query patterns is a distinct advantage.

  • Experience working with APIs, data streams, or messaging/queueing systems.

  • Optional exposure to Rust, C/C++, or Go/Golang would be useful, particularly for performance-sensitive, systems, or integration work, but these are not mandatory requirements.

  • Familiarity with the concept of containerisation with Docker

  • Some knowledge of cloud based computing such as AWS, Azure, or GC

  • Practical aptitude for debugging and diagnosing issues across software layers.

  • An interest in mathematics along with a conceptual understanding of the workings of machine learning, large language models, and trends in the "AI" industry. Mathematical or programmatic understanding would be an advantage, but is not essential.

  • Able to learn quickly, without repeated instruction.

  • A curious, open minded attitude to continual learning.

  • Communicate clearly and concisely.

Essential Qualifications
  • Degree in Computer Science, Software Engineering, Mathematics, Electrical Engineering, or a related technical field (where coursework must involve some degree of software development).

  • Solid grounding in programming fundamentals (control flow, data structures, complexity) and practical Python development experience.

  • Ability to write, read, test, debug, and maintain Python code for analytics, data processing, automation, APIs, and prototype/R&D software.

  • Experience with some additional high-level language is desirable

  • Familiarity with Linux environments and command line tooling, experience with using them within a commercial, or academic, environment.

  • Strong problem solving skills and the ability to reason effectively and creatively with algorithms and software systems in general.

  • Ability to work methodically and think independently, with the capability and confidence to defend views when challenged, explain concepts clearly to non-technical collaborators, and not be afraid to speak up in what can often be highly technical discussions.

Desired Skills & Experience
  • Understanding of time-series data, analytics workflows, and basic statistical methods.

  • Exposure to database paradigms including relational databases, NoSQL/document or key-value databases, and time-series databases. Specific products are less important than understanding how these paradigms are used and where each is appropriate.

  • Working knowledge of SQL and relational data modelling is expected; exposure to time-series storage and query patterns is a distinct advantage.

  • Experience working with APIs, data streams, or messaging/queueing systems.

  • Optional exposure to Rust, C/C++, or Go/Golang would be useful, particularly for performance-sensitive, systems, or integration work, but these are not mandatory requirements.

  • Familiarity with the concept of containerisation with Docker

  • Some knowledge of cloud based computing such as AWS, Azure, or GC

  • Practical aptitude for debugging and diagnosing issues across software layers.

  • An interest in mathematics along with a conceptual understanding of the workings of machine learning, large language models, and trends in the "AI" industry. Mathematical or programmatic understanding would be an advantage, but is not essential.

Personal Requirements
  • Able to learn quickly, without repeated instruction.

  • A curious, open minded attitude to continual learning.

  • Communicate clearly and concisely.

Summary

We are looking for an individual with primarily problem solving abilities who has experience in software engineering and will be able to offer creative and imaginative insight into problems within the energy industry, aid with the rapid development of prototype (often R&D) software, and to support senior engineers with their day to day tasks.

Any exposure to the energy industry, or its inherent concepts, would be a distinct advantage, as would knowledge of the computer science, programming, mathematical, or electrical engineering domains.

You will be examined on your knowledge at interview, both theoretically and practically, so please do not apply if you do not fulfil the stated requirements. This will include effective use of Linux machines, Python programming tasks, understanding of database paradigms, and the understanding of some specific mathematical concepts.

We offer the chance to join small, focussed teams whose primary goals are research, innovation, and implementation in the energy industry and the opportunity to learn rapidly both from knowledgeable peers and very often through self-guided learning of new and novel concepts.