Skip to content
Ibrahim Halil KoyuncuEngineering & Product Studio

Engineering & Projects

What we can build — shown, not claimed.

Working proofs of concept that show what we can build for you. Each one starts with the outcome in plain language — open the technical details if you want to see how it works. They are built in-house, public and labelled for what they are; none of them is presented as client work.

How projects are labelled

Reference implementation
A complete, documented example intended to be reused as a starting point.
Educational demo
Built to accompany an article and explain a technique.
Proof of concept
Validates an approach end to end, with known simplifications.
Experiment
Early exploration; minimal documentation.

Projects

9 projects shown

AI / ML · Cloud-NativeReference implementation

From model training to a live, auto-scaling API — automatically

A pipeline that trains several versions of a model, picks the best one and puts it live as a service that grows and shrinks with demand. No manual hand-offs between data science and operations.

Useful for

  • Teams that train models but still deploy them by hand
  • Making machine-learning results reproducible and auditable
  • Serving models whose traffic goes up and down
Technical details

Kubeflow Pipelines + KServe: end-to-end MLOps on Kubernetes

Problem

Training, comparing and deploying models by hand is slow and hard to reproduce. Teams need a repeatable path from training run to a scalable inference endpoint.

Approach

A Kubeflow pipeline trains several models in parallel with different learning rates, selects the most accurate one and deploys it automatically as an auto-scaling KServe inference service, with artifacts stored in MinIO.

  • Kubeflow Pipelines
  • KServe
  • Knative
  • MinIO
  • TensorFlow
  • Kubernetes RBAC
  • Python
Infrastructure · Cloud-NativeReference implementation

Complete cloud environments on request, from a single definition

A team asks for an environment and gets networking, a Kubernetes cluster, a private database, secret storage and access rules — the same way every time, created and kept in shape automatically.

Useful for

  • Spinning up development and test environments in minutes
  • Enforcing company standards for every cloud resource
  • Self-service for developers without handing out full cloud access
Technical details

Crossplane Azure Environment Factory

Problem

Spinning up a complete team environment on Azure — networking, an AKS cluster, a private PostgreSQL database, Key Vault and access control — usually involves several tools and pipelines.

Approach

A single Kubernetes resource (a Crossplane claim) requests a full environment. A Composite Resource Definition and Composition encapsulate the infrastructure logic, and Crossplane reconciles every Azure resource from the Kubernetes control plane.

  • Crossplane
  • Azure
  • AKS
  • Azure Database for PostgreSQL
  • Azure Key Vault
  • Helm
  • Kubernetes
Infrastructure · Cloud-NativeEducational demo

Keep passwords and keys out of your code — whichever vault you use

Applications receive the credentials they need directly from a secure vault (HashiCorp Vault, AWS or Azure), so secrets never sit in source code or configuration files.

Useful for

  • Passing security reviews and audits
  • Organisations that use more than one cloud
  • Changing credentials without redeploying applications
Technical details

External secrets for Kubernetes: Vault, AWS and Azure

Problem

Applications need credentials, but storing secrets in code or plain manifests is risky, and many organisations use more than one secret manager.

Approach

One consistent pattern, three providers: each secret store is provisioned with Terraform, and the External Secrets Operator synchronises secrets from HashiCorp Vault, AWS Secrets Manager and Azure Key Vault into Kubernetes.

  • External Secrets Operator
  • HashiCorp Vault
  • AWS Secrets Manager
  • Azure Key Vault
  • Terraform
  • Helm
Cloud-Native · Data EngineeringEducational demo

Scale with the work that is waiting, not just with CPU

Background workers add capacity automatically when messages pile up in a queue, and scale down to save money when it is quiet.

Useful for

  • Background jobs and queue processing
  • Cutting the cost of idle servers
  • Absorbing traffic spikes without anyone stepping in
Technical details

Event-driven autoscaling with KEDA

Problem

Queue-driven workloads often sit idle or fall behind because CPU and memory are poor signals for how much work is waiting.

Approach

Producer and consumer services for AWS SQS and Kafka, plus a CPU-intensive workload, deployed with KEDA ScaledObjects that scale on queue length, consumer lag or CPU load.

  • KEDA
  • Kubernetes
  • Apache Kafka
  • AWS SQS
  • Python
  • Docker
AI / ML · Software ArchitectureProof of concept

AI agents that investigate alerts and explain their verdict

An AI assistant reviews each security event, decides which checks to run — login history, IP reputation, a web search — and writes a plain-language verdict, alerting the team only when the risk is high.

Useful for

  • Reducing alert fatigue in operations and security teams
  • Triaging large volumes of log events
  • Prototyping agent-based automation in a controlled way
Technical details

LLM-supervised multi-agent threat detection

Problem

Streams of security log events are too noisy for fixed rules alone, but sending everything to an analyst does not scale.

Approach

A LangGraph supervisor lets an LLM decide which tools to call for each event — heuristic scoring, a SQL lookup of recent logins, IP reputation, web search — and produce a plain-English verdict, alerting Slack when risk is high.

  • LangGraph
  • OpenAI API
  • SQLite
  • AbuseIPDB
  • Slack webhooks
  • Python
AI / ML · Data EngineeringEducational demo

Search that understands meaning, not just keywords

Find past support tickets that describe the same problem in different words, so answers are found faster.

Useful for

  • Customer-support knowledge bases
  • Internal document search
  • The retrieval layer behind an AI assistant
Technical details

Semantic search for support tickets with Qdrant

Problem

Keyword search misses support tickets that describe the same issue in different words.

Approach

Ticket text is embedded with Sentence Transformers, stored in a Qdrant vector database and queried through a FastAPI service that returns the most similar past tickets.

  • Qdrant
  • Sentence Transformers
  • FastAPI
  • Docker
  • Python
AI / MLEducational demo

Jump straight to the moment in a video that answers your question

Ask in plain language and get back the exact video segments where something is said or shown — without scrubbing through hours of footage.

Useful for

  • Training and tutorial libraries
  • Meeting and webinar archives
  • Media and content teams
Technical details

Multimodal video search with RAG

Problem

Finding a specific moment in long videos means scrubbing manually through them.

Approach

Spoken content and visual scenes are indexed with VideoDB and queried through LlamaIndex retrievers, returning and streaming only the relevant segments.

  • LlamaIndex
  • VideoDB
  • Python
Data Engineering · InfrastructureReference implementation

Run many data pipelines side by side without them breaking each other

Each pipeline is packaged separately but managed from one place, so a team can update its own pipeline without risking anyone else's.

Useful for

  • Growing collections of ETL jobs
  • Several teams sharing one data platform
  • Moving from scripts and cron jobs to proper orchestration
Technical details

Multiple Dagster data pipelines on Docker

Problem

Several data pipelines with different dependencies need to share one orchestrator without being packaged together.

Approach

A Docker Compose deployment in which the Dagster webserver and daemon load each pipeline from its own user-code container over gRPC, with PostgreSQL for run, schedule and event storage.

  • Dagster
  • Docker Compose
  • PostgreSQL
  • gRPC
  • Python
AI / MLExperiment

Turn loose machine-learning scripts into a tracked, repeatable workflow

Data preparation, processing and training run as one tracked pipeline, so every result can be traced back and run again.

Useful for

  • Teams taking their first steps in MLOps
  • Making experiments reproducible
Technical details

ClearML ML pipeline from tasks

Problem

Turning separate ML scripts into a tracked, repeatable pipeline.

Approach

Dataset artifact, data processing and training steps chained into a ClearML pipeline built from tasks.

  • ClearML
  • Python

Working on something similar?

If one of these approaches looks relevant to your environment, we're happy to discuss how it would apply.