Senior Software Engineer – IoT Platform, Load and Energy Management
- Compensation
- Not disclosed
- Location
- Frederiksberg, Danmark
- Work setup
- Onsite
- Seniority
- Senior
- Employment
- Not specified
- Experience
- 5+ years
- Category
- Software engineering
- Posted
Skills
Must have
- 3–5+ years of professional software development, with strong software and engineering fundamentals.
- Professional experience in a compiled language (for example Go, C, C++, Rust, C# or Java).
- Proficiency in a scripting language, ideally TypeScript, otherwise JavaScript or Python, or a clear willingness to become productive in TypeScript quickly.
- Experience writing business logic with stateful calculations and operations, which can self-heal and recover gracefully.
- Comfort with asynchronous and event-driven systems that talk to unreliable external components or peripheral devices.
Full description
🚀 About the role
We're looking for a senior software engineer who writes solid, reliable code and wants that code to control real hardware. At FLEXECHARGE, our HARMON-E platform manages load and energy for EV charging operators across Europe. Part of it runs at the edge, on an industrial PC next to chargers, batteries and solar inverters, and connected to the interfaces DSOs use to curtail load.
You'll build and maintain the TypeScript microservices that talk to those devices and turn their data into decisions. This is not a web-app role. It's software engineering for systems where the other side is physical, stateful and often unreliable.
⚡ What is special about this role
It sits where two worlds meet:
- Web and cloud toolchain: TypeScript, Docker, MQTT, Azure, Kubernetes.
- Operational technology and system integration: talking to real chargers, batteries and inverters over Modbus and OCPP, running at the edge on an industrial PC.
Your code won't only talk to clean APIs in a data centre. It runs on site, next to real peripheral devices, and has to keep doing its job when those devices and the networks between them don't behave as expected.
We recognize that TypeScript is not typically used for edge computing or hardware interfacing. This is why we're looking for a strong software engineer who is interested in learning new techniques and applications, as well as applying their technical skills in novel ways.
🛠️ What you'll do
- Write and maintain a combination of TypeScript microservices and the business logic behind them: control algorithms, scheduling and decision-making, not just plumbing.
- Build and extend device drivers for chargers, batteries and inverters over Modbus TCP, using our existing driver services as a starting point.
- Work with OCPP, which our platform already supports, as you ramp up.
- Run services in containers at the edge and connect them through MQTT and pub/sub messaging to our cloud backend.
- Profile and optimise software on edge hardware, where hardware resources are constrained.
- Help shape the long-term move of performance-critical services to compiled languages.
- Mentor and pair with colleagues on integrations and software craft.
🤔 Why compiled languages, if we write TypeScript?
It may sound odd, so here's the reasoning. Today the majority of our edge stack is TypeScript, and you'll develop in it from day one. Over time we want to move selected services, such as device interfaces and performance-critical paths, to a compiled language while keeping them part of the same stack.