Author Image

Hi, I am Attila

Attila Fejér

Code That Makes Sense | For engineers who refuse to stop thinking in the AI era at Craftosphere

I believe the scarcest resource in software engineering today is not speed - it’s judgment.

AI writes code faster than any human ever could. But someone still has to decide whether that code is correct, maintainable, and worth shipping. That decision requires experience, context, and the kind of intuition you only build by doing the work.

I’ve spent 15+ years as a software engineer, engineering lead, and CTO. I’ve designed cloud architectures, refactored monoliths into microservices, and led teams through transformations at companies ranging from startups to Fortune 100. At IBM, I co-created and led the XP Farm framework globally, coaching thousands of developers in software crafting, TDD, and clean architecture.

Now, as CTO of Craftosphere, partner at BriX Consulting, and part of the nWave team, I focus on helping engineering teams maintain quality in an AI-assisted world - through embedded coaching, tooling, and writing about the trade-offs behind everyday software design decisions. nWave is where the coaching philosophy meets the code: an AI-augmented framework that enforces TDD, peer review, and software craftsmanship at every step.

I publish Code That Makes Sense - a newsletter for senior engineers who use AI daily but refuse to stop thinking.

Currently available for CTO advisory, technical coaching, and speaking engagements.

Outside of code: certified trek guide, motorbike rider, DIY builder, guitar player, and proud owner of four dogs.

Skills

Experiences

1
CTO, Lead Technical Coach
Craftosphere

2024 - Present, Remote

I provide strategic technical leadership at Craftosphere, setting the company’s vision and coaching methodology. As the primary technical coach, I guide engineering teams through transformation: embedded coaching, workshops, and consulting aimed at improving both delivery and engineering culture. I publish Code That Makes Sense, a newsletter on engineering judgment for the AI era, and I’m developing an engineering quality index - an open framework for measuring engineering judgment across teams.

Accomplishments:
  • 52% reduction in production bugs for coached teams at a Fortune 100 company
  • 37% increase in delivery speed for the same teams
  • NPS of 58 from technical coaching engagements

Technical Coach, Partner
BriX Consulting

2024 - Present, Remote

As a partner at BriX Consulting, I deliver Extreme Programming lectures and embedded coaching sessions focused on technical skills, team practices, and engineering morale. I also collaborate on strategic company direction and refine our coaching methodologies. I co-authored the Software Craftsmanship Dojo - a hands-on workshop program - along with the Unicorns’ Ecosystem and the BOKaRy (Body of Knowledge and Reference) framework. I’m also part of the nWave team - building an AI-augmented development framework that enforces TDD, peer review, and software craftsmanship practices throughout the development lifecycle.

Accomplishments:
  • 33% average improvement in core DORA metrics across 200+ engineering teams through the Software Craftsmanship Dojo
2

3
Technical Site Lead, Global Technical Coach
IBM ISSC Hungary

2022 - 2024, Budapest, Hungary

I worked with decision-makers across IBM to modernize development methodologies and tooling. I co-created the XP Farm framework - not just locally in Budapest, but globally across IBM - advocating for software craftsmanship, TDD, and clean architecture as organizational standards. I established feedback mechanisms for data-driven coaching decisions and shared insights with the global developer community.

Accomplishments:
  • Impacted 10,000+ developers through coaching in software craftsmanship, Extreme Programming, and DevOps
  • Co-led the XP Farm framework adoption across IBM’s global CIO organization
  • Earned the XP Farm Red Belt - IBM’s highest recognition for XP coaching mastery

Lead Engineer, Software Architect
IBM ISSC Hungary

2020 - 2022, Budapest, Hungary

I led the end-to-end design and implementation of scalable, cloud-based software solutions. The core project was a monolith-to-microservices migration - I architected the target state, guided the team through refactoring, and ensured we maintained production stability throughout the transition.

Accomplishments:
  • Migrated a monolithic application to microservices architecture, maintaining 99.99% availability
  • Boosted application throughput by over 500% through targeted performance optimizations
  • Reduced cloud and operational costs by 51% via infrastructure and architectural efficiencies
4

5
Lead Engineer, Software Architect
Apertus Nonprofit Kft.

2017 - 2019, Budapest, Hungary

I led cross-functional teams through the full software development lifecycle - architecture, implementation, testing, and deployment. I provided technical direction, mentored team members, conducted performance testing, and acted as the bridge between engineering and business stakeholders.

Accomplishments:
  • Scaled a landing page to handle 10x more concurrent users through performance optimization
  • Accelerated delivery time by 23% by streamlining development and deployment pipelines

Technical Coach
EPAM Academy, Pentaschool, Ruander, Masterfields, Számalk

2013 - 2017, Budapest, Hungary

I taught Java, Spring, and software engineering at multiple training academies. I focused on practical, hands-on instruction, adapting my approach to different learning styles and experience levels. The goal was always the same: give people the foundation to build real careers as developers.

Accomplishments:
  • Launched 300+ careers through comprehensive technical training and mentorship
  • Maintained consistently high student satisfaction scores across all programs
6

Education

M.Sc. in Electrical Engineering - Embedded Systems specialization
B.Sc. in Computer Engineering - AI specialization
High School
High School

Honors & awards

XPFarm Red Belt - Software Craftsmanship Coach
IBM Mar 2023

This award demonstrates a commitment to software craftsmanship, continuous learning, teamwork, the discipline to stick to daily practice, and the passion for knowledge sharing.

Outstanding Technical Achievement Award
IBM Apr 2022

Special recognition for the top recipients for developing technical achievements.

Fivefold IBM CIO Hungary Champion
IBM 2021-2022

This award represents the dedication and passion one has put into making CIO Hungary a better place.

OITM Competition 2018 - Java (Spring, Hibernate) Category 1st Prize

Hungarian National IT Challenge (Országos IT Megmérettetés)

OITM Competition 2018 - Java EE Category 1st Prize

Hungarian National IT Challenge (Országos IT Megmérettetés)

OITM Competition 2018 - Java Innovation Category 2nd Prize

Hungarian National IT Challenge (Országos IT Megmérettetés)

OITM Competition 2018 - Overall 2nd Prize

Hungarian National IT Challenge (Országos IT Megmérettetés)

Scientific Students' Associations (TDK) 2nd Prize

Integrated Development Environment for a Custom Soft-Core Processor

Scientific Students' Associations (TDK) 2nd Prize

Push Notifications for Sensor Networks with Internet Connection

WTW (Win The Web) 24h Programming Competition 1st Place
Jan 2011

Posts

Case Study: The Method With 19 Parameters
Code That Makes Sense 17 Aug 2026

A case study about a real registration method that grew to 19 parameters and how we made it maintainable using the Pipes and Filters and Strangler Fig patterns.

"It's Just Hard to Test" Is a Design Smell
Code That Makes Sense 10 Aug 2026

Frontend testability is a property of the design, not the framework. Pull the business rule out of the component and ‘hard to test’ stops being true.

Your Test Suite Is Lying to You

Coverage counts the lines that ran, not the lines verified. A method can reach 100% with its rules unverified. Mutation testing measures the gap.

Refactoring Without Permission
Code That Makes Sense 27 Jul 2026

Most refactoring never needed a sprint or a backlog item. It fits inside the feature branch we already have open, as long as the commits stay separate.

Why Your Team Lead Blocks Refactoring
Code That Makes Sense 20 Jul 2026

Your team lead isn’t against quality. His “no” to refactoring is due to delivery pressure and risk, not indifference, and here’s how to argue in his terms.

The Cost of "Just Ship It"
Code That Makes Sense 13 Jul 2026

“Just ship it” isn’t wrong, it’s unpriced. The post is about what shipping without design actually costs, in three numbers a manager already tracks.

Tech Debt Is a Tool

Tech debt is two opposite things sharing one name: an intentional shortcut we chose, and an accidental mess nobody intended.

Why Your Service Class Knows Too Much
Code That Makes Sense 29 Jun 2026

A service class isn’t big because the domain is hard, but because the behavior never went home. A domain name holds the line that the Service suffix never could.

Feature Flags Are Just Polymorphic Dispatch
Code That Makes Sense 22 Jun 2026

A feature flag that branches on a string is a type code in disguise. Replace it with polymorphic dispatch, and the generated wiring makes a flag safe to delete.

When the Verb Wants to Be a Noun
Code That Makes Sense 15 Jun 2026

A transfer between two accounts fits in neither. The DDD move: promote the verb to an aggregate, then let event sourcing calculate the balances.

When the Aggregate Gets Heavy, Part 2

Decorator stacks optional layers, Chain of Responsibility orders guards that short-circuit. Two more ways to slim a heavy aggregate without going anemic.

When the Aggregate Gets Heavy

Aggregates get heavy when you keep stuffing rules in. Specification, Policy, State, and Strategy move behavior out without sliding into the anemic-domain trap.

Where Does Application Logic Go?
Code That Makes Sense 25 May 2026

Domain services decide, application services orchestrate: one rule splits any XService into a pure policy and a rule-free use case.

The Anemic Domain Model Trap
Code That Makes Sense 18 May 2026

Hexagonal architecture doesn’t guarantee a good domain. The anemic-model trap: fields inside, rules outside, and the encapsulation promise quietly broken.

The Database Is an Implementation Detail
Code That Makes Sense 11 May 2026

Why architecture discussions keep collapsing into schema arguments, and the order of operations that puts domain discovery before the database.

Describing Software Behavior

User stories, acceptance criteria, and BDD scenarios are layers of precision, not rivals. Walk each story down the ladder before the code catches up.

Will Customers Ever Speak Our Language?
Code That Makes Sense 27 Apr 2026

Customers won’t learn your jargon and they shouldn’t have to. The translation burden sits with developers - here are the tools that actually close the gap.

Sustainable Refactoring
Code That Makes Sense 20 Apr 2026

Balancing Code Health and Feature Delivery

Replacing Type Code With State/Strategy
Code That Makes Sense 13 Apr 2026

When the Type-Code Affects Behavior And It Should Change at Runtime

Replacing Type Code With Subclasses

We’ve previously dived into the complexities and maintenance challenges of switch-case and saw a refactoring technique for simple scenarios. Today, we’ll raise the bar a bit and focus on situations when our type code affects behavior. We’ll use pets to demonstrate the concepts.

Code Smells
Baeldung CS 27 Jun 2021

Explore ideas how to prevent a codebase’s quality from decreasing.

Refactoring
Baeldung CS 10 May 2021

Learn that refactoring is a natural and essential part of a software’s evolution

What Does It Mean to Program to Interfaces?
Baeldung CS 7 Mar 2021

A quick and practical introduction to programming to an interface.

Object-Oriented vs Functional Programming
Baeldung CS 8 Dec 2020

Learn about object-oriented and functional programming and discover that they are not mutually exclusive.

The General Concept of Polymorphism
Baeldung CS 12 Nov 2020

Learn what polymorphism is with examples.

Difference Between when() and doXxx() Methods in Mockito
Baeldung 8 Sep 2020

Learn the advantages and disadvantages of the configuring a mock object the when().thenXxx() or the doXxx().when() way.

Object-Orientation in the Real World
Baeldung CS 9 Aug 2020

Explore the core concepts behind the object-oriented programming.

Mapping a Single Entity to Multiple Tables in JPA
Baeldung 27 Oct 2019

Learn how to map a single Java entity to multiple database tables using JPA.

Command-Line Arguments in Java
Baeldung 6 Sep 2019

Explore how to configure your Java applications using command-line arguments.

Composition, Aggregation, and Association in Java
Baeldung 3 Aug 2019

Explore the properties and representation of composition, aggregation, and association in Java.

An Introduction to Epsilon GC: A No-Op Experimental Garbage Collector
Baeldung 7 Mar 2019

Learn how Epsilon works, and explore the common use cases.

An Introduction to ZGC: A Scalable and Experimental Low-Latency JVM Garbage Collector
Baeldung 9 Feb 2019

Explore how Z Garbage Collector manages to keep low pause times on even multi-terabyte heaps.

Java 8 Streams peek() API
Baeldung 16 Jan 2019

Learn about the peek() method and explore the lifecycle of a stream.

Mapping a Dynamic JSON Object with Jackson
Baeldung 26 Dec 2018

Explore multiple ways of handling dynamic JSON objects with Jackson.

Remove Leading and Trailing Characters from a String
Baeldung 3 Dec 2018

Explore several ways to remove leading and trailing characters from a String.

Many-To-Many Relationship in JPA
Baeldung 15 Nov 2018

Learn how to model a many-to-many relationship in Java using JPA

Heap Sort in Java
Baeldung 18 Oct 2018

Learn how to implement a Binary Heap and Heap Sort in Java.

Use Criteria Queries in a Spring Data Application
Baeldung 30 Aug 2018

A quick tutorial to using JPA Criteria Queries using Spring Data JPA.

Remove All Occurrences of a Specific Value from a List
Baeldung 7 Aug 2018

In this tutorial, we’ll see multiple solutions to efficiently removing all occurrences of a value, describing the pros and cons.

Using Spring ResponseEntity to Manipulate the HTTP Response
Baeldung 3 Jul 2018

Learn how to manipulate the HTTP response using the ResponseEntity class.

Using Spring @ResponseStatus to Set HTTP Status Code
Baeldung 3 Jul 2018

Have a look at the @ResponseStatus annotation and how to use it to set the response status code.

Spring Core Annotations
Baeldung 7 Jun 2018

Explore the most commonly used Spring core annotations.

Spring Scheduling Annotations
Baeldung 2 Jun 2018

Explore the most common Spring scheduling annotations.

Spring Web Annotations
Baeldung 1 Jun 2018

Explore the main annotations you can use to handle HTTP requests and responses in Spring MVC.

Spring Boot Annotations
Baeldung 1 Jun 2018

Explore the Spring Boot Annotations.

Spring Data Annotations
Baeldung 31 May 2018

Learn about the most important annotations we need to handle persistence using the Spring Data project

Working with Boolean in Thymeleaf
Baeldung 25 Apr 2018

Take a look at how to work with boolean values in Thymeleaf.