Full stack Developer for Customer Integration Workflow (CIW) team in System Operations Who are we? At the System Operations (SO) department we are focused on keeping the current electricity grid up and running, while getting the most out of the available capacity for our customers. We do this by implementing ‘smart solutions’ that enable us to connect more customers or to provide more capacity for existing customers. The SO department has over 20 teams developing and supporting this ambition.
At team ‘Customer Integration Workflow’ (CIW) we are at the start of the SO chain, where we check and prepare the customer product before passing it on to the other parts of SO. Our responsibility is to make sure we can ‘run’ the customer product by checking if the customer contracts are available and valid, whether we have the means to monitor a customer in the grid, and to configure other components accordingly. We also provide a few other components in the SO domain, like an acceptance scenario simulation and market agreement services. About the CIW team As a fullstack Developer you work closely with the other Developers in the CIW team to deliver new functionality and keep our current applications up and running. You are not alone: the Developers of the CIW team work closely together, by doing (pre)refinements, bi-weekly technical meetings, story kick-offs, pair programming sessions and peer-reviews. And as a Scrum team, we also have a Product Owner and Scrum Master. CIW follows and relies on DevOps practices. This means our Developers are not only creating new functionality, but they are also actively monitoring and maintaining our components. We have a Developer-of-the-Week schedule, which means that every week there is one Developer with the special task of communicating with the stakeholders and external parties about outages or bugs and other questions that may arise. We also maintain our own DTAP environments, and we rely on a combination of acceptance tests, application probes with alerting and contract testing to make sure our components are healthy and compliant. We also have a lot of fun with each other, having drinks every month, to celebrate successes. We mostly work from home, except for the one day per week on which the entire team comes to the office in Arnhem. About our components We have several applications and services that we have created and maintain. Our backends are comprised of Java (17) and Kotlin applications based on Spring. We mainly provide REST endpoints to other services or to frontends. We use Camunda as our process engine and store our data in PostgreSQL and DocumentDB's on AWS. Our frontend applications are Angular applications, using OpenAPI generated clients to connect to our endpoints. We use ngRx for reactive state management. Our build pipeline is fully automated, relying on GitHub and Tekton to build the artifacts. Our applications are mostly deployed as docker containers on our Kubernetes platform using argoCD. We use OpenShift to manage and monitor what is going on, and we use Elastic with Kibana for our logging. We rely on a GitOps strategy and we have our entire build pipeline and server setup as configuration on GitHub. All of us use IntelliJ as our preferred development environment, combined with Docker (desktop) to run applications locally. We use Sonar to ensure code quality, and Dependabot to keep our dependencies up to date. Your background You are an all-round software Developer committed to delivering value with the team. You are an open communicator and not afraid to ask for or offer help and advice. You are familiar with most of the used technologies, and you are keen on learning. The Developer role is not only about developing new features, but also about monitoring and maintaining our components and our CI/CD pipeline. Our services include backend and frontend components, acceptance tests, contract tests, etc. So, you need to be experienced in working in a DevOps team, and you are willing to work with all of these aspects. You are a skilled programmer with at least 3 years of experience in Java or Kotlin combined with Spring, and you are experienced in frontend techniques like Javascript/Typescript, HTML, CSS and Angular. You can work with Sonar, Git, Docker and Gradle, and you have some experience with CI/CD. You acknowledge the benefits of acceptance testing, unit-testing and peer-reviews, and you have some experience with JUnit, Mockito, Cucumber, Selenium and/or Jasmin. Other techniques in which we value your experience are: Kafka, MongoDB, SQL, Bash scripting, Tekton, OpenShift, Kubernetes, OpenAPI, Scrum, Jira, and REST / JSON.