Skip to content

Software Architecture Consultancy

When a workshop isn't enough, I work hands-on with your teams on the technical and socio-technical architecture behind your business goals: distributed systems, modeling, team structures and AI adoption across the SDLC.

Most engagements start with a workshop: it's faster and gives your team a shared method. Consulting is for going deeper, when a workshop isn't enough.

Start with a workshop →

Technical topics

I'm an expert in Software Architecture, Software Design, and Software Engineering.

Contact me

Distributed architectures

When you go for modular solutions that can be deployed independently (e.g., microservices), you enter the complex world of distributed architectures: eventual consistency, message brokers, asynchronous vs. synchronous APIs, resilience upon failing parts, increased latencies, difficult observability, amongst others. Let me help you navigate this complexity before you come to hate it and want to return to monolithic architectures, starting the vicious cycle again.

Documenting and Visualizing Systems

Technical people aren't popular for spending time on quality documentation and visuals. Yet, the reality is that, without some basic material, many decisions in the organization are suboptimal or even wrong, since they're based on assumptions and misconceptions. I can help you establish a good foundation of just-enough documentation and clear visuals to achieve proper alignment across teams and departments.

From monolith to microservices

A monolithic architecture is the best option to start a software project; it gives you the speed and flexibility to shape your solution to the market's needs. However, many organizations fail to plan an evolution to a more modular system that enables them to scale their organization sustainably and avoid clashing and inter-team dependencies that quickly make technical debt a significant impediment to further growth. No worries, it's a familiar pattern. Contact me to leverage my hands-on experience on splitting big projects into manageable parts, for which I leverage domain-driven design (DDD) principles and team interfaces.

AI-assisted coding

Reading about how much AI can boost developers' productivity, but you're not sure where to start? I provide comprehensive consultancy on AI-assisted development strategies, from initial assessment to full implementation. My expertise covers prompt engineering best practices, establishing coding guidelines for AI pair programming, selecting the right AI tools for your tech stack, and creating governance frameworks that balance innovation with security. I help you navigate the landscape of AI coding assistants, LLM-powered development tools, and emerging patterns like agentic workflows. My pragmatic approach ensures you adopt AI gradually and effectively, measuring real productivity gains while avoiding common pitfalls. Contact me for technical guidance on building an AI adoption roadmap that aligns with your organization's maturity level and objectives.

Socio-technical topics

In organizations, people's social dynamics often have a much greater impact than the technical setup. These are some of the different aspects I can help with.

Contact me

Defining a technical strategy, Vision, and Goals

You surely have your preferences and options that suit you better in terms of software architecture choices, governance, AI usage, reusability, ways of working, coding guidelines, and non-functional requirements you want to pursue. However, you might end up deviating from all these and entering a technical anarchy if you ignore basic guidelines and governance. Regardless of whether your approach is central or distributed, I help your organization develop a crystal-clear technical strategy.

Collaborative but effective decision-making

Leverage my improved flavor of Architecture Decision Records (ADRs) and an architecture community to spread knowledge, make decisions that stick, and ensure accountability with the Uncle Ben's principle (a great power comes with great responsibility).

Designing team boundaries to reduce cognitive load, powered by Domain-Driven Design

Determine whether your current goals align better with domain teams, feature teams, or a hybrid model, and identify boundaries and team interfaces. Leverage my expertise to choose the best ownership model for your case that helps you and the teams conclude when and how they need to take the initiative.

AI adoption strategy and impact analysis

Avoid the siren songs and hold your horses before firing all software developers in your organization. AI can be leveraged at various adoption levels, ranging from auto-completing code blocks to producing baselines for full components and APIs. You must plan your AI adoption strategy wisely, taking into account the constraints and organizational context you're navigating. In any case, I recommend you start with this as soon as possible, since it can mean a significant competitive advantage if you apply it with common sense. Choose me as your partner to develop a solid AI adoption strategy and leverage my growing expertise in these emerging trends, combined with seasoned experience that offers a down-to-earth perspective.

Alignment between business goals and technical strategies

The most common complaints you can hear in a software development organization are: 1) there are too many ongoing business projects, so I'm accumulating a massive technical debt, and 2) the technical solution is overengineered for what the business needs. I help you align both worlds and achieve a healthy balance between business pressure and technical quality, ensuring you can consistently meet your business objectives in the medium and long term.

Devising realistic technical plans

Avoid refactoring plans that either have no estimates or are designed to take years, and split them into incremental changes that can be delivered in line with business value. Let's work on leveraging well-known architecture patterns combined with team structures that allow you to finally kick off your technical plans.

Cross-team coordination and alignment

Due to a poorly structured team, the evolution of your software system, or an inevitable split caused by the multiple dimensions of your application, your teams spend a significant amount of time coordinating the sequence and delivery dates for a single feature that requires different team tasks. My combined technical and people processes knowledge can help your teams collaborate more efficiently, or even design new team structures that can allow them to move more independently.

Developer Experience (DevEx) approach

When you have multiple engineering teams working on the same solutions, you can leverage common patterns and tools provided as a service by a platform engineering team (also known as a developer experience team). I've applied this pattern in various organizations with outstanding results; let me know if you would like to analyze, try, and implement this emerging standard.

Common Issues I Address

These are the most frequent challenges organizations face. Hover over each case to learn more about how I can help.

01

Software engineers aren't proactive enough and/or lack maturity.

Regardless of whether you follow Agile practices or not, organizations sometimes perceive a lack of proactivity or interest from development team members in participating in key activities, such as discovery, task refinement, effort estimation, software design, and devising a technical plan for the system.

We can help you analyze the root causes and provide techniques for these teams to find a comfortable space and motivation to give these vital insights.

02

Massive technical debt due to technical topics not being prioritized

You need to find a good balance between progressing with your business goals and addressing a technical situation where most changes are hindered by the accumulated complexity and the prevalence of quick fixes in the codebase. However, the only plans that exist for refactoring the software are either not estimated or would require the dedication of key people over a long period of time.

Don't worry, you're not the only organization having this issue, and it has a solution. Let's work together to build an evolutionary plan that allows you to progress while taking steps to pay the technical debt.

03

Technical expertise's bottlenecks and team dependencies

Your software development cycle is commonly slowed down by a person or a few people who centralize most of the system's technical knowledge. These can be explicit structures (you designed your organization to implement these controls) or implicit ones (it happens organically because people assume they're the experts).

We've seen and solved this in the past. Let me help you correct this undesired inertia and ensure your teams can work independently.

04

Many projects are going on, and their ownership is unclear

Business and product teams often struggle to determine who to contact when issues or new changes arise in the software. The team structures favored a diluted ownership, so only a few individuals know the affinity of each component or feature to a particular group. This situation ultimately slows down entire projects, as people get appointed as project managers and they call for multiple unnecessary coordination meetings on top of existing structures.

Let me resolve this issue by utilizing visuals and tools to clarify ownership and enhance your organization's explicit and implicit structures.

Not sure how to name your problem yet? Diagnose it interactively with TroubleBubbles.

My Consultancy Process

A proven approach that delivers results

Stage 1

Intake (1 hour)

Free initial consultation to understand your challenges, goals, and context. I'll discuss your specific needs and how I can help.

Stage 2

Analysis (1-2 days)

Deep dive into your systems, teams, and processes. I'll create a detailed plan tailored to your specific situation.

Stage 3

Working Together (3-4 days)

Hands-on collaboration to implement solutions, facilitate workshops, and guide your teams through changes.

Stage 4

Hands-off (1 day)

Knowledge transfer and documentation to ensure your team can continue independently with confidence.

Stage 5

Follow-up (half day)

Check progress, address questions, and ensure the implemented changes are delivering value.

Frequently Asked Questions

Most teams start with a workshop: it's faster, cheaper, and gives your team a shared method. Consulting is the next step when a workshop isn't enough: when you need me hands-on with your systems and teams over several days. We can kick off with a short intro call, no obligation.

No preparation needed. Just come with an open mind and be ready to discuss your challenges. I'll guide the conversation and ask the right questions to understand your situation.

While Agile coaching focuses on process and methodology, I focus on technical architecture and the intersection of technology with team dynamics. I address the 'what' and 'how' of building systems, not just the process of building them.

Typical outcomes include clearer technical direction, improved team alignment, reduced complexity, faster delivery, and better technical decisions. I focus on measurable improvements that you'll see within weeks, not months.

Absolutely. I adapt to your context and work with your existing tools, processes, and constraints. My goal is to improve what you have, not replace everything.

Yes, I work with clients globally, both remotely and on-site. My methods are designed to be effective regardless of location.

Let's talk about your project

Tell me what your team is dealing with and we'll figure out whether a workshop or hands-on consulting fits best.