Márk Sági-Kazár
2025-10-09 @ KCD Warsaw
whoamiMárk Sági-Kazár
Cloud Native Ambassador
Dagger Commander
YAML engineer for life 😭
…and we don’t care anymore
brew install go
nix-env -i gotestsum
sudo apt-get install golangci-lint
make build
just test
task lintWhat version of Go did you just install?

Dev + CI/CD + Artifacts = software delivery pipelines/workflows
docker run the answer?It gives you containers…
…but not workflows.
Run the same workflow:
700+ lines of YAML & Bash chaos
# Foobar pipeline
# Include the Common CI pipeline parameters.
include:
- project: 'foo/bar/foobarproject/cicdtemplate'
file: '/Common.gitlab-ci.yml'
#- /force-app/ui-tests/pipeline.yml
stages:
- build-metadata-package
- run-js-tests
- validate-package
- deploy-package
- run-unit-tests
- run-api-tests
- run-ui-tests
- integration
####################################################
# Builds the Metadata Package, builds the Package
# files and Destructive changes
####################################################
build-metadata-package:
stage: build-metadata-package
except:
...YAML is a poor choice of language for software delivery workflows.
🔀 Environment drift
🙏 Push’n’Pray
✍️ YAML
🤖 AI
→ Portable environments
→ Portable workflows
→ Programmable workflows
→ AI Native workflows
func (m *Module) Test() error {
err := m.runTests()
if err != nil {
env := dag.Env().
WithStringInput("error", err.Error(), "error message for the test")
WithDirectoryInput("source", source, "source code").
WithDirectoryOutput("fixed", "fixed code")
work := dag.LLM().
WithEnv(env).
WithPrompt("My tests failed with $error. Fix them!")
// Contains the fixed code
work.Env().Output("fixed").Directory()
}
return nil
}Stay in touch!
Guess which image is AI generated.
AI generated
Original

AI generated
AI generated
Original
AI generated
Original
Human generated