Back-end Engineer
PHP, Symfony, Event Sourcing & Domain-Driven Design
- Location
- Utrecht (hybrid working possible)
- Employment type
- Full-time (32–40 hours)
- Team
- Software Development
Overview
How do you add a new feature to a platform used by hundreds of thousands of people every day, without anything falling over? And how do you use DDD to keep an event-sourced system understandable for the colleague who comes after you?
At Awareways, you’ll help build Wave, the platform organizations use to help their employees handle information more securely. You’ll be part of a small team of engineers covering back end, front end, data, delivery and design. We’re growing the team because we want to get new functionality to our clients faster.
Your mission in one sentence: make sure new functionality in Wave reaches users faster and reliably.
A year from now, you’ll own part of Wave’s domain. You deliver features end to end within the sprint: from technical design to release, with tests and without surprises in production.
About Awareways
Awareways helps organizations handle information more securely. We combine cybersecurity, psychology, learning and creative communication. Our product, Wave, brings training, communication, simulations and measurement together in one place, connecting what people know with how they practice and how they actually behave.
We don’t build bespoke solutions for individual clients. We build one product that keeps improving and works for more and more clients as it does. Staying close to our clients is essential to that: what we learn from clients and users, we turn into improvements that benefit everyone.
This role is part of our Product division, within the Software Development team. You’ll work in Build, the part of the team that builds and maintains Wave. Your direct teammates are the Domain Expert Back-end, a Back-end Engineer, the Domain Expert Front-end, a Front-end Engineer and a Data Scientist. You report to the Product Delivery Engineer, who leads the team and owns the roadmap and planning. You’ll work most closely with the Domain Expert Back-end, who looks after the quality of the back end and is your first sparring partner. The Head of Technology has the final say on technical vision, architecture, technical standards and security.
What will you be doing?
- New functionality that just works. You pick up features from the sprint and take them from technical design to release. You work in PHP and Symfony, with event sourcing and CQRS: you model a new feature as commands, events and projections. You agree the API with the front-end engineers so it fits the Vue.js front end.
- Specs that are feasible before anyone starts building. Before sprint planning, you go through specs with the Product Delivery Engineer. You spot where something could be simpler and give estimates the planning can rely on.
- A platform that stays stable as it grows. You write tests, keep an eye on performance and clean up technical debt where you find it. When a projection gets slow, you fix it properly, in consultation with the Domain Expert Back-end.
- Solutions to problems that affect clients. The Support Engineer and Solutions Engineers in Technical Support & Solutions work out where a reported issue comes from. If the cause is in the back end, you build and test the solution, and it goes back on the ticket. This work is less visible than a new feature, but clients notice it straight away.
- Code that others can understand. You review your colleagues’ code and have your own work reviewed. You document your choices so that a new colleague can understand the event model without having to ask you.
- Releases that reach production safely. You help roll out and monitor what you build. If something goes wrong after a release, you help find and fix it quickly, even if it wasn’t your code.
- Experienced with a different technology? Share what you know with your teammates or turn it into a proof of concept. We’re always looking for smarter, faster or better ways of working, and we’d love to learn from your experience.
What won’t you be directly responsible for?
(though your input is always welcome)
- What gets built, and in what order. That’s the Product Delivery Engineer, with the Head of Product setting the product vision. You contribute on feasibility and estimates.
- Wave’s architecture and technical standards. The Head of Technology has the final say. You flag where things rub and make proposals.
- Client contact and investigating reported issues. That’s Client Support and Technical Support & Solutions. You build the solution when the cause is in the back end.
- The design of screens and user flows. That’s the Product Designer. You help think through what makes sense technically.
A day as a Back-end Engineer
You start at 9:00 with Software Development’s sprint planning. Yesterday, a Solutions Engineer passed on a ticket: for one large client, the overview of training results is loading slowly. You take it on, alongside the feature you’re working on this sprint: automatically assigning training to new employees.
You start by looking into the ticket and asking for more context. Meanwhile, you write the first commands and events for the feature. The Domain Expert Back-end takes a look and asks whether one of your events is really describing two things that happen. It is, so you split it.
At 12:30 you have lunch with colleagues from across the company.
In the afternoon, you dig into the ticket. The query behind the projection is indeed slow for clients with a lot of rows, and this client is where it breaks. A quick fix is possible today, but it won’t make the problem go away. The structural solution takes two days, and that time comes out of your feature. You put both options to the Product Delivery Engineer. Together you decide: the quick fix today, the new projection next sprint.
By the end of the day, the fix is in the test environment. The Solutions Engineer tests it and gets the ticket ready for release. Then the Data Scientist gets in touch: they’d like to use the new assignment events for a report. You’ll take that into account when you continue on your feature tomorrow.
Who are we looking for?
You’re a back-end engineer with a few years of experience in PHP and Symfony. You want to work on a single product that you get to know inside out, and you write code that will still make sense two years from now.
What you bring:
- Thinking in the domain. You translate what happens in practice into a clear model: what happens, who does it and what the system needs to remember. You take the time to get commands, events and projections right.
- Ownership all the way to production. Done means done. A feature is only finished when it works for users. If something goes wrong, you fix it first and only then ask whose code it was.
- Making pragmatic choices. You weigh a quick fix against a structural one and explain what each option costs. You don’t build more than you need to.
- Helpful, but critical. You ask questions to understand the need behind a request or ticket. You set priorities, and you’re not afraid to say “no” or “not yet” and explain why. Throughout, you focus on what adds value for the most clients.
- Organized and careful. You plan your own work and stay on top of things when several people need you at once, such as a feature and an urgent ticket at the same time. You care about quality and privacy: Wave handles personal data belonging to our clients’ employees.
- Strong command of English. You communicate clearly in English with your teammates, both in conversation and in writing. Dutch is a plus.
Required
- At least three years of professional experience as a back-end developer, with code running in production. You’ll be joining a small team and picking up features independently from the start.
- Hands-on experience with PHP and Symfony, since Wave’s back end is built on them.
Nice to have
- Experience with event sourcing and CQRS. If you understand the concepts, you’ll learn how we apply them here.
- Experience with Domain-Driven Design, coding standards and principles (such as Clean Code).
- Dutch, since much of our organization and many of our clients are Dutch-speaking.
- Experience with automated testing, for example with PHPUnit.
You don’t need a computer science degree: what you’ve built counts for more than your diploma. You don’t need a background in cybersecurity or security awareness either, but an interest in it matters.
Why this role at Awareways?
What you build reaches all of our clients. Because we don’t do custom work, an improvement you ship this sprint works for every organization using Wave shortly afterwards.
You’ll work in a small team with short lines to Product, Support and the Head of Technology. Wave runs on an architecture you won’t find everywhere: event sourcing and CQRS in Symfony. If you haven’t worked with it much yet, you’ll get the room to learn it properly here.
What we offer
- Room to grow. A role with real responsibility in a mission-driven organization, and room to develop both professionally and personally.
- Personal development. We start with an external assessment and review your growth together at regular intervals.
- Workplace. A great office in Utrecht, with hybrid working and the option of focus days at home.
- Equipment. You’ll get a laptop and a phone. Most of us use a MacBook, but if you strongly prefer something else, that’s fine.
- Getting here. We cover your travel costs. If you’re coming from outside Utrecht, we can give you a Swapfiets for the ride from Utrecht Centraal to the office.
- Together at the office. We have lunch together every day, with croquettes on Fridays, and we celebrate wins with drinks.
- Strategic off-site. Once a year we get away for a few days to work on the future of Awareways, with time for drinks and karaoke too.
- Salary. €4,000 to €5,200 gross per month (based on 40 hours), depending on your experience, skills and education.
- Hours. 32 to 40 hours per week.
- Time off. 25 days of paid holiday.
- For later. A solid pension plan, with the option to make extra contributions on favorable terms.
- Grow with us. After one year, you’re eligible for our Stock Appreciation Rights plan.
Diversity matters to us, and we keep working to make Awareways a place where everyone feels at home. That’s why we welcome people of all backgrounds and experiences.
Interested?
We don’t ask for a cover letter. Instead, tell us in no more than 300 words about a time you changed an existing system without users being affected. What was the problem, what trade-off did you make, and what would you do differently looking back?
Send your CV and your answer to Mati Kochen (Head of Technology) at mati@awareways.com, with the subject line “Vacancy Back-end Engineer”.
We’ll be in touch, and we’d love to get to know you over a coffee.
The selection process
- First interview: getting to know each other.
- In between: a technical assignment.
- Second interview: a technical conversation about your assignment, with the Domain Expert Back-end and the Head of Technology.
- Professional assessment.
- Job offer.















