Software Architect · Data Platform Engineer
Emre
Gülay.
Architecting software without black boxes—transparent to understand, effortless to scale, and secure by design.
Software architect and data platform engineer with more than twenty years of experience across enterprise software, distributed systems and modern data platforms. I favour practical engineering over unnecessary complexity, and treat security, maintainability and operability as architectural decisions rather than later additions.
01 // philosophy
Engineering philosophy
01
Designed to be maintained
The first release is the cheapest part of a system's life. Structure, naming and boundaries are chosen so the architecture can still be read, reasoned about and changed years later, without depending on the memory of whoever built it.
02
Understandable beats clever
An architecture that can be explained simply can also be scaled, secured and changed deliberately. Complexity that does not pay for itself is a cost, so practical engineering wins over unnecessary complexity.
03
Security is decided at the drawing board
Trust boundaries, least-privilege access and data protection are part of the architecture, not a checklist applied before go-live. Secrets belong in a secret store, never in code or configuration.
04
Control stays with the owner
Data lives on infrastructure its owner controls. Whether a system runs on a laptop, a private cluster or a public cloud, and which vendor or model it talks to, is a deployment choice rather than something the architecture imposes.
05
Governed, validated, repeatable
Anything that touches production data is validated before it runs, repeatable when it runs again and traceable afterwards. Arbitrary generated code and one-off manual actions do not belong on that path.
06
Verification is automated
Repetitive engineering and verification work is automated so it happens on every change rather than on request. Tests run against real databases and services, not imitations of them.
07
AI in proportion
A language model is a component within a larger system, not the system itself. It belongs in the parts of a process that genuinely benefit from non-deterministic reasoning, with deterministic code deciding what actually happens.
08
Built for the world as it is
Real data arrives inconsistent, real environments are constrained, and real systems have to be installed, reconfigured and operated long after the design discussions are over. Software that only works in the ideal case is not finished.
09
Show the work
A complete, working implementation argues for an approach better than any document. I publish production-inspired reference implementations rather than fragments, so that engineers, architects and platform teams can see how the pieces fit together.
areas of interest
- Software Architecture
- Distributed Data Processing
- Conversational Analytics & ML Platforms
- AI-powered ETL
- Secure Data Engineering
- Event-driven Systems
- JVM Ecosystem
- Open-source & Source-available Software
stack
- Languages
- JavaPythonSQLTypeScript
- Frameworks & Platforms
- Spring BootSpring AIApache SparkFastAPISvelteKit
- Data
- PostgreSQLMySQLApache KafkaRabbitMQApache ParquetRedisMinIO
- Identity, Security & AI
- HashiCorp VaultKeycloakOpenID ConnectLM StudioOpenAI-compatible APIs
- Infrastructure
- DockerDocker ComposeGoogle Cloud Platform
- Testing & Quality
- JUnit 5TestcontainerspytestPlaywrightVitest
02 // projects
Reference implementations
Production-inspired reference implementations. The principles stay constant; the approach is chosen per problem.
01
Kozmik Lahmacun
A governed conversational analytics and machine-learning platform for non-technical business users.
Translates natural-language requests into validated, versioned execution orders for trusted Apache Spark processing. Corporate datasets stay inside the controlled execution environment and are never processed by the LLM, which works only with authorised metadata and bounded result facts.
- No arbitrary SQL, generated Python or executable code ever reaches the data plane
- Natural-language reporting and predictive modelling with automatic algorithm comparison, in English and Turkish
- Results open as bilingual starter notebooks in the corporate Jupyter environment over short-lived presigned links
- Role-based, owner-scoped workspaces with an immutable audit trail
- Keycloak identity with AD/LDAP federation; Kafka, object-event and CSV intake into append-only Parquet
- One guided installer for a laptop evaluation or an air-gapped Kubernetes cluster, health-gated with an as-built record
Proprietary · private
02
Schema Serpent
An AI-powered Spring Boot service that maps messy vendor price files into PostgreSQL and exposes governed reporting through MCP.
Every vendor describes the same data with different column names, units, currencies and file formats. Schema Serpent sends only a small preview to an LLM, which proposes a deterministic transformation scenario; Java validates, dry-runs and executes it locally, keeping every import auditable, repeatable and cheap.
- AI maps once, Java executes forever: scenarios are validated, dry-run and replayed deterministically
- Watches an import directory for CSV, TSV, XLS and XLSX with chunked, concurrent, resumable ingestion
- Full price history converted to TRY using dated historical TCMB exchange-rate bulletins
- Ten parameterised MCP tools usable directly from Claude Desktop, no raw SQL
- Works with local LLMs via LM Studio or OpenAI-compatible APIs
PolyForm Noncommercial 1.0.0
more
03
Kebab Storm
A secure distributed ETL framework for Apache Spark.
Schema-driven data processing for large-scale analytics that protects sensitive information end to end. Sensitive fields are encrypted inside the pipeline itself, not bolted on at the storage layer.
- AES-256-GCM applied per field within distributed Spark processing
- Declared schemas govern transformation and validation instead of ad-hoc pipeline code
- HashiCorp Vault keeps cryptographic material out of code and configuration
- Governed Apache Parquet output, structured for downstream processing
04
Helpdesk
A modern Spring Boot reference application demonstrating enterprise backend engineering practices.
A compact, production-inspired backend showing how contemporary Spring patterns fit together in one coherent codebase.
- Three API styles over one domain model: REST, gRPC and Model Context Protocol served side by side, the REST API described by an OpenAPI specification
- Spring AI integrated as a scoped capability, not as the architecture
- Testcontainers-backed integration tests against real PostgreSQL with Vault-managed secrets
03 // contact
Get in touch
For conversations about architecture, data platforms or engineering practice, email is the most reliable way to reach me.