There is a real trigger.
A contract end, hardware, licence cost or growth limit provides both a deadline and economic basis.
AWS migration
The trigger is usually a date: the data centre contract runs out, the hardware is end of life, the virtualization licence suddenly costs three times as much. I plan and run the move to AWS, with the cost calculation standing before the move and a rehearsed way back for every step.
Inventory and cost model as a self-contained two to four week engagement. The migration itself then runs in waves, ordered by risk.
Remote from Germany. Straight with me, no agency in between.
The starting point
Migrations rarely fail on the technology. They fail because nobody fully knows what is actually running: which application depends on which database, which cron job has been doing something important at night for eight years, which firewall rule exists and why. Without a deliberate effort that map only appears under time pressure, which is too late.
The second classic is the invoice. Move one to one and you take your utilization problems with you, and pay for them by the hour from then on. That is why the cost calculation belongs before the move rather than in hindsight, and why for some systems the honest recommendation is to change them first, or not bring them at all.
Typical symptomsWho this is for
For CTOs, IT leaders and infrastructure owners with production workloads. A data-centre contract, hardware or an existing platform creates a concrete trigger while operations still need to remain predictable.
A contract end, hardware, licence cost or growth limit provides both a deadline and economic basis.
Applications, databases, networks and partners are connected; the plan must expose their order.
You want target cost, migration waves and rollback paths before the first production workload moves.
What I do
What runs where, what depends on it, who uses it. I record servers, services, databases, jobs and data flows, and make the dependencies visible, including the ones nobody has on their list any more. That map is the basis for everything else.
Not everything deserves the same treatment. Some of it gets lifted across, some gets containerized on the way, some gets rebuilt, and some gets switched off because nobody needs it any more. For each application that decision is made with reasons and an effort estimate attached.
What the target state costs per month, realistically, based on your actual utilization rather than your server specifications. Including the line items that surprise people on the first invoice: data transfer, NAT gateways, logs, backups. Where moving one to one would be expensive, that is established up front.
Before the first application moves, the foundation stands: account structure, network, access through SSO rather than long-lived keys, central logging and encryption. Whether the AWS landing zone is built through Control Tower or directly in Terraform depends on the case: Control Tower takes work off your hands and prescribes structure, a build of your own leaves more freedom and more responsibility. Both are described in Terraform as far as the route allows: with Control Tower the part AWS rolls out stays in its hands. Either way it remains reproducible and explainable in an audit.
Databases move with replication, the switchover window is measured in minutes. Every step has a rollback path, rehearsed before it is needed. Migration runs in waves ordered by risk, with the uncritical systems first so the team has the routine before it matters.
Running AWS is a different job from running servers. Monitoring, alerts, runbooks and cost control that does not surface only at month end, plus pairing with your team until day-to-day operation works without me.
Specific cases
A deadline behind you and still no defensible plan?
Let’s spend 30 minutes on scope and timeline.
How it runs
The inventory is a self-contained engagement. After it you decide with numbers whether and how it continues.
Trigger, deadline, scope, who runs it afterwards. 30 minutes is enough for a first read.
Systems, dependencies, a migration path per application, and a cost model for the target state.
Accounts, network, permissions and logging in Terraform, before the first application moves.
Uncritical first, business critical last. Every wave with a cutover plan and a rehearsed rollback.
The outcome
What appears on the invoice was known beforehand. No system that only surfaces when you switch it off.
Accounts, network and permissions come out of Terraform. The second environment is an apply, not a week of work.
Runbooks, monitoring and pairing, rather than an environment only the contractor understands.
Technologies I use

Who you are talking to
I am Tim Rutte. More than 20 years in software development. Today I move running systems to AWS without the business standing still. You talk to the person who touches your code, from the first call to the handover.
Working together
You do not need to bring a particular setup. I adapt the engagement to how your company works and how much responsibility you want to hand over.
If knowledge and responsibilities already sit with you, I join wherever additional experience is needed. Inside your workflows, in direct contact, without creating a parallel track.
If you lack time or capacity internally, I take a clearly scoped piece of work from technical clarification through to production. You set the objective and constraints; I take care of the path there.
Whichever model you choose, you always know what is being built, which decisions are pending and what happens next. Billing follows the project and the model you prefer: clearly bounded work at a fixed price, longer or more open-ended work by time spent.
Continuity
Independent delivery does not create dependency on me. Everything required to develop and operate the result stays in your environment from day one and remains ready for handover throughout the engagement.
Code, cloud accounts, pipelines and secrets live in your systems. Operations never depend on a personal account or credentials that only I control.
Architecture decisions, operating procedures and known risks are documented where your team will find them and kept current as the work progresses.
Reproducible environments, automated deployments and regular handovers allow your team or another provider to continue without starting again.
The goal is not for you to depend on me permanently. The goal is for you to remain free to decide who develops the system next.
Client voices
“A big thank you to Tim! The AWS migration was a really big chunk for us, but you handled it with complete confidence. Especially with the small issues that came up along the way, you were on it immediately and did not let go until everything ran.”
Common questions
The AWS side yes, the VMware side no. What the estate costs on AWS, which items surprise you on the first bill, what comes along and what is better switched off, in which order the move runs and where the way back sits: that is my ground. The inventory work in vSphere, the licence negotiation with Broadcom and the comparison against Proxmox or Nutanix are not. For those you need somebody with operational practice in virtualization, and I would rather tell you that now than in week three.
Not necessarily. Control Tower sets up account structure, guardrails and logging to a prescribed pattern and takes work off your hands, above all when nothing is in place yet. If you already have a grown account landscape or particular requirements for networking and permissions, a build of your own in Terraform often serves you better. That decision comes out of the inventory rather than ahead of it, and it depends less on your size than on what already exists.
That is the question that belongs before the move. The cost model comes out of the inventory, based on your actual utilization rather than your server specifications, and includes the line items that surprise people on the first invoice: data transfer, NAT gateways, logs, backups.
Not always, and not for everything. Move one to one and you take your utilization problems with you and pay for them by the hour from then on. For some systems the honest recommendation is to change them first, or not bring them. That gets settled by the inventory, and if the overall maths does not work I will say so too.
The inventory takes two to four weeks. The move itself depends on how many systems there are and how entangled they are, which only becomes defensible once the dependency map exists. Migration runs in waves so something is finished early rather than everything landing at the end at once.
Every step has a rollback path that gets rehearsed beforehand. That is also why the uncritical systems move first: so the team has the procedure down before it touches anything business critical.
Yes, and often that makes sense, whether for latency, licensing or assets still being depreciated. Then the job is a clean, secured connection between the two worlds rather than a complete move.
Terms that come up here
Other services
Backends for SaaS and platforms that hold under real load: Go and PHP 8, event-driven, with tenant isolation and recovery designed in.
Learn moreModernizing grown systems step by step: strangler fig instead of a rewrite, operations untouched, every step reversible.
Learn moreI find where your AWS budget leaks away, and cut it measurably without giving up performance or availability.
Learn moreSo that a single fault does not take the whole application with it: dependencies and single points of failure identified, recovery rehearsed rather than documented, changes delivered as Terraform.
Learn moreThe infrastructure behind AI systems that actually ship: MCP servers, controlled tool access, LLM integration with real permissions and cost control.
Learn moreReplacing manual workflows with real systems: wired into the software you already run, with permissions and an audit log instead of a chain of tools.
Learn more