Designing software with clear boundaries, dependable behavior, and room to evolve.
I work at the intersection of software architecture, full-stack engineering, and intelligent/adaptive software. My interest is not just in delivering an application, but in the decisions that let a system remain understandable under change: boundaries, state, failure modes, testability, and the trade-offs behind them.
My mathematical background informs that approach. It brings a preference for precise models, explicit assumptions, and implementations that make important behavior observable rather than accidental.
| Area | What I focus on |
|---|---|
| Architecture & system design | Establishing useful boundaries, modelling domains and APIs, and keeping systems maintainable as requirements change. |
| Backend & distributed concerns | Concurrency, distributed state, caching, messaging, reliability, and deliberate failure handling. |
| Full-stack delivery | Connecting backend design with product-facing interfaces instead of treating the frontend and backend as isolated concerns. |
| Intelligent & adaptive software | Exploring system architectures that observe execution, learn from feedback, and adapt behavior within explicit evaluation loops. |
| Research-driven engineering | Bringing mathematical reasoning and research questions into practical software design and prototypes. |
The repositories below are a deliberately small slice of my public work. Together, they show the direction of my open-source exploration: reusable engineering foundations, systems concerns, and research-oriented software—not a catalogue of every experiment.
An exploration of the architectural foundations of learning-native adaptive software: software that can observe its execution, learn from evidence, decide on adjustments, and evaluate the result. LNASF is the clearest expression of my interest in connecting software architecture with intelligent-system feedback loops.
Research software · Adaptive systems · Architecture
Browse the repositories for the supporting work around these themes, including system experiments, application engineering, and research implementations. I prefer to describe a project’s concrete design and limits in its own repository rather than inflate a profile-level summary.
Make the important behavior explicit.
- Start with the system’s responsibilities and the contracts between them.
- Treat concurrency, state, errors, and observability as design concerns—not late-stage fixes.
- Favor small, testable units and evidence-driven trade-offs over abstraction for its own sake.
- Use research as a source of better questions and models, then validate ideas in working software.
My work on intelligent software is architecture-led. Rather than using “AI” as a feature label, I am interested in the surrounding system: how it collects observations, represents feedback, makes decisions, constrains adaptation, and evaluates outcomes. The observe → learn → decide → adapt → evaluate loop explored in LNASF is a practical anchor for that direction.
My academic work is grounded in mathematics, with research interests spanning fixed-point and best-proximity-point theory, fuzzy analysis, and differential and integral equations. That foundation complements my engineering work: it encourages careful abstraction and analytical reasoning when building software systems.
For publications and scholarly record, visit my Google Scholar profile.
| Technologies and practices I use or explore in public work | |
|---|---|
| Languages | C#, TypeScript, JavaScript, Python |
| Systems & backend | .NET, ASP.NET Core, APIs, caching, messaging, distributed-state concerns |
| Frontend | React, Next.js, Angular,Blazor |
| Engineering practice | Domain modelling, testing, observability, reliability, maintainable system boundaries |
| Research direction | Adaptive software, learning systems, mathematical modelling |
GitHub is where I publish engineering experiments, frameworks, applications, and research-oriented implementations. Current public directions center on software architecture, distributed-system concerns, and intelligent/adaptive software—with an emphasis on making difficult system behavior concrete enough to inspect, test, and improve.
Explore: Portfolio · GitHub · Google Scholar
