Crossing the Bridge - Challenges of transitioning from an Individual Contributor to Management Role

Many IT professionals dream of one day becoming a manager. After all, managers have more responsibility, more opportunities for growth and often earn more money. But not everyone is prepared for the challenges and trade-offs that come with this career move. The reality is that moving from an individual contributor (IC) role to a management one is hard and it requires you to make sacrifices and step outside your comfort zone. There’s a reason that some engineers hesitate to accept or pursue management roles, even when part of them wants that role. As somebody who has made that transition, here are some of the challenges that I faced.

Read More

Modernizing the Beast

Legacy software is a critical part of many businesses and in many cases there is no business without legacy software. Legacy systems are often referred to as “legacy” because they’re built using old and outdated technology, however it does not mean that these systems do not provide value.

Read More

Agility in Software Architectures

Agile software architecture is a way of designing and developing software systems that embraces change, feedback, and collaboration. It is based on the idea that architecture is not a fixed and upfront activity, but rather an ongoing and emergent process that evolves with the needs of the customers and the environment. Agile architecture aims to balance several aspects of software development, such as functionality, quality, performance, scalability, security, usability, and maintainability. It also considers other factors that affect the delivery of software solutions, such as testability, deployability, operability, and observability. Agile architecture follows some key principles and practices that guide its implementation. Some of these are:

Read More

Software Architectures

Software architecture is the high-level design of a software system that defines its components, interactions, and properties. Software architecture evolves over time to cope with changing requirements, technologies, and challenges. In this essay, I will briefly describe some of the main phases of software architecture evolution.

Read More

Nomad & Kubernetes - David vs Goliath played out in container orchestration

Kubernetes and Nomad are both container orchestration tools that enable the management of containers across multiple hosts.

Kubernetes has a large, rapidly growing ecosystem of services, support and tools that are widely available. Kubernetes is an open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a layered architecture with various components that provide features such as cluster management, scheduling, service discovery, monitoring, secrets management and more1. Kubernetes also relies on a dynamic ecosystem of various loosely-coupled components, such as container runtimes, storage providers, network plugins, ingress controllers, service meshes, etc., that extend its functionality and interoperability.

Read More

Open Telemetry - The Future of Observability?

In today’s world, businesses are increasingly reliant on software to deliver their products and services. As software becomes more complex, it becomes more difficult to keep track of its performance and behavior. his can lead to problems such as outages, performance degradation, and security vulnerabilities. This is where observability comes in. Observability is the ability to understand what is happening inside a system from the knowledge of the external data it produces.

Read More