Blog
- 2024-09-20Running Docker container using Golang
- 2024-08-27Running Bash scripts in a Kubernetes CronJob
- 2024-08-20Configuring SNAT with GCP CloudNAT
- 2024-04-12Understanding RSA keys
- 2024-03-01Prometheus and Grafana on EC2 with Terraform and Ansible
- 2024-02-07Ensuring REST API contract compliance
- 2024-01-13Server Sent Events (SSE)
- 2023-12-21Tackling drift with IaC and automation
- 2023-11-05As a developer, should I learn about infra?
- 2023-10-15Service Weaver: Write monolith, deploy microservices
- 2023-08-12Benefits of Infrastructure as Code
- 2023-07-24You don't need SELECT COUNT(*)
- 2023-06-11Architecture Characteristics
- 2023-05-08Developers and Architects
- 2023-03-22My opinion about No-Code
- 2023-01-17Write-Ahead Logging
- 2022-12-20Messaging semantics in event-based applications
- 2022-11-18How Google manages users authorization
- 2022-10-05Diagrams as Code
- 2022-09-10How virtual threads will improve concurrent programming in Java
- 2022-08-01Building Docker images without Docker
- 2022-07-09Avoid unnecessary database queries by using bloom filters
- 2022-06-18SQL query optimization with Index Only Scan
- 2022-05-05Push vs Polling vs Long Polling
- 2022-03-20REST API HTTP Status Codes
- 2022-02-25Kotlin Contracts
- 2021-12-01Resource references in REST APIs
- 2021-10-20Domain model purity and completeness
- 2021-09-27API documentation in event driven applications
- 2021-09-07Don’t use validators
- 2021-08-15GraphQL for server-side resource aggregation
- 2021-07-01Integration testing with Testcontainers and Kotlin
- 2021-06-10Functional programming with fp-ts and Typescript
- 2021-05-21Finding bugs with git bisect
- 2021-03-18Microservice Pattern: API Gateway
- 2021-02-03Elegant objects vs. Data Containers