Skip to content
Software Engineer @ JCode Technologies

Hi, I'm
Luis Miguel García Marín

Software Engineer, AI Engineer, Full-Stack Developer, Computer Vision tinkerer

I build production software with AI at its core — LLM and generative-AI integrations for enterprise clients, computer-vision systems, and the full-stack web and mobile apps around them.

Málaga, Spain

Psst… click me!

AI assistant

Curious about something? Just ask.

My AI version knows my experience, projects and skills, answers in your language and takes you to the right page.

4+

years building software

6

projects showcased

18

courses with highest distinction

7

certifications

Experience

From computer vision to generative AI

4+ years shipping AI-powered products, from an internship in Germany to enterprise generative-AI projects in Spain.

Full experience

🏆3rd prize – Hackathon Data Challenge

Polo Digital de Málaga · IAT Metaverso (EDINT · FEMP & Ayuntamiento de Málaga)

  1. Software Engineer · JCode Technologies

    Apr 2025 – Present · 1 year, 7 months

    Málaga, SpainRemoteCurrent

    Full-stack architecture and generative-AI systems for enterprise clients in insurance, real estate, fintech, leisure, fashion and entertainment.

  2. Software Engineer · EDAG Group

    Dec 2023 – Dec 2024 · 1 year, 1 month

    Fulda, GermanyHybrid

    Full-stack development, testing and DevOps for internal tools and critical industrial systems in an international engineering company.

  3. Software Engineer Intern · EDAG Group

    Sep 2022 – Dec 2023 · 1 year, 4 months

    Fulda, GermanyOn-siteInternship

    Computer vision and IoT for smart-city and smart-parking use cases.

  • Python
  • TypeScript
  • OpenAI
  • LangChain
  • TensorFlow
  • PyTorch
  • Keras
  • OpenCV
  • React
  • Next.js
  • Angular
  • Flutter
  • Tailwind CSS
  • FastAPI
  • Flask
  • Spring Boot
  • Java
  • PostgreSQL
  • Docker
  • AWS
  • Azure DevOps
  • Vercel
  • Unity

Under the hood

How the assistant works

A small, production-minded LLM app. The full write-up, with architecture decisions, is in the repository.

One source of truth

All content lives in typed TypeScript files, in three languages. The same data renders these pages and becomes the assistant's knowledge, so they can never drift apart.

Grounded long-context answers

The whole knowledge base fits in the model's context window, so instead of a vector-database RAG pipeline the model sees everything — simpler and more accurate.

Prompt caching

The large, static part of the prompt comes first, so the provider caches it: follow-up questions reuse it at a fraction of the cost and start answering faster.

Tool calling & generative UI

The model can call typed tools to show project or contact cards, rendered as React components in the chat while the answer streams in.

Guardrails

Input validation, a sliding history window, per-IP and global rate limits, output caps and a hardened system prompt keep it safe and cheap to run.

Evaluated, not vibes

An eval suite checks factual accuracy, language matching, tool usage and prompt-injection resistance before changes ship.

Read the code & docs on GitHub