My skills and technologies which I know and love.
I’ve worked with entire bunch of technologies over the years. Below you will find comprehensive technical expertize I have gained working on various projects.
Cloud & Infrastructure
Cloud providers
Amazon Web ServicesI am AWS Certified Solutions Architect - Professional and have experience with a wide range of AWS services. I have been working extensively with AWS for a long time, including designing architecture from scratch, "Terraforming" existing infrastructure and then improving it, migrating from on-premise to cloud or from other cloud providers, and setting up hybrid cloud environments (including on-premise and multiple clouds). It is one of the 2 clouds which I use for my daily work and know quite well.Google Cloud PlatformI am Google Cloud Certified Professional Cloud Architect and Google was the first cloud which I used and learned. Mostly because it was the first to provide a managed Kubernetes service (GKE) and is still the best in class in this area. Similar to AWS, I have been working extensively with GCP, using different services, managing organizations, executing migrations from and to GCP, and handling many other complex tasks.Microsoft AzureMicrosoft Azure is the third big player in the cloud space and this is the cloud I have used mainly for testing their services and learning how to use them, but without typical customer commercial use cases. I'm open to learning more if there is a need for it.On-Premise & VMsI have also worked with on-premise and VMs for a long time. I always recommend Hetzner if you are looking for cheap and reliable servers, but there are an entire bunch of other options. With just bare-metal servers you can achieve the same as in the cloud but with much more flexibility and usually at much lower cost. Of course, everything depends on your use case.Infrastructure as Code (IaC)
Terraform / OpenTofuTerraform/OpenTofu is my main IaC tool. I have used it for a long time and I am quite familiar with it including development of custom quite complex modules for internal usage. Of course Terraform has some drawbacks and constraints but with correct planning and design the management of multiple environments distributed across multiple regions is not a problem. I also value the plan/apply approach which is critical when managing infrastructure.Crossplane / GKE Config ConnectorNew wave of IaC tools which are running inside the cluster. Crossplane and GKE Config Connector are the ones which I have used extensively. With correct design, they provide flexibility and unification for applications deployed on Kubernetes. I have also developed some providers from scratch for Crossplane.AnsibleI used Ansible extensively to manage multiple on-premise servers, handling complex deployments like clustered Splunk environments. It's an excellent tool for configuration management, patch management, and ensuring environment consistency across multiple servers. The agentless architecture and YAML-based playbooks make it particularly effective for infrastructure automation and maintaining standardized configurations at scale.Kubernetes & Docker
Kubernetes managementI have extensive experience managing Kubernetes clusters across different cloud providers and on-premise environments. This includes cluster setup, troubleshooting, security hardening, and managing complex multi-tenant deployments. I am Certified Kubernetes Application Developer.Docker / Podman / OCII have extensive experience with Docker image optimization, multi-stage builds, security best practices, and managing containerized applications in production environments. From simple applications to complex microservices architectures. Also worked with other OCI-compliant runtimes like Podman and containerd and used tools like Kaniko and BuildKit.HelmHelm is my preferred tool for Kubernetes package management. It is not ideal and quite often error prone but does the job. I have created numerous custom charts, managed complex deployments with dependencies, and used Helm for GitOps workflows. Essential for maintaining consistency across multiple environments and managing application lifecycles. With ArgoCD it creates a powerful combination.Istio Service MeshI have worked with Istio for managing microservices communication, implementing traffic policies, security policies, and observability. While powerful, it adds complexity that needs careful consideration for the specific use case.KyvernoKyverno is an excellent Kubernetes-native policy engine. I have used it for implementing security policies, resource validation, and automated configuration management.
DevOps, CI/CD and SRE
CI/CD
GitLab CI/CDGitLab is CI/CD platform which I worked most of the time. I have extensive experience with complex multi-stage pipelines, dependency management, security scanning integration, and managing deployments across multiple environments. The integrated approach makes it very powerful.GitHub ActionsGitHub Actions provides excellent integration with GitHub repositories. I have used it for various automation tasks, from simple CI builds to complex deployment workflows. Also it is preferred solution for my private projects. The marketplace ecosystem and YAML-based configuration make it very flexible for different use cases.JenkinsJenkins is quite old but still in some situations best tool to do the job - especially when we need separated CI solution from Git. With Kubernetes deployment and kubernetes plugin to execute runners as pods scalability is very good. Also with some plugin allows to manage Jenkins instance and pipelines fully as a code which simplifies management and provides similar feeling like Gitlab CI/CD or GitHub Actions.ArgoCDArgoCD is my go-to tool for GitOps deployments on Kubernetes. I have implemented complex multi-cluster deployments, application-of-applications patterns, and integrated it with various CI systems. The declarative approach and visual UI make it excellent for managing Kubernetes deployments.Bitbucket pipelinesI have used Bitbucket pipelines for projects hosted on Bitbucket. While functional, it lacks some advanced features compared to GitLab CI/CD or GitHub Actions.Monitoring & Observability
PrometheusPrometheus is my primary monitoring solution. I have extensive experience with metric collection, custom exporters, complex PromQL queries, and designing monitoring strategies for large-scale Kubernetes environments. Essential tool for any serious monitoring setup.GrafanaGrafana is my preferred visualization platform. I have created numerous custom dashboards and integrated it with various data sources beyond just Prometheus. The flexibility and plugin ecosystem make it excellent for different monitoring needs.AlertmanagerAlertmanager is crucial for managing Prometheus alerts. I have extensive experience with routing rules, notification channels, and managing alert fatigue through proper grouping and throttling. Critical component for production monitoring systems.Thanos / MimirI have used both Thanos and Mimir for long-term Prometheus storage. These tools are essential when you require long-term metric retention as default Prometheus storage is quite limited.LokiLoki provides excellent log aggregation capabilities with Prometheus-like query language. I have used it for centralized logging in Kubernetes environments, integrated with Grafana for unified observability dashboards. Much more resource-efficient than traditional ELK stack, quite easy to setup and maintain.TempoTempo is Grafana's distributed tracing solution. I have experience with it for tracing microservices interactions, though it's still evolving compared to more mature solutions like Jaeger. Good integration with the Grafana ecosystem.OpenTelemetryOpenTelemetry is the future of observability instrumentation. I have some experience with implementing traces and metrics collection, though it's still a rapidly evolving ecosystem.
Programming & Scripting
Go
GoI use Go primarily for infrastructure-related development as it's the go-to language in this area. Not an expert yet but still improving with each project.Bash/Shell scripting
Bash/Shell scriptingBread and butter in DevOps life. Won't say that I love it, but in a lot of situations it is the best tool for the job.Python
PythonIn a lot of situations, it's my first choice for scripting. Its popularity means that there is always a library for what you need, and if not, you can always write your own super fast.DjangoI had a chance to spend some time with Django and have to say this is an awesome framework for some use cases like CRUD generation and similar tasks. With Python's expressiveness and simplicity, it is a great tool.Javascript / Typescript
Javascript / TypescriptSimilar to Python, it is a great tool for scripting and a bunch of different use cases. I work quite a lot with TypeScript / Node in my free time.JVM
JavaWorked almost a decade as Java Dev :)
- Oracle Certified Professional, Java SE 8 Programmer
- Oracle Certified Expert Java EE 6 Java Persistence API Developer
- Oracle Certified Expert Java EE 6 Web Component Developer
- Oracle Certified Professional Java SE 6 Programmer
- Oracle Identity Governance Suite 11g PS3 Certified Implementation Specialist
- Oracle SOA Suite 12c Certified Implementation Specialist
- Oracle WebLogic Server 12c Certified Implementation Specialist
KotlinWorked also with Kotlin during my Java Dev time :)GroovyKnowledge is quite useful for JenkinsSpringBootStill from time to time I have to deal with it as I support quite a lot of JVM-related projects and remember the time when there was no framework for everything and only Spring existed ;)
Databases and servers
Databases
MongoDB / AtlasMongoDB is popular NoSQL database. I have experience with both self-hosted and Atlas cloud deployments. Excellent for document-based applications and rapid prototyping.PostgreSQLPostgreSQL is my preferred relational database for its reliability, advanced features, and excellent performance. I have good experience with complex queries, indexing strategies, and database optimization.MariaDB / MySQLI have worked with MariaDB in several projects, particularly as a MySQL alternative. Good experience with basic administration, replication setup, and performance tuning. Solid choice for traditional web applications.Elasticsearch / OpensearchI have used both Elasticsearch and OpenSearch for log analysis, full-text search, and analytics. Experience includes cluster management, index optimization, and complex search queries. Powerful for search and analytics use cases. Remember the times where Elasticsearch does not exist and Apache Solr or Lucene was first choice for indexing.MS SQL ServerI have some experience with MS SQL Server from enterprise projects, including database design, stored procedures, and basic administration.Servers
NginxNginx is my go-to web server and reverse proxy. I have extensive experience with load balancing, SSL termination, complex routing rules, and performance optimization. Essential component in most of my infrastructure setups for its reliability and performance.TomcatTomcat was my primary application server during my Java development years. I have good experience with deployment, configuration, and troubleshooting. Use it less frequently now but still maintaining JVM based apps on top of SpringBoot which using it as default embedded web server.Identity & access management
KeycloakKeycloak is my preferred open-source identity and access management solution. I have extensive experience with complex setups including federation, custom themes, user management, integration with various applications and management with Terraform and Crossplane. Essential for implementing proper authentication and authorization in modern applications. Excellent for enterprise environments.
Frontend
Libraries / Frameworks
ReactReact was the last framework I learned from the "big 3" but I'm currently using it most of the time (especially for private projects like this page). Probably because of its huge popularity, and as I am not a typical frontend guy, it's much easier to build something with existing building blocks.VueI know Vue and like it. I worked more with the options-style API, but as I know React right now, the composition API is also not a big issue for me.AngularI started with Angular.js, which was a big change at that time. I also had some commercial experience and worked for ~3 years with Angular during my time as a Java Dev, but recently I prefer React/Vue over Angular.Next.jsUsing for different personal projects. Great framework for React applications with server-side rendering, static site generation, and API routes. Super fast for prototyping and building full-stack apps.CSS
TailwindI am not a master of CSS but with AI support I can do quite a lot. Tailwind is my preferred CSS framework.shadcn/uiMy preferred UI components library. It is very flexible and easy to use.
Other skills
Team collaboration
Scrum / KanbanI have experience with Scrum and Kanban methodologies. I have used them for managing software development, facilitating scrum ceremonies, and helping teams improve their development processes. I am a certified Professional Scrum Master. Scrum works particularly well for complex software development projects with changing requirements, but currently as a DevOps engineer I much prefer the Kanban methodology - it fits the operations workflow much better.PrinceI have a PRINCE2 Foundation certificate. I have knowledge of the PRINCE2 project management methodology, which provides a structured approach to project management with defined roles, processes, and deliverables. It's useful for more traditional project management environments. I gained this knowledge when I was working as a project manager for several projects.