arifabds

Ingeniero informático · Backend y sistemas distribuidos

Arif Emre AbduşoğluConstruyo sistemas que aguantanbajo carga real.

La mayor parte de mi trabajo ocurre en el lado del software que nadie ve: los límites de las transacciones, las garantías de entrega y las costuras donde termina un servicio y empieza el siguiente. El caso de estudio de abajo es la versión medida y honesta de uno de esos sistemas.

Ubicación
Türkiye
Enfoque
Java · Spring · Kafka · Next.js
Estado
Abierto a oportunidades
  • 13servicios
  • 70.869líneas de backend
  • 55.022líneas de frontend
  • 1524pruebas automáticas

Perfil

A qué me dedico realmente

Soy ingeniero informático y trabajo de extremo a extremo: primero el modelo de dominio y la arquitectura de backend, después la interfaz que tiene que hacer que todo parezca sencillo. Me interesan sobre todo las partes que deciden si un sistema sobrevive a un mal día: qué ocurre cuando un mensaje se entrega dos veces, cuando una dependencia se cae, cuando dos escritores compiten.

En los últimos meses convertí un monolito modular en funcionamiento en una flota de trece servicios independientes sin romperlo: base de datos física por servicio, transactional outbox, consumidores idempotentes y cada lectura entre servicios sustituida por una proyección local alimentada desde el log de eventos. El monolito congelado permaneció intacto byte a byte durante todo el proceso, como referencia y como camino de vuelta.

Escribo el razonamiento junto al código. Cada regla arquitectónica de esa plataforma la impone algo que rompe la compilación, no una convención que se pide recordar; y la documentación que describe la API asíncrona es en sí misma una prueba.

Rol
Ingeniero informático · full-stack, orientado al backend
Stack principal
Java 21 · Spring Boot · PostgreSQL · Kafka
También
TypeScript · Next.js · Python · Go
Intereses
Consistencia distribuida · herramientas de desarrollo · LLM aplicados
Idiomas
Turco · Inglés

Proyecto principal

App in Handy

Una plataforma de confianza donde el valor vive en el match, no en la app.

Una aplicación nunca es buena en abstracto: es buena resolviendo un problema concreto de una persona concreta. App in Handy se construye sobre esa idea: la unidad de valor es el Match entre un problema y una app, y es eso lo que lleva la puntuación.

Esa idea de producto es justamente lo que hace interesante el sistema. Puntuaciones, señales de demanda, moderación, búsqueda y un asistente de IA leen el mismo contenido desde ángulos distintos, que es exactamente la situación en la que una única base de datos compartida se convierte en silencio en aquello que nadie se atreve a tocar. Por eso no hay una: hay trece servicios, cada uno dueño de sus propios datos, coordinándose a través de un log de eventos.

13

servicios

26

topics de eventos

1524

pruebas de backend

106

migraciones de esquema

Tres repositorios, tres ciclos de vida

  • platform13 servicios, un gateway de borde y 9 bibliotecas compartidasJava 21 · Spring Boot 3.5 · PostgreSQL · Kafka
  • web-uiLa interfaz del producto: renderizada en servidor, en cuatro idiomasNext.js 16 · React 19 · RSC-first · capa de datos de 4 niveles
  • landingLa superficie pública de marketing, desplegada por su cuentaNext.js 16 · OpenNext → Cloudflare Workers
api-gateway
  • identity
  • catalog
  • problem
  • scoring
  • social
  • moderation
  • search
  • media
  • notification
  • admin
  • ai
  • seed
  • billing
Kafka · event log
identity_dbcatalog_dbproblem_dbscoring_dbsocial_dbmoderation_dbnotification_dbai_dbseed_dbbilling_db
La flota: un borde, trece servicios, un log de eventos.

Otros proyectos paralelos

Lo que construí antes de este

Más pequeños, casi todos con forma de LLM, y cada uno me enseñó algo que acabó en la plataforma de arriba. Abre uno para el resumen, o entra en su página para la historia completa.

Generador de contenido con IAEn producciónUna extensión de Chrome que convierte cualquier página en materia prima.

Una extensión de navegador que lee la página en la que estás y genera contenido original a partir de ella: textos de producto, borradores de blog, publicaciones sociales. Dos cosas la separan de un simple envoltorio: un scraper de doble modo que pasa a la extracción en cliente cuando bloquean la petición del servidor, y una plataforma de evaluación que compara arquitecturas de IA usando un segundo modelo como juez imparcial.

  • Python
  • Flask
  • RAG
  • PostgreSQL
  • Vanilla JS
  • Chrome Extension
Sistema de gestión de propuestas con LLMTerminadoLeer propuestas antiguas para escribir las nuevas.

Desarrollado durante unas prácticas profesionales. El sistema ingiere las propuestas que la empresa ya tiene, deduce la estructura escondida en ellas y la convierte en una plantilla reutilizable; después redacta propuestas nuevas dentro de esa plantilla con generación aumentada por recuperación, de modo que el resultado suena a la empresa y no a un modelo de lenguaje.

  • Python
  • Flask
  • Next.js
  • React Query
  • PostgreSQL
  • Alembic
  • RAG
  • JWT
LLM Remote AssistantEn desarrolloEntra lenguaje natural, sale Python en un sandbox.

Un experimento para darle manos de verdad a un modelo de lenguaje. En lugar de un catálogo fijo de comandos, el modelo escribe Python para la petición concreta y una arquitectura de seguridad en tres capas decide si ese código puede ejecutarse. Un cliente móvil es la superficie de mando; un agente ligero en la máquina hace el trabajo.

  • Python
  • Flutter
  • Go
  • Rust
  • WebSocket
  • Sandboxing
  • LLM
Site-ChatEn desarrolloUna capa de conversación para cualquier URL.

Una plataforma de chat en tiempo real que asocia salas a direcciones web. Para las personas es un lugar donde comentar cualquier página (un artículo, un producto, un vídeo) con quienes también la están leyendo. Para las empresas es un widget incrustable que lleva esa misma conversación a su propio sitio.

  • Go
  • Next.js
  • TypeScript
  • WebSocket
  • PostgreSQL
  • JWT

Tecnologías

Con qué trabajo

Todo lo que aparece aquí se usa en código realmente publicado en alguno de los repositorios de arriba: es un inventario, no una lista de deseos.

Lenguajes

  • Java 21
  • TypeScript
  • Python
  • Go
  • Rust
  • SQL

Backend y datos

  • Spring Boot 3.5
  • Spring Cloud Gateway
  • Hibernate / JPA
  • Flyway
  • Maven
  • Kafka / Redpanda
  • PostgreSQL
  • Redis
  • Resilience4j
  • MapStruct

Frontend

  • Next.js 16
  • React 19
  • React Compiler
  • Tailwind v4
  • Zod
  • TanStack Query
  • Zustand
  • Radix UI

IA aplicada

  • RAG
  • pgvector
  • BGE-M3 embeddings
  • Structured outputs
  • LLM-as-a-Judge
  • Anthropic
  • Groq

Plataforma y herramientas

  • Docker
  • Docker Compose
  • Testcontainers
  • Toxiproxy
  • OpenTelemetry
  • Prometheus
  • Grafana
  • GitHub Actions
  • Cloudflare Workers

Contacto

Si algo de esto te resulta útil, me gustaría saberlo.

Estoy abierto a puestos de backend, plataforma y full-stack, y también a conversaciones que todavía no llevan un puesto adjunto.