Senior Software Engineer – IoT Platform, Load and Energy Management

location_onCopenhagen, Denmarkschedulegestern
homeArbeitsform:Remote
trending_upErfahrungsniveau:Senior
historyMindesterfahrung:5+ Jahre

Stellenbeschreibung

🚀 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.

To do that well, you need to understand both sides: the TypeScript services as they are now, and the concepts of memory, types and performance that compiled languages force you to think about. In our experience, it's much easier to go from a compiled language to a scripting environment than the other way around. So if you're a Go, C, C++, Rust or similar developer who is happy to work in TypeScript (or happy to learn), you're exactly who we're looking for.

✅ 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.

💡 Strongly preferred (but we'll teach it)

  • Hands-on device or protocol integration: Modbus, serial interfaces, Ethernet/TCP-IP or comparable.
  • Containerised applications. Docker, Docker Compose or Kubernetes are ideal, but any container technology counts.
  • Pub/sub and distributed systems, ideally MQTT or another IoT messaging protocol, and an understanding of their reliability concerns.
  • Working within constrained systems, including profiling software to find where CPU or memory limits bite.

🎁 Bonus, not a requirement

  • OCPP experience.
  • Energy, EV charging or power-systems domain knowledge.
  • Edge deployment experience.

If you don't have these, apply anyway. Strong fundamentals and the right mindset matter more. 💪

🚫 This role is probably not for you if

  • Your experience is mainly frontend or request/response web apps, with no compiled-language background.
  • You prefer to stay in one language and aren't interested in working in TypeScript.
  • You want a pure firmware or PLC role without writing higher-level services.
  • You don't enjoy debugging the messy cases where hardware doesn't behave as documented.

🌆 What is it like to work at FLEXECHARGE?

  • Our office is in Frederiksberg: bright, comfortable, and a genuinely nice place to spend your workday.
  • You're covered with pension contributions.
  • Lunch is served on-site, and it's delicious, healthy and nutritious.
  • We enjoy each other's company outside work too, with Friday bars, company events and team-building activities within each team.
  • You'll have opportunities for individual development.

🤝 Our interview process

Here's roughly what happens once we've had a look at your application:

  • A first conversation (about 30 minutes) with our recruiter. You'll get a feel for the role, ask whatever's on your mind, and we'll both get a sense of whether this is worth pursuing further.
  • Time with the team: a conversation with Kasper, our Head of Architecture & Systems, and Robert, our CTO.
  • A technical stage: one or more interviews with the team, which may include a case exercise and follow-up discussions. These can take place remotely or at our office.
  • A conversation with Max, our CEO, alongside someone else from the team.

Hiring carefully matters to us. We want to get to know you properly, and we want you to get a real feel for us too. If there's anything we can do to make the process work better for you, tell us.

We'd love to hear from you.

📍 Location & practical details

This is an on-site role based in Copenhagen. Only candidates currently located in Copenhagen, or those who clearly state in their application that they plan to relocate, will be considered.

Please note:

  • We do not offer visa sponsorship for this role.
  • We do not offer relocation services.

🔐 Data privacy (GDPR)

Applications for this role are processed exclusively through The Hub (thehub.io), our recruitment platform, in accordance with their privacy policy and applicable GDPR requirements. As part of our interview process, conversations may be recorded and transcribed via Microsoft Teams, and AI tools may be used to summarise interview notes to support our hiring team's evaluation. Your data will be handled confidentially, retained only during the interview process, and used only for this recruitment process.

Genannte Fähigkeiten

Auf diese Stelle bewerben

Use the application link supplied with this listing to apply to FLEXECHARGE. Check the destination before entering personal information.