Cloud Link to heading

As an architect, I tend to work at the interface between business requirements and technical design. I listen to the needs, design the systems, and often also help implement and deploy the project.

I’m happy when a project is simple, obvious and understandable, while also being easily extensible, maintainable, scalable and cost effective.

Most of my cloud projects are deployed on Amazon AWS using serverless technologies.

I usually build cloud applications with AWS CDK (Cloud Development Kit), combining both the IaC (Infrastructure as Code) and the runtime code into a single package of TypeScript. This tends to minimize dependencies and complexity. CDK allows organizing projects into stacks and constructs, keeping the architecture modular and encapsulated. TypeScript is very beneficial in allowing sharing of code between IaC definitions, Lambda function runtimes and frontend applications.

Prior to serverless technologies being available (around 2013-2015), I used to deploy most applications with Docker. When Docker didn’t exist yet (around 2011-2012), I used EC2 virtual machines configured with technologies like Puppet and Chef. Before that (1995-2010), I deployed apps on self-maintained servers.