Scott Logic
While AI changes the way in which we write software, how do we ensure that our open-source contributions remain valuable and are welcomed by maintainers? This blog post explores this topic in the context of the Depository Trust & Clearing Corporation (DTCC) Hackathon and our contributions to the Fluxnova project.
In this episode, I'm joined by Dean Kerr and Amy Laws to discuss 'The Experiment' – a four‑week study we ran to explore how AI really affects software development. Instead of synthetic benchmarks, the project team tackled genuine issues in an open‑source project, alternating between AI‑assisted work and going completely 'cold turkey'.
AI was trained on open source, but its rapid progress is now raising difficult legal, technical, and cultural questions for the ecosystem that enabled it. From copyright and “fair use” debates to AI-generated code, cloned frameworks, and autonomous coding agents, this post explores how AI may reshape the future motivations and sustainability of open source.
In this episode of Beyond the Hype, I'm joined by Remi Van Goethem to unpack the fast‑evolving world of AI‑accelerated software development. From everyday autocompletion to emerging multi‑agent frameworks, we explore how AI is reshaping coding practice and where human engineering judgement still matters.
Everyone loves CSS! Apparently, I have little better to do with my life. I have created a clone of the lesser-known game Flappy Bird. This was made without any JavaScript—only HTML and CSS. In this blog post, I discuss how I made it.
Building an Agentic AI teammate using Microsoft Agent Framework to handle user onboarding through email, with humans in the loop.
This article presents Analysis / Implementation / Reflection, a simple pattern for resolving issues. While the core of this pattern, the implementation, is quite conventional, there are a couple of novel additions. In the analysis phase, the agent is used to explore the issue and create a suitable harness to evaluate the solution. While the reflection phase probes the agent to provide a qualitati…
Brief thoughts on the impact of Devin AI on software engineering.
AI will likely play a major role in software development, but using it effectively requires understanding its limits. While working with GitHub Copilot, I found that small, well-defined tasks and better prompting improved results, while context limits and over-eager implementations caused issues. By working incrementally and verifying each step, I increased my productivity and learned to collabor…
After coming across an old computer in my attic, I decide to fix it up and code a game on it using BASIC.
In the series finale, we move from theory to practice to ask when functional patterns actually pay for themselves. We break down Higher-Kinded-J’s architecture to demonstrate what ‘Java-native’ FP looks like, avoiding awkward ports, and explain why investing in these patterns today creates a distinct advantage as the Java language evolves.
A unique feature of Higher-Kinded-J is uniting Optics with Effects in a fluent api. In Part 5 we dive into effect polymorphism and how effects structure our code with Higher-Kinded-J's Effect Path API; a fluent interface for computations that might fail, accumulate errors, or require deferred execution.
Ever tried adding a simple feature to a legacy system, only to uncover a chain reaction of hidden quirks and ancient "fixes"? In this story, a seemingly straightforward PDF download update spirals into debugging mysteries involving strict security policies, sneaky iframes, and a forgotten double-click workaround. What should’ve taken minutes turned into a detective case—and ultimately, a cleaner,…
This time we examine how the Focus DSL lets you express complex tree traversals and optimisations in fluent, composable chains; turning verbose recursion into declarative paths like .departments().each().employees().each().salary().
Energy trading is a complex domain. Having just finished my first project in the energy sector I've written this quick-start guide to exaplain all the concepts and terminology I wish I'd known at the start of the project.
In Part 3 we are focusing on building an Abstract Syntax Tree (AST) for an expression language using Java 25 features and Higher-Kinded-J. We will create a complete expression language with parsing, type checking, optimisation, and interpretation that is type-safe, immutable, and easy to transform.
What has three years of writing code taught me?
We continue the series by diving deeper into the three core optics - lenses for product types, prisms for sum types, and traversals for collections.
By adapting retrospectives, teams can spark feedback that grows people, and nurtures a culture where recognition comes naturally.
research.ioSign up to keep scrolling
Create your feed subscriptions, save articles, keep scrolling.
