Author: JH Rabie

  • 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…

  • Ollama, the gift that keeps on giving.

    For the past few weeks, I’ve been developing a web component that wraps Ollama’s features, making it easy to integrate into web applications. Although the feature set isn’t complete yet—I’d like to add Retrieval-augmented generation (RAG) functionality—the core implementation with Ollama is working smoothly. In this post, I’d like to highlight a few insights and…

  • Talent vs Qualifications

    This is a challenging subject because there are general rules about hiring qualifications, and then there are exceptions to those rules. Most people enter the programming field through degrees or diplomas. I’m self-taught and deeply passionate about software. By the time I discovered my calling, I was living independently and taking care of my family.…

  • Side projects, Do or Don’t

    I had an interesting conversation with a senior colleague the other day. He shared his opinion that people shouldn’t work on side projects after hours. Naturally, I don’t agree; in fact, I’m firmly on the other side of this debate. I strongly encourage my team to take on side projects outside of work. While side…

  • Dynamic power teams

    One of my passions is building a team around a project, bringing life to something that was once just an idea. Right now, I’m fortunate to be able to build a team in a corporate setting to develop a flagship application UI. In reality, achieving success requires a team. However, I often find myself navigating…

  • crs-template

    Introduction I’ve developed a new client-side template that incorporates several core features I’ve refined over the years to support intent-driven development: This is all packaged in a updated version of crs-framework. Getting Started To get started, open your browser and go to the GitHub page: https://github.com/caperaven/crs-template. Click the “Use this template” button (green button at…

  • Rust, mapping between result types

    I encountered a problem where my function uses,Result<Value, String>, but I also use Hugging Face Candle and std::fs::read, both of which have their own result types. For example, std::fs::read returns io::Result<Vec<u8>>. This means you can’t simply use the standard ? syntax to return the result. There are two ways to handle this: 2. Or, you…