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

Engineering vs Craftsmanship
RockIT 25 Jun 2024

In the world of software development, two terms often arise when discussing the qualities of experienced professionals: engineering and craftsmanship. While we sometimes use these terms interchangeably, they represent distinct skill sets and mindsets. Emily Bache and Dave Farley published the video What Is A Software Engineer? | Craftsmanship Movement Was A “Step Backwards”. It inspired me to write this post with a different opinion: combining the two approaches leads to superior software…

Sustainable Refactoring
RockIT 15 May 2024

In the fast-paced world of software development, maintaining code health while delivering new features is a constant challenge. One strategy that has emerged as a crucial practice is refactoring. However, the traditional approach to refactoring can often clash with the demands of project timelines and stakeholder expectations. In this post, we’ll explore how sustainable refactoring techniques can help strike a balance between code health and feature delivery.

Will Customers Ever Speak Our Language?
RockIT 9 May 2024

Software developers face a constant challenge: the communication gap between them and customers. TLDR: customers will never speak the developers’ language. While both parties strive for the same goal—creating valuable, functional software—their perspectives, priorities, and vocabularies often differ. In this post, we’ll dive into the reasons for this difference, explore the implications, and discuss strategies for bridging the gap.

Replacing Type Code With State/Strategy
RockIT 1 May 2024

Previously, we talked about potential issues switch-case can cause, and what to do when the type affects only data, or behavior, too. Now that we are switch-case ninjas, we can go even further and see how to tackle when the type code and the behavior change dynamically at runtime.

AI Tools and Refactoring
RockIT 24 Apr 2024

Previously in the series, we saw that AI tools have limitations. We also discussed maximizing our productivity by using them to write code - without shooting ourselves in our legs. In this post, we’ll cover one more piece of the puzzle: how they can (or can’t) help us to refactor.

How To Use AI Developer Tools In 2024
RockIT 18 Apr 2024

In the previous post, we saw the limitations of AI developer tools. Yes, they are not perfect. However, they are still able to improve our productivity significantly. This time, we’ll dive into how we can effectively use them to achieve a better development experience, higher-quality output, and faster delivery.

Describing Software Behavior
RockIT 10 Apr 2024

In the world of software development, understanding software behavior is crucial. It’s not just about writing code; it involves various steps and artifacts. In this post, we’ll dive into the different ways to describe what a software product does, showing how they all connect to depict software behavior.

AI Developer Tool Limitations In 2024
RockIT 3 Apr 2024

With the rise of ChatGPT, Bard Gemini, GitHub Copilot, Devin, and other AI tools1, developers started to fear that AI tooling would replace them. Even though their capabilities are indeed impressive, I don’t fear our jobs will go away in 2024.

Replacing Type Code With Subclasses
RockIT 4 Feb 2024

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.

Replacing Type Code With Class
RockIT 23 Apr 2023

In the previous part, we had an overview of why switch-case could be hard to maintain. This part will focus on the simplest scenario: when type-code only affects data, not behavior. We’ll do this by modeling a pizzeria.

The Dark Side of Switch-Case
RockIT 23 Apr 2023

In a nutshell: switch-case makes code harder to maintain. We’ll understand the reasons to eliminate it and see when its usage is justified.

Tech Content Creators' Responsibilities
RockIT 15 Mar 2023

As online learning flourishes, it’s easier than ever to learn new things. If we search for virtually any technology, we’ll get remarkable amounts of results. In some sense, it’s good, since we have the freedom to choose. But how should we make that choice?

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.