1. Software Architecture & Modernization

    From designing new systems to assessing and modernizing existing applications, I focus on how technical decisions affect the system as a whole and throughout its lifecycle.

    Areas of focus

    • Architectural assessment and system design
    • Modular architectures, monoliths, and microservices
    • Domain-Driven Design and defining system boundaries
    • Legacy modernization and technical debt management
    • Evaluating and documenting architectural decisions
  2. Distributed Systems & Integration

    When multiple services, applications, and data sources need to work together, the reliability of their communication matters as much as the individual components.

    I approach data consistency, failure handling, performance, and observability as integral parts of distributed system design.

    Areas of focus

    • Distributed systems and service architectures
    • Synchronous and asynchronous communication
    • APIs, messaging, and event-driven systems
    • Data consistency, idempotency, and fault tolerance
    • Performance, capacity planning, and observability
  3. Enterprise & Industrial Software

    Enterprise applications and systems operating in the field often have very different requirements. One side emphasizes business processes and data integrity; the other deals with physical devices, communication protocols, and operational continuity.

    My experience in healthcare, energy, public-sector, and industrial systems has shaped how I design and integrate software across these environments.

    Areas of focus

    • Enterprise applications and systems integration
    • Industrial communications and OT/IT integration
    • SCADA, telemetry, and field data acquisition
    • Industrial communication protocols
    • Reliability, maintenance, and updates for critical systems
  4. Technical Leadership & Software Development

    Architectural decisions deliver value when they can be translated into working software. For that reason, I do not treat technical design and software delivery as separate concerns.

    Over the course of my career, I have taken responsibility for hands-on development, systems architecture, technical coordination, and team leadership.

    Areas of focus

    • Software development and technical design
    • Technical coordination of projects and development teams
    • Requirements analysis and technical planning
    • Code quality, maintainability, and technical reviews
    • Development, integration, and delivery processes

Platforms & Technologies

Different platforms. Common design principles.

Web applications, desktop software, mobile and cross-platform solutions, backend services, and industrial systems each bring their own technical constraints.

Rather than committing to a single technology or platform, I prefer to evaluate the tools and approaches that best fit the problem and the environment in which a system will operate.

Technology choices should account not only for what works today, but also for the cost of development, maintenance, integration, and future change.

Platform experience and areas of work

  • Web & enterprise applicationsBusiness applications, web platforms, APIs, and integrations
  • Desktop applicationsClient software and desktop-to-system integration
  • Mobile & cross-platformMobile and multi-platform application development approaches
  • Distributed & backend systemsServices, messaging, data processing, and reliability
  • Industrial & edge systemsField devices, telemetry, industrial communication, and edge software

Technical Capability Areas

Software development
Web, desktop, mobile, and service-based applications
Systems architecture
Distributed systems, service architectures, and modernization
Data systems
Relational and NoSQL databases, time series, and data processing
Integration
Enterprise systems, APIs, messaging, and industrial protocols
Infrastructure & operations
Linux, containers, deployment, and system operations
Research & development
Artificial intelligence, LLM-based systems, and emerging approaches

My Approach to Technology

I don't look for problems to fit a technology. I look for the right technology and architecture to solve the problem.

Over the years, I have worked across different programming languages, platforms, databases, and technology ecosystems. This breadth of experience has shaped an approach focused less on specific tools and more on understanding system requirements and choosing technologies that best address them.

For me, technology selection is not the starting point; it is the outcome of architectural evaluation. Existing system constraints, integration requirements, performance, maintainability, and long-term sustainability come before the choice of tools.

Research & practice

Artificial Intelligence & Emerging Technologies

Artificial intelligence is opening up new possibilities in software development, enterprise applications, and intelligent systems.

I am extending my architecture and software development experience through ongoing research and hands-on exploration in this area.

My current interests include LLM-based applications, AI-assisted development workflows, knowledge retrieval systems, and integrating AI capabilities into existing software architectures.

Alongside technical capabilities, I believe it is essential to evaluate reliability, cost, data security, and practical business value.

My Architectural Approach

  1. Understand the problem
  2. Evaluate alternatives
  3. Design
  4. Build
  5. Observe and improve

An architectural decision is tested not only during design, but also under real operating conditions.

That is why I consider business needs, team capabilities, operational constraints, risks, and long-term consequences alongside technical requirements.

Let's Work Together

If you are planning a new software system, modernizing existing applications, addressing integration challenges, or seeking an independent technical assessment, we can explore the right approach together.