# Maintainability

Published articles for Maintainability.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Human judgment doesn't leave the software factory. It relocates.

DevFeed: [Human judgment doesn't leave the software factory. It relocates.](<https://devfeed.tech/articles/human-judgment-doesn-t-leave-the-software-factory-it-relocates-28497.md>)

Original publisher: [Read original article](<https://addyosmani.com/blog/human-judgment-doesnt-leave-the-software/>)

Author: Addy Osmani

Published: 2026-08-21T00:00:00Z

Content type: article

Language: en

Sources: [Addy Osmani](<https://devfeed.tech/sources/addy-osmani.md>)

Topics: [Software](<https://devfeed.tech/topics/software.md>), [coding](<https://devfeed.tech/topics/coding.md>), [event driven](<https://devfeed.tech/topics/event-driven.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Claude Code](<https://devfeed.tech/topics/claude-code.md>), [codex](<https://devfeed.tech/topics/codex.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [automated](<https://devfeed.tech/tags/automated.md>), [batch](<https://devfeed.tech/tags/batch.md>), [build](<https://devfeed.tech/tags/build.md>), [claude-code](<https://devfeed.tech/tags/claude-code.md>), [codex](<https://devfeed.tech/tags/codex.md>), [event-driven](<https://devfeed.tech/tags/event-driven.md>), [github](<https://devfeed.tech/tags/github.md>), [linear](<https://devfeed.tech/tags/linear.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [mutation-testing](<https://devfeed.tech/tags/mutation-testing.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [quality](<https://devfeed.tech/tags/quality.md>), [scanners](<https://devfeed.tech/tags/scanners.md>), [slack](<https://devfeed.tech/tags/slack.md>), [software](<https://devfeed.tech/tags/software.md>), [testing](<https://devfeed.tech/tags/testing.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

A field guide to building a repeatable software factory while keeping humans responsible for product intent, system design, quality standards, code review, and final merge decisions. It recommends early and continuous quality checks, deliberate constraints, and event-driven automation when ordinary coding workflows are no longer sufficient.

### Source excerpt

A field guide to building a software factory that still has an owner.

## OpenTelemetry Demo 3.0 introduces breaking changes to attributes, dashboards, and local deployment

DevFeed: [OpenTelemetry Demo 3.0 introduces breaking changes to attributes, dashboards, and local deployment](<https://devfeed.tech/articles/we-broke-the-otel-demo-32585.md>)

Original publisher: [Read original article](<https://opentelemetry.io/blog/2026/we-broke-the-demo/>)

Author: OpenTelemetry Authors; Docs CC BY

Published: 2026-07-28T10:15:19Z

Content type: opinion

Language: en

Sources: [Blog on OpenTelemetry](<https://devfeed.tech/sources/blog-on-opentelemetry.md>)

Topics: [Demo](<https://devfeed.tech/topics/demo.md>), [OpenTelemetry](<https://devfeed.tech/topics/opentelemetry.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Kafka](<https://devfeed.tech/topics/kafka.md>)

Tags: [changes](<https://devfeed.tech/tags/changes.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [demo](<https://devfeed.tech/tags/demo.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [opentelemetry](<https://devfeed.tech/tags/opentelemetry.md>), [services](<https://devfeed.tech/tags/services.md>)

### AI overview

This article explains intentional breaking changes in OpenTelemetry Demo 3.0, including renamed custom telemetry attributes, broken dashboards and queries, and a revised local-run configuration split across multiple files. The changes aim to improve maintainability and make forks easier to manage.

### Source excerpt

If you've been running the Demo for some time, you may have seen a couple of structural changes lately, and you may even have gotten mad about things not working as expected. We feel your pain and we totally understand it. Unfortunately there was no better way to change things without breaking the existing flow. Some of what you knew is gone. New services were added. Attribute names have changed. If you had dashboards with custom metrics, everything is broken now.

## RPG Metrics: A Free-Beta Code Quality Scanner for IBM i RPG

DevFeed: [RPG Metrics: A Free-Beta Code Quality Scanner for IBM i RPG](<https://devfeed.tech/articles/rpg-metrics-the-ibm-i-tool-the-big-vendors-wouldn-t-sell-you-20748.md>)

Original publisher: [Read original article](<https://tomassetti.me/rpg-metrics-kdp-software/>)

Author: Federico Tomassetti

Published: 2026-07-15T09:22:39Z

Content type: opinion

Language: en

Sources: [Federico Tomassetti](<https://devfeed.tech/sources/federico-tomassetti.md>)

Topics: [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Software](<https://devfeed.tech/topics/software.md>), [ibm](<https://devfeed.tech/topics/ibm.md>)

Tags: [code-processing](<https://devfeed.tech/tags/code-processing.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [free](<https://devfeed.tech/tags/free.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [platform](<https://devfeed.tech/tags/platform.md>), [rpg](<https://devfeed.tech/tags/rpg.md>)

### AI overview

This commentary reviews RPG Metrics, a code quality scanner from KDP Software for IBM i RPG source. The tool measures metrics including cyclomatic complexity and maintainability, identifies problematic files and refactoring points, and is free while in beta. The article compares it with enterprise-oriented static-analysis products.

### Source excerpt

KDP Software has worked the IBM midrange platform since 1985. Their new RPG Metrics tool measures cyclomatic complexity, maintainability, and RPG Free convertibility across your RPG source. It is free during beta, it took me minutes to get a number out of it, and when I had questions the founder answered them himself. The post RPG Metrics -- The IBM i Tool the Big Vendors Wouldn't Sell You appeared first on Federico Tomassetti.

## Why Decision-Makers Adopt Kotlin Multiplatform

DevFeed: [Why Decision-Makers Adopt Kotlin Multiplatform](<https://devfeed.tech/articles/helping-decision-makers-say-yes-to-kmp-justin-mancinelli-38216.md>)

Original publisher: [Read original article](<https://touchlab.co/help-decision-makers-say-yes>)

Published: 2026-04-29T18:00:00Z

Content type: article

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [jetbrains](<https://devfeed.tech/topics/jetbrains.md>)

Tags: [adoption](<https://devfeed.tech/tags/adoption.md>), [business-value](<https://devfeed.tech/tags/business-value.md>), [developer](<https://devfeed.tech/tags/developer.md>), [jetbrains](<https://devfeed.tech/tags/jetbrains.md>), [kmp](<https://devfeed.tech/tags/kmp.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>)

### AI overview

The article explains that Kotlin Multiplatform adoption depends on decision-makers seeing measurable business value, not only on developer enthusiasm. It highlights reduced duplicated work across iOS and Android, native UI and workflows, potentially less code, faster release cycles, and improved maintainability.

### Source excerpt

KMP adoption is not driven by developer enthusiasm alone. It moves forward when leaders see a clear case for measurable business value.

## Object Oriented Programming - The Key Terms

DevFeed: [Object Oriented Programming - The Key Terms](<https://devfeed.tech/articles/object-oriented-programming-the-key-terms-34688.md>)

Original publisher: [Read original article](<https://newsletter.systemdesigncodex.com/p/object-oriented-programming-the-key>)

Author: Saurabh Dashora

Published: 2026-03-24T08:38:43Z

Content type: article

Language: en

Sources: [System Design Codex](<https://devfeed.tech/sources/system-design-codex.md>)

Topics: [Object-oriented programming (OOP)](<https://devfeed.tech/topics/oop.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Polymorphism](<https://devfeed.tech/topics/polymorphism.md>), [Inheritance](<https://devfeed.tech/topics/inheritance.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [interface](<https://devfeed.tech/topics/interface.md>)

Tags: [abstraction](<https://devfeed.tech/tags/abstraction.md>), [concepts](<https://devfeed.tech/tags/concepts.md>), [inheritance](<https://devfeed.tech/tags/inheritance.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [object-oriented](<https://devfeed.tech/tags/object-oriented.md>), [polymorphism](<https://devfeed.tech/tags/polymorphism.md>), [programming](<https://devfeed.tech/tags/programming.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This tutorial introduces object-oriented programming through four principles: abstraction, encapsulation, inheritance, and polymorphism. It explains how abstraction hides implementation details, encapsulation controls access to data and methods, and inheritance supports reuse and hierarchical relationships. The supplied text begins its discussion of polymorphism but is truncated.

### Source excerpt

The essential concepts

## Heroku March 2026 Update

DevFeed: [Heroku March 2026 Update](<https://devfeed.tech/articles/heroku-march-2026-update-26465.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/march-2026-update/>)

Author: Keshav Pokkuluri

Published: 2026-03-19T22:31:10Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>)

Tags: [ai-ml](<https://devfeed.tech/tags/ai-ml.md>), [apps](<https://devfeed.tech/tags/apps.md>), [changelog](<https://devfeed.tech/tags/changelog.md>), [cli](<https://devfeed.tech/tags/cli.md>), [data](<https://devfeed.tech/tags/data.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [features](<https://devfeed.tech/tags/features.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [news](<https://devfeed.tech/tags/news.md>), [platform](<https://devfeed.tech/tags/platform.md>), [platform-updates](<https://devfeed.tech/tags/platform-updates.md>), [update](<https://devfeed.tech/tags/update.md>)

### AI overview

Heroku describes a shift to a Sustaining Engineering model and announces three enhancements: a default compressed slug limit increased to 1GB, longer build timeouts, and Heroku CLI v11's move to ESM and oclif v4.

### Source excerpt

We've transitioned to a Sustaining Engineering model to better serve the customers who rely on us every day. Our mission is simple: to provide the most stable, secure, and reliable environment for your apps and data. We will continue releasing features and functionality that align with our Sustaining Engineering goals and provide a more robust and efficient platform to our customers. Today we are excited to share three recent enhancements: The post Heroku March 2026 Update appeared first on Heroku.

## Modernizing the Command Line: Heroku CLI v11

DevFeed: [Modernizing the Command Line: Heroku CLI v11](<https://devfeed.tech/articles/modernizing-the-command-line-heroku-cli-v11-26469.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/modernizing-the-command-line-heroku-cli-v11/>)

Author: Eric Black

Published: 2026-03-19T22:29:49Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [ECMAScript](<https://devfeed.tech/topics/ecmascript.md>), [modules](<https://devfeed.tech/topics/modules.md>), [migration](<https://devfeed.tech/topics/migration.md>), [maintenance](<https://devfeed.tech/topics/maintenance.md>), [Usability](<https://devfeed.tech/topics/usability.md>)

Tags: [cli](<https://devfeed.tech/tags/cli.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [migration](<https://devfeed.tech/tags/migration.md>), [modules](<https://devfeed.tech/tags/modules.md>), [monorepo](<https://devfeed.tech/tags/monorepo.md>), [news](<https://devfeed.tech/tags/news.md>), [node-js](<https://devfeed.tech/tags/node-js.md>), [npm](<https://devfeed.tech/tags/npm.md>), [performance](<https://devfeed.tech/tags/performance.md>), [release](<https://devfeed.tech/tags/release.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>), [usability](<https://devfeed.tech/tags/usability.md>)

### AI overview

Heroku CLI v11 is available with a migration to ECMAScript Modules and oclif v4. The release also changes the build system from Yarn to npm, removes the monorepo structure, improves command execution and manifest caching, and adds semantic colors and theme support.

### Source excerpt

Heroku CLI v11 is now available. This release represents the most significant architectural overhaul in years, completing our migration to ECMAScript Modules (ESM) and oclif v4. This modernization brings faster performance, a new semantic color system, and aligns the CLI with modern JavaScript standards. While v11 introduces breaking changes to legacy namespaces, the benefits are [...] The post Modernizing the Command Line: Heroku CLI v11 appeared first on Heroku.

## System Design: Principles for Maintainability, Scalability, and Reliability

DevFeed: [System Design: Principles for Maintainability, Scalability, and Reliability](<https://devfeed.tech/articles/system-design-principles-for-maintainability-scalability-and-reliability-39554.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/02-system-design-principles/>)

Author: hello@ankit-rana.com

Published: 2026-03-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [reliability](<https://devfeed.tech/topics/reliability.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [data](<https://devfeed.tech/topics/data.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [observability](<https://devfeed.tech/topics/observability.md>), [CRUD](<https://devfeed.tech/topics/crud.md>), [Latency](<https://devfeed.tech/topics/latency.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [crud](<https://devfeed.tech/tags/crud.md>), [data-systems](<https://devfeed.tech/tags/data-systems.md>), [debug](<https://devfeed.tech/tags/debug.md>), [latency](<https://devfeed.tech/tags/latency.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [observability](<https://devfeed.tech/tags/observability.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [system-design](<https://devfeed.tech/tags/system-design.md>)

### AI overview

This article presents production system design around reliability, scalability, and maintainability. It discusses data building blocks beyond CRUD, fault containment, isolation, testing, recovery, observability, latency versus response time, and vertical versus horizontal scaling.

### Source excerpt

Reliability, scalability, and maintainability rest on one distinction: a fault is a component-level anomaly, a failure is the system no longer delivering its service. Design to contain faults so they never become failures, and stay precise that latency is waiting time while response time is the full client-visible number.

## AI Coding Best Practices for Today

DevFeed: [AI Coding Best Practices for Today](<https://devfeed.tech/articles/ai-coding-best-practices-for-today-37551.md>)

Original publisher: [Read original article](<https://colintheshots.com/writing/ai-coding-best-practices-for-today/>)

Published: 2026-02-25T21:59:05Z

Content type: tutorial

Language: en

Sources: [Colin The Shots](<https://devfeed.tech/sources/colin-the-shots.md>)

Topics: [ai-coding](<https://devfeed.tech/topics/ai-coding.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [coding](<https://devfeed.tech/topics/coding.md>), [GitHub Copilot](<https://devfeed.tech/topics/github-copilot.md>), [Claude](<https://devfeed.tech/topics/claude.md>), [cursor](<https://devfeed.tech/topics/cursor.md>), [Development](<https://devfeed.tech/topics/development.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Code](<https://devfeed.tech/topics/code.md>), [Security](<https://devfeed.tech/topics/security.md>), [pair\_programming](<https://devfeed.tech/topics/pair-programming.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-coding](<https://devfeed.tech/tags/ai-coding.md>), [ai-coding-assistants](<https://devfeed.tech/tags/ai-coding-assistants.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [claude](<https://devfeed.tech/tags/claude.md>), [code](<https://devfeed.tech/tags/code.md>), [coding](<https://devfeed.tech/tags/coding.md>), [copilot](<https://devfeed.tech/tags/copilot.md>), [cursor](<https://devfeed.tech/tags/cursor.md>), [developers](<https://devfeed.tech/tags/developers.md>), [github-copilot](<https://devfeed.tech/tags/github-copilot.md>), [llms](<https://devfeed.tech/tags/llms.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [pair-programming](<https://devfeed.tech/tags/pair-programming.md>), [research](<https://devfeed.tech/tags/research.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

A practical guide to using AI coding assistants such as GitHub Copilot, Claude, and Cursor while managing risks in code quality, deprecated APIs, security, performance, and maintainability. It emphasizes human responsibility, reviewing all generated code, and verifying it with tests, linters, and personal judgment.

### Source excerpt

Why This Document Exists AI coding assistants like GitHub Copilot, Claude, Cursor, and others can significantly accelerate development. However, research shows they also introduce systematic risks:

## How Service Level Objectives Align Developers and Product Managers

DevFeed: [How Service Level Objectives Align Developers and Product Managers](<https://devfeed.tech/articles/how-not-to-fight-with-product-managers-as-a-developer-28056.md>)

Original publisher: [Read original article](<https://tech.trivago.com/post/2026-02-02-how-not-to-fight-with-product-managers-as-a-developer/>)

Author: Anis Khan Site Reliability Engineering is my role Cost optimization is my goal GitHub profile Linkedin profile

Published: 2026-02-02T00:00:00Z

Content type: opinion

Language: en

Sources: [Trivago](<https://devfeed.tech/sources/trivago.md>)

Topics: [Availability](<https://devfeed.tech/topics/availability.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [availability](<https://devfeed.tech/tags/availability.md>), [developer](<https://devfeed.tech/tags/developer.md>), [engineering-culture](<https://devfeed.tech/tags/engineering-culture.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [opinions](<https://devfeed.tech/tags/opinions.md>), [outages](<https://devfeed.tech/tags/outages.md>), [performance](<https://devfeed.tech/tags/performance.md>), [site-reliability-engineering](<https://devfeed.tech/tags/site-reliability-engineering.md>), [technical](<https://devfeed.tech/tags/technical.md>), [uptime](<https://devfeed.tech/tags/uptime.md>)

### AI overview

This article argues that Service Level Objectives (SLOs) can reduce conflict between developers and product managers by creating a shared, data-driven agreement about reliability and user experience. It explains how a 99.9% availability target creates a 43.2-minute monthly downtime budget and shows how that budget can guide decisions about releasing features versus restoring stability.

### Source excerpt

It's a scenario developers relate to a little too well. The product manager always comes with more and more feature requests. They also want to release fast by giving a tight deadline. While you...

## Blog: Introducing Falco 0.43.0

DevFeed: [Blog: Introducing Falco 0.43.0](<https://devfeed.tech/articles/blog-introducing-falco-0-43-0-32493.md>)

Original publisher: [Read original article](<https://falco.org/blog/falco-0-43-0/>)

Published: 2026-01-26T00:00:00Z

Content type: release

Language: en

Sources: [Falco - Falco](<https://devfeed.tech/sources/falco-falco.md>), [Falco - The Falco blog](<https://devfeed.tech/sources/falco-the-falco-blog.md>)

Topics: [Falco](<https://devfeed.tech/topics/falco.md>), [eBPF](<https://devfeed.tech/topics/ebpf.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>)

Tags: [ebpf](<https://devfeed.tech/tags/ebpf.md>), [falco](<https://devfeed.tech/tags/falco.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>), [release](<https://devfeed.tech/tags/release.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

Falco 0.43.0 is a stabilization release that consolidates changes from 0.42.0, adds deprecations, and fixes issues across Falcoctl, plugins, and libraries. It includes updates to Falco libraries and drivers, signature verification fixes, plugin fixes, and the reintroduction of the evt.arg.filename field. The release deprecates the legacy eBPF probe and gVisor engine while directing users toward modern alternatives.

### Source excerpt

Dear Falco Community, we are happy to announce the release of Falco 0.43.0 today! This is a stabilization release that consolidates the changes introduced in 0.42.0, including the drop-enter initiative and the capture recording feature. It also introduces several deprecations to improve maintainability and fixes minor issues across falcoctl, plugins, and libs. During this release cycle, we merged: 31 PRs on Falco, including 11 release note-worthy changes 48 PRs on Falco libs, including 17 release note-worthy changes 8 PRs on Falco drivers, including 3 release note-worthy changes We upgraded libs to version 0.23.1 and drivers to 9.1.0+driver. Thank you to our maintainers and contributors. This would not have been possible without your support and dedication! To learn everything about the changes, read on! What's new? TL;DR Deprecations GPG key rotation Container plugin improvements Falcoctl tweaks and improvements Key fixes: evt.arg.filename field reintroduction Falcoctl signature verification fixes overflow and NULL pointer dereferences fixes for the container plugin, shipped with plugins/container/0.6.1 race condition fix for the k8smeta plugin, shipped with plugins/k8smeta/0.4.1 This release also comes with breaking changes that you should be aware of before upgrading. Latest updates Deprecations In Falco 0.43.0, we are announcing the deprecation of three significant components to streamline the project, reduce maintenance burden, and focus on modern, more efficient alternatives. All these components are stable, and considering that the deprecation is first enforced in this version, they could be removed at any future version starting from 0.44.0. Legacy eBPF probe deprecation The "legacy" eBPF probe (configured via engine.kind=ebpf) was the original eBPF implementation in Falco. It required compiling a specific probe for each kernel version, often necessitating the dynamic usage of the falco-driver-loader or pre-built drivers. The Modern eBPF probe (engine.kind=m

## Out with the Old, In with the New: A Guide to Application Upkeep

DevFeed: [Out with the Old, In with the New: A Guide to Application Upkeep](<https://devfeed.tech/articles/out-with-the-old-in-with-the-new-a-guide-to-application-upkeep-23026.md>)

Original publisher: [Read original article](<https://www.javaadvent.com/2025/12/out-with-the-old-in-with-the-new.html>)

Author: Andres Sacco

Published: 2025-12-20T03:08:59Z

Content type: tutorial

Language: en

Sources: [Java Advent Calendar](<https://devfeed.tech/sources/java-advent-calendar.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Microservice](<https://devfeed.tech/topics/microservice.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [automatic](<https://devfeed.tech/tags/automatic.md>), [guide](<https://devfeed.tech/tags/guide.md>), [java](<https://devfeed.tech/tags/java.md>), [legacy-application](<https://devfeed.tech/tags/legacy-application.md>), [legacy-code](<https://devfeed.tech/tags/legacy-code.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [migration](<https://devfeed.tech/tags/migration.md>), [rewrite](<https://devfeed.tech/tags/rewrite.md>), [security](<https://devfeed.tech/tags/security.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>)

### AI overview

This guide explains why upgrading Java or Spring Boot applications involves more than changing a version number. It discusses migration challenges, legacy code, differing versions across microservices, and risks from outdated software, including security, compatibility, stability, and maintainability concerns.

### Source excerpt

Migrating an existing application to a new version of Java or a framework such as Spring Boot involves much more than simply updating a version number in a file. Each new release of a library or language brings new features, deprecations, behavioral changes, and sometimes complete API redesigns. When legacy code is involved, these upgrades [...] The post Out with the Old, In with the New: A Guide to Application Upkeep appeared first on JVM Advent.

## Creating an Arduino Library for ESP32

DevFeed: [Creating an Arduino Library for ESP32](<https://devfeed.tech/articles/creating-an-arduino-library-for-esp32-13737.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/12/arduino-library-creation/>)

Author: John Lee

Published: 2025-12-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Arduino](<https://devfeed.tech/topics/arduino.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Library](<https://devfeed.tech/topics/library.md>), [Development](<https://devfeed.tech/topics/development.md>), [Code](<https://devfeed.tech/topics/code.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [ide](<https://devfeed.tech/topics/ide.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [arduino](<https://devfeed.tech/tags/arduino.md>), [arduino-ide](<https://devfeed.tech/tags/arduino-ide.md>), [beginner](<https://devfeed.tech/tags/beginner.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [class](<https://devfeed.tech/tags/class.md>), [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [development](<https://devfeed.tech/tags/development.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [getting-started](<https://devfeed.tech/tags/getting-started.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ide](<https://devfeed.tech/tags/ide.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [library](<https://devfeed.tech/tags/library.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [modular](<https://devfeed.tech/tags/modular.md>), [modularity](<https://devfeed.tech/tags/modularity.md>), [modules](<https://devfeed.tech/tags/modules.md>), [programming](<https://devfeed.tech/tags/programming.md>), [structure](<https://devfeed.tech/tags/structure.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A step-by-step guide to creating, structuring, and publishing custom Arduino libraries for ESP32. It explains library benefits and structure, prerequisites, and implementation through a minimal "Hello World" example.

### Source excerpt

Learn how to create, structure, and publish Arduino libraries for ESP32. This step-by-step guide covers everything from understanding a library structure to submitting your library to the Arduino Library Manager.

## Case Study: Modernizing a High-Traffic Streaming Platform with the AHA Stack (HTMX & Alpine.js)

DevFeed: [Case Study: Modernizing a High-Traffic Streaming Platform with the AHA Stack (HTMX & Alpine.js)](<https://devfeed.tech/articles/case-study-modernizing-a-high-traffic-streaming-platform-with-the-aha-stack-htmx-alpine-js-28522.md>)

Original publisher: [Read original article](<https://blog.risingstack.com/modernizing-a-high-traffic-streaming-platform-with-the-aha-stack/>)

Author: Daniel Bencz

Published: 2025-08-29T17:02:07Z

Content type: article

Language: en

Sources: [RisingStack](<https://devfeed.tech/sources/risingstack.md>)

Topics: [htmx](<https://devfeed.tech/topics/htmx.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Flask](<https://devfeed.tech/topics/flask.md>)

Tags: [case-study](<https://devfeed.tech/tags/case-study.md>), [flask](<https://devfeed.tech/tags/flask.md>), [htmx](<https://devfeed.tech/tags/htmx.md>), [js](<https://devfeed.tech/tags/js.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [state-management](<https://devfeed.tech/tags/state-management.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [ux](<https://devfeed.tech/tags/ux.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

This case study describes modernizing a high-traffic streaming website for responsiveness, maintainability, business continuity, and easier developer onboarding. The existing Python Flask and Jinja site used jQuery; the team retained server-rendered architecture and adopted HTMX with Alpine.js instead of introducing a single-page application.

### Source excerpt

Our client, a leading company in the streaming industry, acquired a highly successful indie website with over 50 million unique visitors per month. The site had been built by a single developer who prioritized functionality over maintainability. While the features were mostly bug-free, the design was outdated, and the code relied on aging technologies. The [...] The post Case Study: Modernizing a High-Traffic Streaming Platform with the AHA Stack (HTMX & Alpine.js) appeared first on RisingStack Engineering.

## Practical Considerations for Advancing AI Collaboration in Software Development

DevFeed: [Practical Considerations for Advancing AI Collaboration in Software Development](<https://devfeed.tech/articles/practical-considerations-for-advancing-ai-collaboration-in-software-development-30756.md>)

Original publisher: [Read original article](<http://blog.vanillajava.blog/2025/05/practical-considerations-for-advancing.html>)

Author: Peter Lawrey (noreply@blogger.com)

Published: 2025-05-15T19:35:00Z

Content type: opinion

Language: en

Sources: [Vanilla Java](<https://devfeed.tech/sources/vanilla-java.md>)

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>), [Development](<https://devfeed.tech/topics/development.md>), [Prompt Engineering](<https://devfeed.tech/topics/prompt-engineering.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [challenges](<https://devfeed.tech/tags/challenges.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [development](<https://devfeed.tech/tags/development.md>), [evaluation](<https://devfeed.tech/tags/evaluation.md>), [info](<https://devfeed.tech/tags/info.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [mentoring](<https://devfeed.tech/tags/mentoring.md>), [opinion](<https://devfeed.tech/tags/opinion.md>), [practical](<https://devfeed.tech/tags/practical.md>)

### AI overview

This article examines practical considerations for collaborating with AI in software development. It argues for human oversight, stronger documentation and context, critical evaluation of probabilistic outputs, diverse model use, and awareness of deskilling, ethical, intellectual-property, and software-economics risks.

### Source excerpt

TL;DR Human-in-the-loop is essential; AI offers probability, not certainty. AI excels at word-smithing, so spend more time on documentation and context. Leverage diverse AI models for varied research, improvements, and analysis. Be wary of deskilling: if AI makes a task trivial, agents may soon replace it. You should feel like you are testing the boundaries of what AI is capable of for at least some tasks. The Problem AI's proficiency in handling routine coding allows human engineers to dedicate more time to strategic activities such as system design, architectural planning, intricate requirement elicitation, and the rigorous evaluation of application performance across multifaceted metrics. Tools often amplify underlying behaviours and failures -- Rob Lambert Value is increasingly found not in rote knowledge, which AI can often provide, but in the capacity to frame complex problems effectively for AI, critically evaluate its probabilistic outputs, and innovatively integrate AI's capabilities into novel solutions. Developing with AI is not merely about adopting a new tool but about learning to collaborate with intelligence that operates on different principles, sometimes without profound contextual understanding, yet capable of processing and synthesising information at a scale and speed that surpasses human capability. However, this power comes with new challenges: ensuring the reliability of probabilistically generated outputs, managing the 'black box' nature of some AI reasoning, and navigating the ethical and IP landscapes of AI-generated content. Effective collaboration requires developers to master prompt engineering, the art of providing precise context, critically verifying outputs, and understanding the AI's inherent limitations to guide it effectively. This is akin to mentoring an exceptionally capable but occasionally erratic junior partner. Moreover, "disposable" or "ephemeral" AI-generated software carries profound and often unexamined implications for s

## Make regular expressions easier to read

DevFeed: [Make regular expressions easier to read](<https://devfeed.tech/articles/make-regular-expressions-easier-to-read-37309.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/make-regular-expressions-easier-to-read/>)

Author: Stanko

Published: 2025-03-31T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [formatting](<https://devfeed.tech/topics/formatting.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>)

Tags: [example](<https://devfeed.tech/tags/example.md>), [extra](<https://devfeed.tech/tags/extra.md>), [join](<https://devfeed.tech/tags/join.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [readability](<https://devfeed.tech/tags/readability.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [value](<https://devfeed.tech/tags/value.md>)

### AI overview

The article presents a formatting technique for making complex regular expressions easier to read: split the expression into multiple string components, join them, and construct the final regex. The approach adds code and requires escaping backslashes, but enables scanning and comments that can improve readability and maintainability.

### Source excerpt

This is a simple formatting trick I use to make regular expressions more readable. The secret? Break them into multiple lines. To achieve this, format the regex as an array of strings and then concatenate the array into a single regex string. Example # Compare this example, written in a single line: const FILTER_REGEXP = /(?<name>blur|brightness|contrast|grayscale|hue-rotate|invert|opacity|saturate|sepia)\((?<value>-?\d*(?:\.\d*)?)(?<unit>\w*?)\)/g; with the multi-line version: const SUPPORTED_FILTERS = [ 'blur', 'brightness', 'contrast', 'grayscale', 'hue-rotate', 'invert', 'opacity', 'saturate', 'sepia', ].join('|'); const FILTER_REGEXP = new RegExp( [ `(?<name>${SUPPORTED_FILTERS})`, // filter name `\\(`, `(?<value>\-?\\d*(?:\\.\\d*)?)`, // value `(?<unit>\\w*?)`, // unit if any `\\)`, ].join(''), 'g' ); The multi-line version has a bit more code, but it's easier to scan and read. It also allows us to write comments for each section, clarifying the purpose of each part of the regex. I've found that complex expressions are much easier to write this way. I believe it greatly reduces the cognitive load for both the writer and the reader. Caveats # You'll need to escape the backslashes in regex strings. While this is a minor inconvenience, the readability benefits easily outweigh it. Conclusion # It boils down to personal preference, but I believe the extra code is worth it, as it improves readability and maintainability. This is especially true when dealing with notoriously difficult-to-parse complex regular expressions.

## Ekapkgs, a poly-repo fork of Nixpkgs

DevFeed: [Ekapkgs, a poly-repo fork of Nixpkgs](<https://devfeed.tech/articles/ekapkgs-a-poly-repo-fork-of-nixpkgs-32433.md>)

Original publisher: [Read original article](<https://nixcademy.com/posts/ekala-project/>)

Author: Jon Ringer

Published: 2025-03-31T00:00:00Z

Content type: opinion

Language: en

Sources: [Nixcademy Blog](<https://devfeed.tech/sources/nixcademy-blog.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [repo](<https://devfeed.tech/topics/repo.md>), [Development](<https://devfeed.tech/topics/development.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [development](<https://devfeed.tech/tags/development.md>), [fork](<https://devfeed.tech/tags/fork.md>), [glibc](<https://devfeed.tech/tags/glibc.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [openssl](<https://devfeed.tech/tags/openssl.md>), [repo](<https://devfeed.tech/tags/repo.md>)

### AI overview

The article presents Ekapkgs as a poly-repository fork of Nixpkgs. It argues that Nixpkgs' monolithic scale, lengthy RFC process, and staging workflow make maintenance, convention changes, and package updates difficult, while separate repositories could enable faster iteration and more focused curation.

### Source excerpt

Ekapkgs forks Nixpkgs, splitting it into repos for faster updates & easier curation. Ditch monolithic development flows & slow RFCs. Innovate freely!

## 2025 Priorities: Reliability, Audio, Cameras and More

DevFeed: [2025 Priorities: Reliability, Audio, Cameras and More](<https://devfeed.tech/articles/2025-priorities-reliability-audio-cameras-and-more-41751.md>)

Original publisher: [Read original article](<https://postmarketos.org/blog/2025/03/30/pmOS-year-priorities/>)

Published: 2025-03-30T00:00:00Z

Content type: article

Language: en

Sources: [postmarketOS Blog](<https://devfeed.tech/sources/postmarketos-blog.md>)

Topics: [reliability](<https://devfeed.tech/topics/reliability.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [systemd](<https://devfeed.tech/topics/systemd.md>), [GitLab](<https://devfeed.tech/topics/gitlab.md>), [Operating system](<https://devfeed.tech/topics/operating-system.md>), [ci](<https://devfeed.tech/topics/ci.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [test](<https://devfeed.tech/topics/test.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [fosdem](<https://devfeed.tech/tags/fosdem.md>), [gitlab](<https://devfeed.tech/tags/gitlab.md>), [linux](<https://devfeed.tech/tags/linux.md>), [logging](<https://devfeed.tech/tags/logging.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [postmarketos](<https://devfeed.tech/tags/postmarketos.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [systemd](<https://devfeed.tech/tags/systemd.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The postmarketOS community outlines its 2025 priorities, with reliability as the central goal. Planned work includes hardware for remotely testing phones, integrating real devices with GitLab CI, completing systemd integration, and upstreaming systemd support for musl.

### Source excerpt

As our community grows, we are increasing the focus we put on planning and organizing the work we do. Therefore we have been thinking hard about priorities for this year. And as we mentioned after our FOSDEM hackathon, the greatest goal for this year is reliability. Reliability So far, the postmarketOS community has mostly been focused on functionality: Hackers bring up devices and get them to a point where various device features such as audio, calls and Wi-Fi are usable once or most of the time. We want to get it to always. Ongoing focus by the team Currently the postmarketOS team is focusing on the following projects: Getting a PCB ready to be able to place phones in a rack for testing. This is necessary so we have remote control of the devices for booting or flashing, and we avoid the risk of batteries in racks. There has been an amazing progress on the design in the last weeks, and a test run might be possible before v25.06. Thanks Federico, Anjan, Casey, and Nicola! Software work on CI-tron to be able to talk to devices and seamlessly connect them to our GitLab instance is underway upstream and in our repos. This allows treating real devices as any other runner in GitLab! We will share more information about this project, its architecture and reasons in a follow-up blog post. Thanks Martin R., Samuel, and Pablo! Finishing the integration of systemd, to bring its stability on-par with OpenRC (#3476). systemd brings considerable reliability improvements in the form of better management of services, logging, and more general predictability in the behavior of the lower-layers of the operating system. Though a lot of work is still needed, we are well on track to have systemd in v25.06! systemd musl upstreaming efforts are slowly underway. musl is the C standard library used in Alpine Linux and postmarketOS. It provides us with a great set of benefits, but has some limitations and is not supported in systemd. For maintainability reasons, it's critical we have suppor

## Angular Architecture Guide To Building Maintainable Applications at Scale

DevFeed: [Angular Architecture Guide To Building Maintainable Applications at Scale](<https://devfeed.tech/articles/angular-architecture-guide-to-building-maintainable-applications-at-scale-21398.md>)

Original publisher: [Read original article](<https://nx.dev/blog/architecting-angular-applications>)

Author: Juri Strumpflohner

Published: 2025-03-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Angular](<https://devfeed.tech/topics/angular.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Domain-driven design (DDD)](<https://devfeed.tech/topics/domain-driven-design.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [angular](<https://devfeed.tech/tags/angular.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [design](<https://devfeed.tech/tags/design.md>), [development](<https://devfeed.tech/tags/development.md>), [domain](<https://devfeed.tech/tags/domain.md>), [domain-driven-design](<https://devfeed.tech/tags/domain-driven-design.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [key-angular](<https://devfeed.tech/tags/key-angular.md>), [key-architecture](<https://devfeed.tech/tags/key-architecture.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [modular](<https://devfeed.tech/tags/modular.md>), [nx](<https://devfeed.tech/tags/nx.md>), [scalable-architecture](<https://devfeed.tech/tags/scalable-architecture.md>), [scale](<https://devfeed.tech/tags/scale.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>), [structure](<https://devfeed.tech/tags/structure.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

A guide to architecting maintainable Angular applications at scale. It explains modular design, clear boundaries, dependency decoupling, layered and vertical architectures, and organizing code around business domains.

### Source excerpt

Learn how to build scalable Angular applications using domain-driven design, clear boundaries, and Nx tooling for better maintainability and team collaboration.

## Programming Priorities

DevFeed: [Programming Priorities](<https://devfeed.tech/articles/programming-priorities-38390.md>)

Original publisher: [Read original article](<https://blog.danlew.net/2025/03/11/programming-priorities/>)

Author: Dan Lew

Published: 2025-03-11T14:00:44Z

Content type: opinion

Language: en

Sources: [Dan Lew Blog](<https://devfeed.tech/sources/dan-lew-blog.md>)

Topics: [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Development](<https://devfeed.tech/topics/development.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>)

Tags: [automated](<https://devfeed.tech/tags/automated.md>), [code](<https://devfeed.tech/tags/code.md>), [code-design](<https://devfeed.tech/tags/code-design.md>), [coupling](<https://devfeed.tech/tags/coupling.md>), [decoupling](<https://devfeed.tech/tags/decoupling.md>), [development](<https://devfeed.tech/tags/development.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [programming](<https://devfeed.tech/tags/programming.md>), [readability](<https://devfeed.tech/tags/readability.md>), [software](<https://devfeed.tech/tags/software.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [tests](<https://devfeed.tech/tags/tests.md>)

### AI overview

This article presents a priority order for code design: functionality first, maintainability second, and other concerns afterward. It argues that maintainable code reduces the time and risk involved in future changes, allowing later refactoring and optimization. Suggested practices include automated tests, good architecture, decoupling, encapsulation, readable code, and useful comments.

### Source excerpt

Software development (or, you know, life in general) is all about juggling priorities. For this post, I'm thinking specifically about code design priorities. You only have a limited amount of time to implement a feature, so you have to pick and choose which aspects of it to spend

## Keycloak JS 26.2.0 released

DevFeed: [Keycloak JS 26.2.0 released](<https://devfeed.tech/articles/keycloak-js-26-2-0-released-31688.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2025/02/keycloak-js-2620-released>)

Author: Keycloak Team

Published: 2025-02-20T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [releases](<https://devfeed.tech/topics/releases.md>), [version](<https://devfeed.tech/topics/version.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [npm](<https://devfeed.tech/topics/npm.md>)

Tags: [idm](<https://devfeed.tech/tags/idm.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-js-release](<https://devfeed.tech/tags/keycloak-js-release.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [npm](<https://devfeed.tech/tags/npm.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>), [version](<https://devfeed.tech/tags/version.md>)

### AI overview

Keycloak JS 26.2.0 was released with no functional adapter changes. The JavaScript adapter now follows an independent release cycle, remains backward compatible with actively supported Keycloak server releases, and has moved to a dedicated repository to improve maintainability and community contribution workflows.

### Source excerpt

Highlights Today marks a significant milestone in the evolution of Keycloak JS with the release of version 26.2.0. This new version represents a shift in how the JavaScript adapter develops and evolves alongside the Keycloak ecosystem. Although this new version introduces no functional changes to the adapter, it does include several organizational changes. The most notable change is that Keycloak JS now breaks free from the main Keycloak project's release cycle. As announced earlier this year, the JavaScript adapter will follow its own independent development path. The separation from the main project allows for more frequent releases of features, bug fixes, and improved responsiveness to community feedback. The JavaScript adapter will continue to be backwards compatible with all actively supported releases of the Keycloak server, and deviation from this will be considered a breaking change. The choice to use a higher version than the main project itself was made intentionally in order to signal to users the departure from Keycloak's release cycle. We will however continue to commit to using Semantic Versioning, only bumping major versions if backwards incompatible changes are made, as is customary in the NPM ecosystem. Maintenance updates will continue to land in the 26.1.x series, as it is tied to the current stable release of the Keycloak server, but we encourage users to upgrade to new versions as needed. Another significant change is the relocation of the codebase to its own dedicated repository. This structural adjustment is not just administrative--it represents a strategic move toward better maintainability. By separating the JavaScript adapter from the main Keycloak repository, the development team gains greater flexibility in managing the codebase and processing community contributions. If you are looking to provide contributions, or are reporting issues, please redirect your efforts here. Looking ahead, we will be focussing on what is next for Keycloak JS.

## KMMBridge 1.1.0 Released - Kevin Galligan

DevFeed: [KMMBridge 1.1.0 Released - Kevin Galligan](<https://devfeed.tech/articles/kmmbridge-1-1-0-released-kevin-galligan-38240.md>)

Original publisher: [Read original article](<https://touchlab.co/kmmbridge-1.1>)

Published: 2024-12-05T00:00:00Z

Content type: release

Language: en

Sources: [Touchlab | Enterprise Mobile Innovation & Development](<https://devfeed.tech/sources/touchlab-enterprise-mobile-innovation-development.md>)

Topics: [Kotlin Multiplatform](<https://devfeed.tech/topics/kotlin-multiplatform.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [gradle-plugin](<https://devfeed.tech/topics/gradle-plugin.md>), [Maintainability](<https://devfeed.tech/topics/maintainability.md>), [swift-package-manager](<https://devfeed.tech/topics/swift-package-manager.md>), [cocoapods](<https://devfeed.tech/topics/cocoapods.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [.NET 11](<https://devfeed.tech/topics/net-11.md>)

Tags: [cocoapods](<https://devfeed.tech/tags/cocoapods.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [gradle-plugin](<https://devfeed.tech/tags/gradle-plugin.md>), [ios](<https://devfeed.tech/tags/ios.md>), [kmmbridge](<https://devfeed.tech/tags/kmmbridge.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-multiplatform](<https://devfeed.tech/tags/kotlin-multiplatform.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [releases](<https://devfeed.tech/tags/releases.md>), [spm](<https://devfeed.tech/tags/spm.md>), [swift-package](<https://devfeed.tech/tags/swift-package.md>), [swift-package-manager](<https://devfeed.tech/tags/swift-package-manager.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

KMMBridge 1.1.0 is a significant internal refactoring of the Gradle plugin used to publish Kotlin Multiplatform Xcode Framework binaries through Swift Package Manager and CocoaPods. The release improves maintainability and adds Gradle configuration cache support where possible, while introducing separate modules for GitHub features and potentially requiring plugin ID changes for GitHub publishing.

### Source excerpt

KMMBridge is a Gradle plugin that publishes Kotlin Multiplatform Xcode Framework dependencies for Swift Package Manager and CocoaPods. The 1.1.0 release is a significant internal refactoring to support ongoing improvements and maintainability.

## .NET Support on Heroku

DevFeed: [.NET Support on Heroku](<https://devfeed.tech/articles/net-support-on-heroku-26397.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/dotnet-support-on-heroku/>)

Author: Rune Soerensen

Published: 2024-12-03T00:00:00Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [.NET](<https://devfeed.tech/topics/net.md>), [ASP.NET Core](<https://devfeed.tech/topics/asp-net-core.md>), [Blazor](<https://devfeed.tech/topics/blazor.md>), [C#](<https://devfeed.tech/topics/csharp.md>), [F#](<https://devfeed.tech/topics/fsharp.md>), [Visual Basic](<https://devfeed.tech/topics/visual-basic.md>), [cross-platform](<https://devfeed.tech/topics/cross-platform.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Databases](<https://devfeed.tech/topics/databases.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [apis](<https://devfeed.tech/tags/apis.md>), [app](<https://devfeed.tech/tags/app.md>), [asp-net](<https://devfeed.tech/tags/asp-net.md>), [asp-net-core](<https://devfeed.tech/tags/asp-net-core.md>), [blazor](<https://devfeed.tech/tags/blazor.md>), [buildpacks](<https://devfeed.tech/tags/buildpacks.md>), [c-sharp](<https://devfeed.tech/tags/c-sharp.md>), [can](<https://devfeed.tech/tags/can.md>), [community](<https://devfeed.tech/tags/community.md>), [core](<https://devfeed.tech/tags/core.md>), [cross-platform](<https://devfeed.tech/tags/cross-platform.md>), [deploy](<https://devfeed.tech/tags/deploy.md>), [developers](<https://devfeed.tech/tags/developers.md>), [f-sharp](<https://devfeed.tech/tags/f-sharp.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [high-performance](<https://devfeed.tech/tags/high-performance.md>), [languages](<https://devfeed.tech/tags/languages.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [net](<https://devfeed.tech/tags/net.md>), [news](<https://devfeed.tech/tags/news.md>), [nextgen](<https://devfeed.tech/tags/nextgen.md>), [platform](<https://devfeed.tech/tags/platform.md>)

### AI overview

Heroku announces that official .NET support is entering public beta. Developers can build and deploy C#, F#, and Visual Basic applications using frameworks including ASP.NET Core and Blazor. The support includes a buildpack, documentation, testing, and guidance for deploying applications, including Blazor apps with Heroku Postgres.

### Source excerpt

We're excited to announce that official support for .NET on Heroku is entering public beta starting today. Developers can now build and deploy applications in C#, F#, and Visual Basic, using frameworks like ASP.NET Core and Blazor, all with the simplicity and flexibility of the Heroku platform. .NET has long been one of the most [...] The post .NET Support on Heroku appeared first on Heroku.

## SMURF: Beyond the Test Pyramid

DevFeed: [SMURF: Beyond the Test Pyramid](<https://devfeed.tech/articles/smurf-beyond-the-test-pyramid-23861.md>)

Original publisher: [Read original article](<http://testing.googleblog.com/2024/10/smurf-beyond-test-pyramid.html>)

Author: Google Testing Bloggers (noreply@blogger.com)

Published: 2024-10-15T12:22:00Z

Content type: tutorial

Language: en

Sources: [Google Testing Blog](<https://devfeed.tech/sources/google-testing-blog.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Mocking](<https://devfeed.tech/topics/mocking.md>)

Tags: [adam-bender](<https://devfeed.tech/tags/adam-bender.md>), [article](<https://devfeed.tech/tags/article.md>), [dependency](<https://devfeed.tech/tags/dependency.md>), [flaky](<https://devfeed.tech/tags/flaky.md>), [google](<https://devfeed.tech/tags/google.md>), [integration](<https://devfeed.tech/tags/integration.md>), [maintainability](<https://devfeed.tech/tags/maintainability.md>), [memory](<https://devfeed.tech/tags/memory.md>), [production](<https://devfeed.tech/tags/production.md>), [resources](<https://devfeed.tech/tags/resources.md>), [speed](<https://devfeed.tech/tags/speed.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [tott](<https://devfeed.tech/tags/tott.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

This Google Testing on the Toilet article explains why the conventional test pyramid is insufficient for growing test suites. It introduces the SMURF mnemonic--Speed, Maintainability, Utilization, Reliability, and Fidelity--as a framework for balancing testing trade-offs.

### Source excerpt

This article was adapted from a Google Testing on the Toilet (TotT) episode. You can download a printer-friendly version of this TotT episode and post it in your office. By Adam Bender The test pyramid is the canonical heuristic for guiding test suite evolution. It conveys a simple message - prefer more unit tests than integration tests, and prefer more integration tests than end-to-end tests. While useful, the test pyramid lacks the details you need as your test suite grows and you face challenging trade-offs. To scale your test suite, go beyond the test pyramid. The SMURF mnemonic is an easy way to remember the tradeoffs to consider when balancing your test suite: Speed: Unit tests are faster than other test types and can be run more often--you'll catch problems sooner. Maintainability: The aggregated cost of debugging and maintaining tests (of all types) adds up quickly. A larger system under test has more code, and thus greater exposure to dependency churn and requirement drift which, in turn, creates more maintenance work. Utilization: Tests that use fewer resources (memory, disk, CPU) cost less to run. A good test suite optimizes resource utilization so that it does not grow super-linearly with the number of tests. Unit tests usually have better utilization characteristics, often because they use test doubles or only involve limited parts of a system. Reliability: Reliable tests only fail when an actual problem has been discovered. Sorting through flaky tests for problems wastes developer time and costs resources in rerunning the tests. As the size of a system and its corresponding tests grow, non-determinism (and thus, flakiness) creeps in, and your test suite is more likely to become unreliable. Fidelity: High-fidelity tests come closer to approximating real operating conditions (e.g., real databases or traffic loads) and better predict the behavior of our production systems. Integration and end-to-end tests can better reflect realistic conditions, while unit

[Next page](<https://devfeed.tech/tags/maintainability.md?cursor=WyIyMDI0LTEwLTE1VDEyOjIyOjAwKzAwOjAwIiwgIjFlMDM0YzdlLTE2MGItNDQ5Zi1iY2E0LWFjNWM4MjQyMDQ4OSJd>)