Work With Me
Software Architecture & Consulting
I provide expert consulting services for organizations building distributed systems and microservices architectures. With over a decade of experience in software development and a deep focus on event-driven architectures, I help teams navigate the complexities of modern system design.
What I Offer
Architecture Reviews
I’ll review your current architecture, identify bottlenecks and areas of concern, and provide actionable recommendations for improvement. Whether you’re dealing with performance issues, scalability challenges, or complexity management, I can help you find a path forward.
Microservices Strategy
Moving to microservices? I can help you:
- Define service boundaries using Domain-Driven Design principles
- Design event-driven communication patterns
- Implement proper service discovery and resilience patterns
- Avoid common pitfalls like distributed monoliths and chatty services
Technical Leadership
Sometimes you need an experienced hand to guide your team through challenging technical decisions. I provide:
- Technical mentoring for development teams
- Architecture decision documentation
- Technology selection guidance
- Best practices implementation
Training & Workshops
I deliver training on:
- Microservices architecture patterns
- Event-driven systems design
- Domain-Driven Design implementation
- Distributed systems fundamentals
Technologies I Work With
- Languages: Java, Kotlin, Groovy, TypeScript, Go
- Frameworks: Spring Boot, Micronaut, Node.js
- Event Systems: Kafka, RabbitMQ, NATS, EventStore
- Cloud Platforms: AWS, Google Cloud, Kubernetes
- Databases: PostgreSQL, MongoDB, Cassandra, Event Stores
Recent Projects
- GraphQL Performance Optimization: Helped a logistics company optimize their GraphQL API, reducing query times by 80% through proper DataLoader implementation and query optimization.
- Event Sourcing Implementation: Guided a fintech startup through implementing event sourcing for their core transaction system, ensuring audit compliance and enabling temporal queries.
- Microservices Migration: Led the decomposition of a monolithic e-commerce platform into microservices, improving deployment frequency from monthly to multiple times per day.
Philosophy
I believe in pragmatic solutions over dogma. Not every system needs to be microservices. Not every problem requires event sourcing. My approach focuses on understanding your specific challenges and constraints, then applying the right patterns and technologies to solve them.
I’m particularly interested in projects that involve:
- Event-driven architectures
- CQRS and Event Sourcing
- Distributed systems challenges
- Performance optimization
- Team enablement and knowledge transfer
Get In Touch
If you’re facing challenges with your distributed systems or looking to improve your architecture, I’d love to hear from you.
Email: Contact me through the site
GitHub: @daviddawson
Twitter: @davidthecoder
Let’s discuss how I can help your team build better systems.