Architectural Gravity I have been thinking about what the increasing use of agentic AI tooling might do to the long-term shape of software systems, not just at the level of code generation, but at the level of architectural taste, stylistic norms, and the implicit boundaries within which we design. Most of the current generation of coding agents are trained on what already exists in public…
Trouble with typing Typing is one of those things that we do all day without thinking about how much friction it adds. Every pause for a typo, every moment spent rephrasing or adjusting syntax, breaks the flow of thought. It’s like there’s a bottleneck between your brain and the screen. Sure, every time a conversation about GenAI comes up, someone always pops up in the discussion and says…
As an immigrant to the UK, I had to absorb the culture as a grown-up. Things that others learned through cultural osmosis, I had to consciously seek out and understand - including the norms of UK TV and radio. Now that I’m working on BBC Sounds, it’s more important than ever for me to be aware of the cultural touchstones of Radioland. For a long time, I had no idea what the Shipping…
Large Language Models (LLMs) have quickly become an integral part of modern software development. Today, most developers encounter them as coding assistants-tools that can generate code on demand by drawing upon patterns learned from vast quantities of open-source and proprietary code. These models can also reference online resources and produce functioning code in seconds. But as impressive as…
MCP vs SDK: Two Paths to LLM‑Powered Extensibility Two different ways to let your app work better for people (and their AI helpers). From “software eats the world” to AI in the loop When software started taking over everything, the real winners were the people who could make it do exactly what they wanted. That usually meant writing code - either a whole new app, or scripts inside an…
Origination of an Idea In 1960, physicist Eugene Wigner published an essay titled “The Unreasonable Effectiveness of Mathematics in the Natural Sciences,” in which he wondered at how concepts born purely in the human mind—group theory, imaginary numbers, differential equations—so uncannily predict the behavior of atoms, rivers, and galaxies alike. He pointed out that the same algebraic structures…
A little bit about my experience as a software professional I have now been in the industry close to two decades, and in that time I have moved around a fair bit in terms of technology stack, the type of systems I work with, the industry I work in, amongst other factors. In my first couple of years, I worked for a small (at the time!) electronics company that mostly dealt with embedded systems. My…
Virtue of being lazy Some of my favorite works of fiction are Discworld novels. And of the many great characters I got to meet, there was one that particularly drew my attention—Rincewind. In one of the books, we are told that his father has a particular arrangement for him in order to fund his study. He has to get a particular score in his exams, or otherwise, he will stop receiving the stipend…
What does being technical mean for Engineering Team Leads and Managers I have now been in a management position for the better part of a decade and with that milestone comes a bit of a time to reflect back on how the journey has been and what I have learnt along the way. When I first started leading a team formally back in 2019 I had modeled my expectations on what I would be doing on what my…
Project Management for Software Engineers Project management can sometimes feel like madness. However, with the right tools and approaches, you can navigate the chaos effectively. This guide focuses on stakeholder management, communication strategies, risk handling, and fostering collaboration—critical skills for every software engineer leading a project. Do we need project management in the age…
What is Redis? Redis (Remote Dictionary Server) is an open-source, in-memory data structure store that functions as a database, cache, and message broker. Known for its high performance and versatility, Redis supports low-latency operations crucial for real-time applications. At its core, Redis organizes data as key-value pairs but extends its functionality with advanced data structures (ADTs),…
All Happy Families The Overall Engineering Organization’s Reporting Structure Everyone Reports to Engineering Everyone Reports to Delivery Everyone Reports to the Core Business What Gets Valued in the Engineering Organization Amount or Impact of Product Features the Team Developed The Depth of Knowledge and Experience in the Product Engineering Prowess and Innovativeness Final Thoughts What…
Move fast and break things? Or slow and steady wins the race? While researching a topic at work, I was referring to several conference talks as well as blog posts on how to evolve architecture of systems in a practical manner taking in to account the human element. In between getting my self bored and going “aha!”, very loudly to the utter annoyance of my kids, I managed to gather some…
TL;DR Summary: In the world of engineering, metrics are critical for evaluating performance and progress. But relying on subjective views and opinions can lead to flawed assessments. To determine the effectiveness of engineering practices, we need unbiased and objective metrics. The choice of metrics depends on an organization’s specific goals. Metrics should be automated, transparent, and…
On new beginnings, old dogs and new tricks Stakeholder management What to keep in mind Understand what motivates people. Understand what is important to them Use this knowledge to make sure their goals are alignd or at least point in the same direction as you In the long run if your goals are not aligned, the best thing to do is remove the need to coordination. Alliances Actionable Steps Last…
Introduction Healthy conflict and unhelpful distractions How to do Engineering standards right Establish Trust Optimize Workflow So how would I start implementing engineering standards? Slowly Deliberately With purpose Introduction One of my best friends, who I first met in a previous job, called me one evening. For now, let’s call him Jake. He is the calmest person I have ever met. And if…
Broken Window Theory - Origins Key Concepts Practical Application Impact and Controversies: Software Engineering as a Social Endeavour So what exactly is a broken window in a Software Engineering Team then? Why you should care as a Software Engineering Manager? Summary Broken Window Theory - Origins The Broken Windows Theory emerged in the early 1980s as a response to the rising concerns about…
Introduction Putting Empathy and Respect in to context in Software Engineering Teams The Role of a Team Lead Case Studies in Empathy and Respect in Software Engineering Summary Introduction In the world of software engineering, where we mostly think about systems and platforms, where success is measured in SLOs and RPSs there are two things that are crucial to the teams that actually build these…
Introduction Advantages of Small Stories Taking a Detour: Exploring the INVEST Principle Breaking Down Backend API User Stories Test-Driven Development (TDD) and Behavior-Driven Development (BDD) Conclusion Unleashing the Power of Small Stories: Strategies for Breaking Down Backend API User Stories Introduction In the world of software development, breaking down requirements into smaller, more…
Nemawashi - Power of building consensus Introduction In the fast-paced world of business and decision-making, ensuring that everyone is on the same page and in agreement is essential. A crucial aspect of effective decision-making is building consensus before a meeting takes place. Consensus-building allows teams to align their thoughts, opinions, and goals, leading to more productive meetings and…
What are rootless containers My use case for rootless containers But I don’t have docker Adding finishing touches The preamble becomes the main act Podman is a tool developed by Redhat that is intended to replace docker at the command line level. It has full compatibility with docker CLI. At least this is true on Linux. Like docker it is written in golang and is quite performant. But unlike…
How to avoid the dangers of the trade What is burnout? Why does it happen? It won’t happen to me How to avoid it Prioritize self-care Shift your perspective Reduce exposure to job stressors Seek out connections Mental health and software industry What is burnout? You know the drill. It starts with a couple spillovers from your usual sprints. It snowballs in to a stream of issues and before…
How the rebellion got subverted The agile manifesto - The Rebellion that was not The call is coming from inside the house Return to roots Why is it so easy to fail? How to undo this? Understanding the what, why and how Cutting out the fluff Understand but do not measure Use the tools provided in whatever flavour of Agile you chose To be continued The agile manifesto - The Rebellion that was not…
(or why using the phrase “C/C++” is crime against programming) Being a C library in a C++ World Why C is still being used C is nice but C++ is nicer Implementing a C++ Wrapper for Hyperscan Takeaways Being a C library in a C++ World This weekend I was looking at a regex library written by intel called hyperscan . I had needed to use a regex library that was performant and easy to use.…
(or why realtime data is elusive in most organizations) Data, Data and Data How to break out of the cycle National Rail to the Rescue STOMP Protocol ( which I didn’t know was a thing ) Re-learning Java in a pinch Note about the Java solution and how it works On to writing to Kafka What Next? Data, Data and Data Drowning in Data but Thirsting for Insights These days the mantra is always data,…
Learning In Software Engineering Organizations The Learning Organization: A Lit Review by giulia.forsythe licensed under CC BY 2.0 Learning in Organizations Why Learning Matters for Organizations What is different about engineering organizations How to learn in Big Organizations Corporate Knowledge Systems. Index, tag and disseminate Automate with APIs Chat your way to knowledge Newsletters and…
Presenting at Develop Conference @ BBC Osada Lakmal Paranaliyanage Software Engineering Manager | Distributed Systems & DevOps Enthusiast LinkedIn • Blog: Curiously Recurring Thoughts in Programming • Github About Me I’m an experienced Software Engineering Manager with over 17 years of leadership in building scalable, cloud-native solutions across finance, telecom, and media. At the BBC in…
Components of the container ecosystem Container Engines Container Host Registry Server Container Orchestration Container Runtime Now that we have discussed the basics of containers, lets dive in to the details. Modern container tooling goes way beyond simply running an OS image in a separate context. Components of the container ecosystem Container Engines A container engine will run a container…
Operating System Level Virtualization chroot Solaris Zones and Containers Systemd nspawn LXC/LXD Enter docker Why not docker? What buildah is Most of us got introduced to containers with docker. In fact it seems that docker for most intents and purposes and has become synonym with containers. However there is a vast landscape of technology underneath this seemingly simple facade of containers. So…
Adventures in WSL Land Recently I have joined a new company and as almost always is the case ( at least in Sri Lanka ) I received a laptopthat runs Windows. In this case it was running a rather old version of Windows 10 that did not support WSL2. This documents my adventures in getting this laptop setup so that I can have a relatively modest working and development environment familiar to most…
Cloud9 - A cloud based IDE for your code I first heard of cloud9 before it was acquired by AWS in 2016. In those days it was a novelty. But the good sort - the sort of thing you think of and say “Man, if only I had that sort of flexibility”. This was before Google docs was a widespread thing and collaborating on a cloud IDE that existed independently of your computer was unheard of.…
Codestar - A new approach to development on AWS Codestar is a relatively new approach to creating new application that run on AWS infrastructure. The interesting thing about this seems to be that it gives newbie developers like myself to get bootstrapped and go from zero to hundred in a relatively short time period. This is the initial screen shown when you first try to create a codestar project.…
Impact of unproductive work In high performance systems we try to make sure we do as little unproductive work as we possible. As Andrei Alexdrascu points out in one of his presentations on the subject, the fastest bit of code is the code that does not run. So it is essential that we try to avoid as much unproductive work as possible. When we say unproductive work it usually seems we are talking…
SQLite is an embedded SQL Library. This means that It is a single library that you link against and now your application has access to a full blown SQL server within the process itself. It does not need a separate tool to access the database. The database is a single file stored on Disk. It also comes with a binary that can read and manipulate databases When to use SQLite The advise straight from…