Skip to main content

Software Architect

Kristof Kovacs
Author
Kristof Kovacs
Software Architect & DevOps Consultant

Hello, I’m Kristof, a human being like you, and an easy to work with, friendly guy.

I've been a programmer, a consultant, CIO in startups, head of software development in government, and built two software companies.

Some days I’m coding Golang in the guts of a system and other days I'm wearing a suit to help clients with their DevOps practices.

Let's say you need custom software developed. A sophisticated web application, an interface between two systems, a high performance backend, or something similar.

Which computer language is the best fit? Go, PHP, Java or something else? What architecture? What database to use, MySQL, Oracle or PostgreSQL? Or should it use one of the shiny new NoSQL databases? But which one, Cassandra, Hadoop, Redis, Riak or MongoDB, and why? On the front-end, which JavaScript framework? Vue, Angular, maybe Livewire? Web-hosting per month can cost anywhere between $5 and $20000, surely there must be more to it than simple overpricing? What is even the difference between Docker, Docker Swarm, Kubernetes and serverless? Would Azure or GCP be cheaper than AWS? Can we just buy two physical servers instead? Or can it be made to run on a $40/month VM? How much data will we store and how much will that cost? Are there any cheaper options, and what are the drawbacks? Does it need a queue? RabbitMQ, Redis-queue, beanstalkd, or something else? As for a load-balancer, should it be Nginx, HAproxy, Caddy2, Traefik? Why?

What about test and development environments, how many do we need? (Is it even a fixed number?) How should we deploy? Once in a blue moon in a big "dog & pony show" (hello, army!) manually (do we have a deploy manual?), or on each feature merge with continous integration and automated testing, or something in between? If auto-deploy, is it via Docker build, Ansible, or custom scripts?

On the business side, what are the most important features, and how those overlap with what can be implemented quickly? Should we hire our own developers, or contract it out? Should you start with a minimum viable product? And you probably want to avoid a developer accidentally crippling your enterprise by building in a component with a business-unfriendly license.

If some of the above sounds like something you want to talk about, feel free to drop me a line. I love getting messages!

To learn more about me, check out my résumé, a list of articles I've written, some of my open source contributions, and a high-level overview of our team's services.