Abstract
My role involves translating the technical requirements of a project into its architectural and design framework, which essentially shapes the final product. Over the years, I’ve specialized in creating cloud solutions that are fault-tolerant, highly available, deployed globally, and managed by small teams. I aim to share my experiences and some of the solutions I’ve designed and implemented.
Recently, I’ve been exploring certain technologies that have captured my attention. Firstly, Golang has piqued my interest. Coming from a strong background in low-latency Java services, this modern language offers a new realm of possibilities to develop exceptionally fast services. It combines the power of C/C++ with a more user-friendly development approach. Additionally, there’s been a revolution in software distribution with tools like Packer or Docker, eliminating the need for specific versions of virtual machines or interpreters. This significantly enhances the reliability of software production.
I perceive this as a cyclic evolution. Previously, C/C++ was recognized as the language for high-speed services, yet its maintenance, learning curve, and compilation posed challenges. Presently, we’re in an era where the internet and platforms like Github collaborate to facilitate easier software sharing. Go leverages this environment, producing a binary executable that can run on any supported operating system.
Another significant technology stack I’ve been involved with is Kubernetes (K8s). Having worked extensively in cloud environments, I’ve witnessed the substantial benefits of implementing Kubernetes, ranging from cost efficiencies to accelerated software development. Currently, I’m engaged in migrating a sizable platform comprising various workloads, including APIs, UIs, batch processing, and low-latency services. I intend to document and share this ongoing journey.
I hope that this blog proves beneficial to someone navigating similar technological landscapes.