Files
davidaragon-portfolio/src/pages/about.astro
T
root 6f3c58bfcd
CI/CD Pipeline / Build & Deploy (pull_request) Successful in 29s
docs: add last site update marker on about page
2026-07-09 15:38:25 +00:00

303 lines
14 KiB
Plaintext

---
import BaseLayout from '../layouts/BaseLayout.astro';
import Header from '../components/layout/Header.astro';
import Footer from '../components/layout/Footer.astro';
---
<BaseLayout
title="About"
description="Spanish builder. From goldsmith to photographer to developer. Building products and sharing the journey."
>
<Header />
<main class="flex-1 max-w-4xl mx-auto px-4 sm:px-6 lg:px-8 py-12">
<article class="prose prose-invert prose-lg max-w-none">
<h1 class="text-4xl font-bold mb-8">About Me</h1>
<div class="flex flex-col md:flex-row gap-8 mb-8 not-prose">
<div class="flex-shrink-0">
<img
src="/david-aragon.jpg"
alt="David Aragón"
class="w-48 h-48 rounded-full object-cover border-4 border-primary/20"
/>
</div>
<div class="flex-1">
<h2 class="text-2xl font-semibold mb-4 text-text-primary">Hi 👋</h2>
<p class="text-text-secondary text-lg leading-relaxed">
I'm David, a Spanish builder. I didn't start in tech — I was a goldsmith, then a professional
photographer for 13 years, instructor for LinkedIn Learning, and developer. Now I build products
that solve real problems.
</p>
</div>
</div>
<section class="mb-12">
<h2 class="text-3xl font-semibold mb-4">The Path</h2>
<p class="text-text-secondary leading-relaxed mb-4">
I started working with metal as a goldsmith. One day I got interested in photography,
and that obsession led me to build my own brand for 13 years. When I couldn't
afford the equipment I needed, I improvised. I built supports, modified
accessories, made what I had work.
</p>
<p class="text-text-secondary leading-relaxed mb-4">
That same drive led me to learn Python, build my own 3D printer from scratch,
work at Qloudea developing internal tools while managing social media
and providing technical support. Then Python developer at NTT Data, and now I work at KEO
Connectivity with IoT protocols for energy systems (EEBUS).
</p>
<p class="text-text-secondary leading-relaxed mb-4">
<strong class="text-text-primary">The pattern is always the same:</strong> identify a
problem, obsess over solving it, learn whatever it takes to fix it.
</p>
</section>
<section class="mb-12">
<h2 class="text-3xl font-semibold mb-4">What I'm Doing Now</h2>
<p class="text-text-secondary leading-relaxed mb-4">
I work full-time at KEO as Field Application Engineer, where I handle technical
documentation, workflow automation, internal tools, and customer-facing support.
</p>
<p class="text-text-secondary leading-relaxed mb-4">
<em class="text-text-tertiary text-sm">
Last site update: 2026-07-09 (build sha visible in the CI run that produced this
version of the page).
</em>
</p>
<p class="text-text-secondary leading-relaxed mb-4">
In parallel, I'm building <strong class="text-primary">WarrantyHub</strong> — a platform
for end users to manage warranties for their home products from one place.
It's a problem I had myself, and I discovered all my friends and family have the same problem.
</p>
<p class="text-text-secondary leading-relaxed mb-4">
I also work on other experimental projects: productivity CLIs, automation tools,
Discord bots, and templates to accelerate Python development.
</p>
</section>
<section class="mb-12">
<h2 class="text-3xl font-semibold mb-4">Current Projects</h2>
<div class="space-y-4">
<div class="bg-surface p-5 rounded-lg border border-text-tertiary/20">
<h3 class="text-lg font-semibold text-primary mb-2">WarrantyHub</h3>
<p class="text-text-secondary text-sm">
Digital home warranty manager. Self-hosted PWA with freemium model.
Stack: React + FastAPI + PostgreSQL.
</p>
</div>
<div class="bg-surface p-5 rounded-lg border border-text-tertiary/20">
<h3 class="text-lg font-semibold text-primary mb-2">Python Project Template</h3>
<p class="text-text-secondary text-sm">
Opinionated template for Python projects: uv, ruff, mypy, pytest, Docker, Portainer.
CI/CD with Gitea Actions.
</p>
</div>
<div class="bg-surface p-5 rounded-lg border border-text-tertiary/20">
<h3 class="text-lg font-semibold text-primary mb-2">Hermes Stack</h3>
<p class="text-text-secondary text-sm">
Hermes Agent gateway stack for QNAP/Portainer. Automation with AI agents
for infrastructure management.
</p>
</div>
<div class="bg-surface p-5 rounded-lg border border-text-tertiary/20">
<h3 class="text-lg font-semibold text-primary mb-2">Other Experiments</h3>
<p class="text-text-secondary text-sm">
Discord bots (iRacing), automation tools (Portainer backups),
utility scripts (FLAC tagging, cookie extraction), and more.
</p>
</div>
</div>
</section>
<section class="mb-12">
<h2 class="text-3xl font-semibold mb-4">Self-Hosted Infrastructure</h2>
<p class="text-text-secondary leading-relaxed mb-4">
All my projects run on local self-hosted infrastructure. I prefer to have complete
control over the stack and keep costs low while experimenting.
</p>
<div class="bg-surface p-6 rounded-lg border border-primary/20">
<h3 class="text-xl font-semibold mb-4 text-primary">Current Stack</h3>
<ul class="space-y-2 text-text-secondary">
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span><strong class="text-text-primary">Local physical server</strong> -
Main Docker host</span>
</li>
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span><strong class="text-text-primary">Portainer</strong> - Stack and container
orchestration</span>
</li>
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span><strong class="text-text-primary">Gitea</strong> -
Git hosting + Docker registry + CI/CD</span>
</li>
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span><strong class="text-text-primary">MinIO</strong> - Object storage (S3-compatible)</span>
</li>
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span><strong class="text-text-primary">Nginx Proxy Manager</strong> - Reverse proxy
with automatic SSL (Let's Encrypt)</span>
</li>
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span><strong class="text-text-primary">PostgreSQL</strong> - Main database
for applications</span>
</li>
</ul>
<p class="text-text-secondary text-sm mt-4">
Fully automated CI/CD: push to main → build image → push to registry →
deploy to Portainer. Everything on local infrastructure.
</p>
</div>
</section>
<section class="mb-12">
<h2 class="text-3xl font-semibold mb-4">Why Build in Public</h2>
<ul class="space-y-3">
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span class="text-text-secondary">
<strong class="text-text-primary">Accountability:</strong> It's harder to quit
when you share progress publicly
</span>
</li>
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span class="text-text-secondary">
<strong class="text-text-primary">Teaching:</strong> I've always been an instructor
(LinkedIn Learning, Podcast CulturaNAS 2000+ subs). Sharing what I learn is part of who I am
</span>
</li>
<li class="flex items-start">
<span class="text-primary mr-2">→</span>
<span class="text-text-secondary">
<strong class="text-text-primary">Community:</strong> I want to connect with other
Spanish builders on the same journey
</span>
</li>
</ul>
</section>
<section class="mb-12">
<h2 class="text-3xl font-semibold mb-4">Tech Stack</h2>
<div class="grid grid-cols-2 md:grid-cols-3 gap-4 not-prose">
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">Python</div>
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">FastAPI</div>
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">React</div>
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">TypeScript</div>
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">PostgreSQL</div>
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">Docker</div>
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">Tailwind CSS</div>
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">Astro</div>
<div class="bg-surface px-4 py-3 rounded-lg border border-text-tertiary/20">n8n</div>
</div>
</section>
<section class="mb-12">
<h2 class="text-3xl font-semibold mb-4">Experience</h2>
<div class="space-y-6">
<div class="bg-surface p-6 rounded-lg border border-text-tertiary/20">
<div class="flex items-start justify-between mb-2">
<h3 class="text-xl font-semibold text-primary">Field Application Engineer</h3>
<span class="text-sm text-text-tertiary whitespace-nowrap ml-4">2023 - Present</span>
</div>
<p class="text-text-secondary mb-2">KEO Connectivity (Germany)</p>
<p class="text-text-secondary text-sm">
EEBUS protocol for IoT energy systems (e-mobility, smart homes,
heat pumps). Technical documentation, automation with n8n, internal tools,
technical support.
</p>
</div>
<div class="bg-surface p-6 rounded-lg border border-text-tertiary/20">
<div class="flex items-start justify-between mb-2">
<h3 class="text-xl font-semibold text-primary">Python Developer</h3>
<span class="text-sm text-text-tertiary whitespace-nowrap ml-4">2022 - 2023</span>
</div>
<p class="text-text-secondary mb-2">NTT Data</p>
<p class="text-text-secondary text-sm">
Python development, Google Cloud, Kubernetes, BigQuery. Data analysis and BigData.
</p>
</div>
<div class="bg-surface p-6 rounded-lg border border-text-tertiary/20">
<div class="flex items-start justify-between mb-2">
<h3 class="text-xl font-semibold text-primary">ICT Instructor + Developer</h3>
<span class="text-sm text-text-tertiary whitespace-nowrap ml-4">2013 - 2022</span>
</div>
<p class="text-text-secondary mb-2">Qloudea + LinkedIn Learning</p>
<p class="text-text-secondary text-sm">
Development of internal tools (HTML5, CSS, JavaScript, Python, Django, Flutter).
Official instructor on NAS servers for professionals. Social media management, YouTube,
product photography.
</p>
</div>
<div class="bg-surface p-6 rounded-lg border border-text-tertiary/20">
<div class="flex items-start justify-between mb-2">
<h3 class="text-xl font-semibold text-primary">Professional Photographer</h3>
<span class="text-sm text-text-tertiary whitespace-nowrap ml-4">2003 - 2016</span>
</div>
<p class="text-text-secondary mb-2">Own Brand</p>
<p class="text-text-secondary text-sm">
13 years managing my own photography brand. Creator of CulturaNAS Podcast
(2000+ subscribers).
</p>
</div>
</div>
</section>
<section>
<h2 class="text-3xl font-semibold mb-4">Connect With Me</h2>
<p class="text-text-secondary mb-6">
Always open to talking with other builders, people interested in EEBUS/IoT,
or just curious people about building products.
</p>
<div class="flex flex-wrap gap-4 not-prose">
<a
href="https://twitter.com/davidaragon"
target="_blank"
rel="noopener noreferrer"
class="bg-primary/10 hover:bg-primary/20 text-primary px-6 py-3 rounded-lg
font-medium transition-colors border border-primary/20"
>
X (Twitter)
</a>
<a
href="https://linkedin.com/in/david-aragon-galiana"
target="_blank"
rel="noopener noreferrer"
class="bg-primary/10 hover:bg-primary/20 text-primary px-6 py-3 rounded-lg
font-medium transition-colors border border-primary/20"
>
LinkedIn
</a>
<a
href="https://github.com/davidaragon"
target="_blank"
rel="noopener noreferrer"
class="bg-primary/10 hover:bg-primary/20 text-primary px-6 py-3 rounded-lg
font-medium transition-colors border border-primary/20"
>
GitHub
</a>
<a
href="mailto:david@impresion3d.pro"
class="bg-secondary/10 hover:bg-secondary/20 text-secondary px-6 py-3 rounded-lg
font-medium transition-colors border border-secondary/20"
>
Email
</a>
</div>
</section>
</article>
</main>
<Footer />
</BaseLayout>