-
Patterns over Languages
In today’s world, there seems to be an intense focus on the programming language used for development. Some individuals even take a militant stance about their language of choice. While there are valid reasons why certain languages shine in specific contexts—such as the ecosystems and infrastructure built around them—I believe we often place too much…
-
Designing Software Systems for Agility
In today’s rapidly evolving tech landscape, agility is no longer a luxury—it’s a necessity. Systems must be designed to adapt quickly to changes, scale effortlessly, and provide resilience against unexpected challenges. Yet, when we step back and assess whether our software systems meet these demands, the answer is often disappointing. The Fundamental Questions To design…
-
DLS and Your Application
Introduction Let us start by defining “Domain Specific Language (DSL)”. A Domain-Specific Language (DSL) is a specialized programming language tailored to a specific problem domain, designed to express solutions in a more intuitive and concise way than general-purpose languages. There are common examples of Domain-Specific Languages (DSLs): DLS is fundamental to intent driven development, it…
-
UI needs to change
Context This post focuses on enterprise-scale applications, though the principles can apply broadly to various types of applications. For now, however, let’s assume the scope is large-scale enterprise applications. Traditional UI design patterns for such applications revolve around a few core principles and areas of functionality: 1. Navigation Enterprise applications often feature complex navigation structures…
-
Rust, fighting the borrow checker
This post is about my experience battling the Rust borrow checker during compilation. This is a common issue, especially for those with a strong OOP background. Spoiler alert: If you are struggling with the borrow checker, you are likely doing something wrong. Specifically, you might be thinking about your code structure in the wrong way.…
-
Understanding Advanced Rust Data Structures
In this blog post, we’ll dive deep into a Rust code snippet that showcases some of Rust’s powerful features for managing complex data structures in a concurrent environment. Code Breakdown We’ll start with the trait definition and then look at how it’s used in a struct. Trait Definition Struct Definition Detailed Explanation Let’s break down…
-
Process API in AI tooling
I am currently working on the third iteration of the process API, this time in Rust. The first version, written in JavaScript, aimed to expose user-defined processes without requiring users to write code. This introduced the concept of intent-driven development, where users define the intent and the process API handles the execution. This approach has…
-
Data manager
In this article, we will explore data management in the context of user interfaces. First, it’s important to differentiate between data and information. For our purposes, we’ll define data as the raw collection of records retrieved from a data source. Information, on the other hand, refers to the insights derived from this data, providing a…
-
Intent Driven Testing
Intent driven development To summarize, IDD focuses on specifying the desired outcome rather than detailing how it should be accomplished. This approach emphasizes defining the goals, leaving the execution details to the underlying systems. Take logging into an application as an instance. Numerous widely-recognized authentication methods exist, such as those provided by Google, Apple, Facebook,…
-
Rethinking user interfaces
In the digital realm, dominated by traditional screen-based interactions, the journey through complex menus and screens has become a norm. This approach, especially in enterprise applications, often hinders rather than enhances user experience. It’s time for a paradigm shift, where technology adapts to our natural modes of interaction, paving the way for a more intuitive…