Engineering · Leadership · Education
Technical depth.
Real impact.
I’m Maurício Aniche. I bring together software engineering, research, and leadership to build better software and help the people who build it grow.
CTO at Alun. Author. Educator. Engineer.
to engineering strategy.
industry and academia
My career has taken me through industry, the classroom, and research. Today, I bring those perspectives to real engineering challenges.
I’m CTO at Alun and was one of the founding engineers of Alura. I worked as a Staff Engineer at Uber, led the Testing Enablement team at Adyen, and was an Assistant Professor of Software Engineering at Delft University of Technology in the Netherlands from 2019 to 2024. Earlier in my career, I worked as a developer at Locaweb and Verifone.
I hold a PhD and a master’s degree in Computer Science from the University of São Paulo. My work focuses on software testing, maintainability, and engineering practices that make systems easier to understand, test, and evolve.
02 / Engineering impact
Better decisions.
Stronger engineering.
I connect technical depth with the needs of teams, products, and organizations.
At Adyen, my work on testing enablement included test selection: running the tests relevant to a change instead of the entire suite. Our approach reduced the number of test cases run by a factor of 30 and CPU time by a factor of 12, with pipelines running 10–30% faster.
Read the Adyen case studyIn education, I’ve helped engineers develop systematic approaches to testing and software design through teaching and books. At TU Delft, this work earned me the Computer Science Teacher of the Year award in 2021 and a TU Delft Education Fellowship.
Today, I bring that experience to engineering leadership at Alun and to conversations about architecture, quality, technical strategy, and the changing role of engineers as AI becomes part of software development.
03 / AI and agentic software engineering
Building with AI.
Thinking like an engineer.
Explore my AI writing (Portuguese) Writing code has become easier. Deciding what to build and making sure it works still demand a great deal of engineering.
I use coding agents extensively, and I see our work moving up a level of abstraction. We give agents context, make architecture and product decisions, and judge whether a change solves the right problem. Engineers need to understand the system as a whole, weigh trade-offs, and say no when an agent introduces unnecessary complexity or breaks a fundamental constraint.
For me, agentic software engineering means designing a development process in which agents can plan, implement, test, review, and help operate software, with people setting direction and deciding where human judgment is needed. The quality of that process determines how much we can delegate. Tests, static analysis, observability, and safe deployment and rollback mechanisms give us the feedback we need to trust changes.
That is why I’m interested in software factories: workflows that connect agents across the delivery cycle. Faster code generation can simply move the queue to review, deployment, or operations. We need to redesign the whole flow and use AI to help keep software running in production. The goal is working software and better outcomes for the business.
Computer science and software engineering fundamentals remain essential. They help us frame problems, spot architectural mistakes, and evaluate what agents produce. We also need to preserve our critical thinking: accepting an answer without questioning it means giving up the judgment that makes an engineer valuable.
Adoption is a leadership and learning challenge, too. Leaders need to provide direction, tools, and guardrails while giving teams room to experiment and share what they learn. Costs deserve the same attention: choose models to fit the task and assess the return across the delivery process. I’m excited about what we can already do, and I’m still experimenting, learning, and sharing open questions.
04 / Books
Ideas you can put to work.
Effective Software Testing
Go beyond writing tests. Learn to find bugs with systematic techniques, clear contracts, and an effective testing strategy.
Explore the book : Effective Software TestingSimple Object-Oriented Design
Keep complexity under control with clear abstractions, consistent objects, and well-defined dependencies. Build software that is easier to understand and maintain.
Explore the book : Simple Object-Oriented DesignI’m the author of Effective Software Testing: A Developer’s Guide (2022) and Simple Object-Oriented Design: Create Clean, Maintainable Applications (2024), both published by Manning. I’ve also written books in Portuguese on TDD, SOLID, automated testing, and programming, published by Casa do Código.
05 / Engineering mentoring
Your next challenge
goes beyond code.
For Staff Engineers and engineering directors who want to expand their influence, make difficult decisions, and connect technology with business goals.
We start with your context and the decisions you need to make. Scope, frequency, duration, and fees are discussed in an initial conversation.
Send me an e-mail or a LinkedIn message.
Clarity to lead.