Infrastructure you can rebuild from a repository
The question that settles it: if the production server vanished tonight, how long would it take to rebuild, and would anyone rebuild it exactly? When the answer lives in one person's head, infrastructure as code solves a real problem. When it lives in a ten-line script that has worked for four years, it solves none.
The problem it solves
Hand-configured infrastructure drifts. A firewall rule opened on a Friday evening to unblock someone, a variable added straight into the portal, a machine resized during a peak and never resized back. Six months later staging and production no longer resemble each other, and the bug that only happens in production comes from exactly that.
The second symptom is human. Knowledge of the infrastructure ends up with one person, sometimes two. That is not a criticism of them, it is a risk to you: they take holiday, they change jobs, and nobody can say why that service account exists.
What changes day to day
Infrastructure becomes text that gets read. A network rule change goes through review, like a code change, with someone able to say no before it is applied rather than after the incident. The history finally answers the question that costs the most during an outage: what changed, when, and who changed it.
Environments become comparable. A staging environment created from the same description as production actually resembles production, data aside. A test environment created in the morning and destroyed in the evening becomes possible, which changes how you rehearse a migration or a version upgrade.
In practice we work with Terraform to describe resources, Docker to pin what runs, and GitHub Actions to apply changes from a repository rather than from someone's laptop. The point is not the tool, it is that nobody applies a change to production by hand any more.
Where we are the wrong answer
Infrastructure as code has a real learning cost and it pays back over time, not immediately. For the first weeks your team will move slower than they would clicking through a portal. That is normal and it is the price. If your horizon is one quarter, the cost arrives before the benefit.
A small stable estate may genuinely not need it. Three machines that do not change, one deployment a month, one person who knows them and documentation that is current: you do not have a problem to solve, and industrialising that estate means paying for a pain you do not have. We will say so rather than sell the project.
And infrastructure as code applied to a broken architecture just reproduces it faster. If the real problem is coupling between two systems, or one database everything writes to, Terraform does not fix it, it deploys it cleanly into three environments. In that case the correct order is architecture first, automation second.
How it is introduced without breaking things
Nothing is started from scratch and nothing is destroyed to be rebuilt. What exists is imported as it stands, one scope at a time, starting with whatever hurts most: often networking and access rights, sometimes just the test environments because a mistake there costs nothing.
Two technical points decide the rest. Terraform state has to be shared and locked, otherwise two people apply at once and you learn the word corruption. And secrets never live in the repository, whatever the schedule pressure.
The deliverable is not only code. It is also that your team can change it without us. Infrastructure as code that only the supplier can run swaps a dependency on one person for a dependency on one company, which is worse.
Who holds the access
Our engineers can work inside your environment, with your accounts and your access controls, so no copy of your data lands with us. On an infrastructure project that is often the condition for security to let the work start at all.
The precise position on our posture: our practices follow ISO/IEC 27001 principles and are mapped against CyberFundamentals from the Belgian Centre for Cybersecurity, with the Stage 2 audit planned with a BELAC-accredited body in 2027. We are not certified today. Contracting runs through JADEV GROUP SARL in Belgium, in euros, under Belgian law, and the team works from Rabat and Casablanca at UTC+1, on the same working day as you.
An infrastructure as code project needs few people for a while, not many people quickly.
- Platform engineerTerraform, Azure, DockerImports what exists, splits it into modules, sets up shared and locked state.
- CI/CD engineerGitHub Actions, DockerPuts infrastructure changes through review and automated apply.
- Cloud architectAzure, networking, identityReworks networking and access rights before they are frozen into code, so the mistake is not set in stone.
- Handover to your teamPairing, code review, documentationExplicit goal: your engineers change the infrastructure without calling us.
Common questions
- Does everything have to be in code?
- No, and trying is the surest way to abandon the effort. Start with what breaks most often, or what hurts most when it breaks. The rest can stay manual for a long time, as long as the boundary is written down and known.
- Terraform, Bicep or Pulumi?
- We work in Terraform day to day, with Azure and Docker. If your team is already comfortable with another tool and has been for a while, the right answer is usually to keep yours: a tool the team knows beats a slightly better tool they have to learn.
- How long before it actually helps?
- Longer than you will be promised elsewhere. The first imported scope mostly buys you legibility. The benefit becomes obvious the day you have to rebuild an environment, change a network rule without stress, or explain an incident from the history.
- What if our team does not know Terraform?
- Then handover is part of the work, not an option at the end. Pairing, code review, and documentation written for someone starting out. Without that you end up with infrastructure you can no longer change on your own, which is a bad trade.
- Are you ISO 27001 certified?
- Not today. Our practices follow ISO/IEC 27001 principles and are mapped against CyberFundamentals from the Belgian Centre for Cybersecurity, with the Stage 2 audit planned with a BELAC-accredited body in 2027. If your procurement requires a valid certificate today, we cannot supply one.
Tell us what is still configured by hand
Describe to the scoping assistant what runs, what has drifted, and who holds the access. It asks the questions a senior engineer would, then returns an estimate with a first scope and a start date.
Scope the work- Regression testing for critical user journeysCoverage protects nobody. Three rings of tests, a ten-minute rule, and the only metric worth putting on a wall.
- Payment idempotency for iDEAL and BancontactOne replayed webhook is enough to charge the same traveler twice. We explain the idempotency key design that makes it impossible, drawn from booking platforms we run in production with iDEAL and Bancontact.
- Industrial IoT data ingestion on Azure: the patternThe pattern that makes machine data ingestion into Azure survive real plant conditions: a queue between the shop floor and the cloud, priced in engineering days on our public rates.
- ERP and MES integration cost, estimated in daysThe method we use to estimate MES and ERP integration in engineering days, with a complete worked example priced from our public rate grid.
- IT staff augmentationNamed engineers inside your existing team, on a European working day, contracted through Belgium.
- Nearshore vs offshoreA straight comparison for European teams who already offshore and are weighing a move closer.
- Nearshore development teamA dedicated group that owns delivery end to end, from architecture through production support.
- CTO as a servicePart-time senior technical leadership, to arbitrate without a full-time hire.
- Managed IT and cloudCloud, pipelines, domains, mail and access, held by the team that also knows the code.
- Cloud migrationInventory, batched cutovers and a tested rollback, so the move does not depend on luck.
- AI and chatbot engineeringModels integrated into software that has to run, with a straight answer on what will not work.
- Shopify developmentFor Shopify stores that have to talk to an ERP, a stock system or a payment flow.
- Data engineeringWarehouse, pipelines and reconciliation, so the numbers can be trusted.
