Tag: programming
- Understanding Distributed Tracing: A Python Guide with OpenTelemetry and Grafana Tempo (31 Oct 2023)
Tracing is a critical component of modern observability methods, along with metrics and logging. It is a technique used in software systems to monitor and profile the behavior of applications in a distributed, microservices-based environment. It helps you understand how requests flow through various components of your application and can be useful for diagnosing performance issues and understanding the interactions between services. - Continuous Learning Framework vol. 2 (12 Oct 2023)
Exploring unknown unknowns, implementing radical incrementalism, finding a talent and staying a human. - How Codebase Structure Shapes System Predictability (18 Sep 2023)
The structure of the codebase should visually communicate the main functionalities and responsibilities of the system. This at-a-glance understanding helps developers, new team members, and stakeholders quickly grasp what the software does and how it's organized. A well-structured codebase is like a well-organized library. It allows developers to quickly locate specific pieces of code, modules, or functionalities. This ease of navigation reduces the time spent searching and promotes efficient development and debugging - Dangerous Short-Term Gains (01 Aug 2023)
It is quite common to believe that small positive effects or gains in the short term will accumulate over time to produce substantial long-term benefits - Strategic Domain-Driven Design by Example: Subdomains (03 Jul 2023)
A business domain refers to a specific area or aspect of a business or organization's operations, activities, and expertise. It represents a distinct sphere of knowledge, processes, and rules that govern the organization's functions and activities within a particular industry or market. Understanding what our business domain consists of and what are relationships between these parts are is crucial as it enables effective organization, modularization, and prioritization of development efforts, resulting in improved system design and alignment with business needs. - The Power of Conventions in Software Development (13 Jun 2023)
A convention is a widely accepted and agreed-upon practice, rule, or standard that guides behavior, decision-making, or design within a specific context. It provides a framework for consistency and promotes shared understanding and predictable outcomes. Conventions can play an important role in reducing cognitive load in software development. - Talent is overestimated (23 May 2023)
The concept of talent can sometimes create the perception that certain abilities or domains are only accessible to a select few who are naturally gifted. The belief that talent is an innate, fixed trait tends to be relatively common and widespread among people. This understanding suggests that individuals are born with specific abilities and that talent is a natural predisposition that cannot be significantly changed or improved upon. I personally have a problem with that talent perception. Maybe it is not totally false but it is definitely harmful to how people perceive their learning opportunities. - Finding flow: How to experience greater engagement in your work (19 May 2023)
Work disengagement can occur when there is a mismatch between a person's abilities and the demands of their work - Step-by-step guide to safely introducing high-risk changes in your software system (02 May 2023)
When introducing a change to a software system, it's essential to do so in a way that minimizes the risk of unintended consequences or negative impact on users. Even if we have a new solution tested, we can still be afraid of deploying it at scale because of the high cost of possible errors. It's important to plan and coordinate any changes to a software system carefully, and to communicate clearly with users about any potential impacts or downtime. - 6 nonobvious tools that should be in your command-line toolbox (20 Mar 2023)
In this short post, I would like to present some tools that can be useful when working with command line terminals.