feat: multi-language blog
All checks were successful
Deploy / build-and-test (push) Successful in 1m43s
All checks were successful
Deploy / build-and-test (push) Successful in 1m43s
This commit is contained in:
parent
3310529ec1
commit
2e184aae5e
@ -70,7 +70,7 @@ author = "Aldo Funes"
|
|||||||
# {name = "authors"}, # Basic definition: no feed or pagination
|
# {name = "authors"}, # Basic definition: no feed or pagination
|
||||||
# ]
|
# ]
|
||||||
#
|
#
|
||||||
taxonomies = [{ name = "tags" }]
|
taxonomies = [{ name = "tags" }, { name = "categories" }]
|
||||||
|
|
||||||
# When set to "true", a search index is built from the pages and section
|
# When set to "true", a search index is built from the pages and section
|
||||||
# content for `default_language`.
|
# content for `default_language`.
|
||||||
@ -214,13 +214,13 @@ index_format = "elasticlunr_json"
|
|||||||
[languages.es]
|
[languages.es]
|
||||||
title = "Aldo Funes"
|
title = "Aldo Funes"
|
||||||
generate_feeds = true
|
generate_feeds = true
|
||||||
taxonomies = [{ name = "tags" }]
|
taxonomies = [{ name = "tags" }, { name = "categories" }]
|
||||||
build_search_index = true
|
build_search_index = true
|
||||||
|
|
||||||
#[languages.pt-PT]
|
#[languages.pt-PT]
|
||||||
#title = "Aldo Funes"
|
#title = "Aldo Funes"
|
||||||
#generate_feeds = true
|
#generate_feeds = true
|
||||||
#taxonomies = [{ name = "tags" }]
|
#taxonomies = [{ name = "tags" }, { name = "categories" }]
|
||||||
#build_search_index = true
|
#build_search_index = true
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
|
@ -3,10 +3,10 @@ title = "Inicio"
|
|||||||
# Note we're not setting `paginate_by` here.
|
# Note we're not setting `paginate_by` here.
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
header = { title = "¡Hola! Soy Aldo", img = "img/profile.jpg", img_alt = "Aldo Funes, the blog's author" }
|
header = { title = "¡Hola! Soy Aldo", img = "img/profile.jpg", img_alt = "Aldo Funes, el autor del blog" }
|
||||||
|
|
||||||
#section_path = "blog/_index.md" # Where to find your posts.
|
section_path = "blog/_index.es.md" # Where to find your posts.
|
||||||
#max_posts = 5 # Show 5 posts on the home page.
|
max_posts = 5 # Show 5 posts on the home page.
|
||||||
+++
|
+++
|
||||||
|
|
||||||
# ¡Bienvenido a mi blog!
|
# ¡Bienvenido a mi blog!
|
||||||
|
@ -3,7 +3,7 @@ title = "Home"
|
|||||||
# Note we're not setting `paginate_by` here.
|
# Note we're not setting `paginate_by` here.
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
header = { title = "Welcome to my blog!", img = "img/profile.jpg", img_alt = "Aldo Funes, the blog's author" }
|
header = { title = "Hello! I'm Aldo", img = "img/profile.jpg", img_alt = "Aldo Funes, the blog's author" }
|
||||||
|
|
||||||
section_path = "blog/_index.md" # Where to find your posts.
|
section_path = "blog/_index.md" # Where to find your posts.
|
||||||
max_posts = 5 # Show 5 posts on the home page.
|
max_posts = 5 # Show 5 posts on the home page.
|
||||||
|
4
content/archive/_index.es.md
Normal file
4
content/archive/_index.es.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
+++
|
||||||
|
title = "Archivo"
|
||||||
|
template = "archive.html"
|
||||||
|
+++
|
@ -1,6 +1,6 @@
|
|||||||
+++
|
+++
|
||||||
title = "Expedition to Peru"
|
title = "Expedición a Perú"
|
||||||
description = "A mountaineering expedition to the Cordillera Blanca in Peru."
|
description = "Crónica de una expedición a Perú."
|
||||||
date = 2018-07-05
|
date = 2018-07-05
|
||||||
updated = 2025-03-12
|
updated = 2025-03-12
|
||||||
|
|
@ -193,7 +193,7 @@ We can manage the parameters for each stack instance in separate files.
|
|||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
```text
|
```
|
||||||
├── src/
|
├── src/
|
||||||
│ ├── cluster.tf
|
│ ├── cluster.tf
|
||||||
│ ├── host_servers.tf
|
│ ├── host_servers.tf
|
||||||
|
@ -118,7 +118,7 @@ docker compose up --detach
|
|||||||
|
|
||||||
We will use Caddy to handle HTTPS and reverse proxy requests for Gitea. Add the following to your `Caddyfile`:
|
We will use Caddy to handle HTTPS and reverse proxy requests for Gitea. Add the following to your `Caddyfile`:
|
||||||
|
|
||||||
```plaintext
|
```
|
||||||
gitea.example.com {
|
gitea.example.com {
|
||||||
tls {
|
tls {
|
||||||
dns cloudflare __CLOUDFLARE_TOKEN__
|
dns cloudflare __CLOUDFLARE_TOKEN__
|
||||||
|
190
content/blog/2025-03-12-self-hosting-a-blog-in-2025.es.md
Normal file
190
content/blog/2025-03-12-self-hosting-a-blog-in-2025.es.md
Normal file
@ -0,0 +1,190 @@
|
|||||||
|
+++
|
||||||
|
title = "Autoalojamiento de un Blog en 2025"
|
||||||
|
description = "Guía paso a paso para alojar tu propio sitio web usando Zola, Caddy y Gitea."
|
||||||
|
date = 2025-03-12
|
||||||
|
updated = 2025-03-12
|
||||||
|
|
||||||
|
[taxonomies]
|
||||||
|
tags = ["Autoalojamiento", "CI/CD", "Linux", "Caddy", "Zola"]
|
||||||
|
categories = ["Tutoriales"]
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
social_media_card = "img/social_cards/blog_self_hosting_a_blog_in_2025.jpg"
|
||||||
|
+++
|
||||||
|
|
||||||
|
## Introducción
|
||||||
|
|
||||||
|
[Zola](https://www.getzola.org/) es un generador de sitios estáticos escrito en Rust que es rápido, simple y fácil de usar. Este blog está
|
||||||
|
construido con Zola y alojado en un servidor Linux con [Caddy](https://caddyserver.com/) como servidor web.
|
||||||
|
|
||||||
|
Esta guía te guiará a través de la configuración de Zola y Caddy para autoalojar tu sitio web de manera eficiente.
|
||||||
|
|
||||||
|
## Requisitos previos
|
||||||
|
|
||||||
|
Antes de comenzar, asegúrate de tener lo siguiente:
|
||||||
|
|
||||||
|
1. **Un servidor Linux** – Estoy usando [Pop!_OS 24.04 LTS alpha](https://system76.com/cosmic/).
|
||||||
|
2. **Un nombre de dominio** apuntando a tu servidor – Yo uso [Cloudflare](https://www.cloudflare.com/).
|
||||||
|
3. **Un proxy inverso** – [Caddy](https://caddyserver.com/) cumple esta función.
|
||||||
|
4. **Una plataforma CI/CD** – Uso [Gitea](/blog/gitea-open-source-github-alternative) para despliegues automatizados.
|
||||||
|
5. **Una herramienta de análisis enfocada en la privacidad** – Uso [Plausible](https://plausible.io/).
|
||||||
|
|
||||||
|
## Instalación
|
||||||
|
|
||||||
|
### Paso 1: Instalar Zola
|
||||||
|
|
||||||
|
Como no hay un paquete precompilado para Pop!_OS 24.04 LTS alpha, instalaremos Zola desde el código fuente:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/getzola/zola.git
|
||||||
|
cd zola
|
||||||
|
cargo install --path . --locked
|
||||||
|
zola --version
|
||||||
|
```
|
||||||
|
|
||||||
|
### Paso 2: Crear un Nuevo Sitio
|
||||||
|
|
||||||
|
Inicializa un nuevo sitio con Zola:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
zola init blog
|
||||||
|
cd blog
|
||||||
|
git init
|
||||||
|
echo "public" > .gitignore
|
||||||
|
```
|
||||||
|
|
||||||
|
### Paso 3: Instalar un Tema de Zola
|
||||||
|
|
||||||
|
Uso el tema [tabi](https://github.com/welpo/tabi.git). Para instalarlo:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git submodule add https://github.com/welpo/tabi.git themes/tabi
|
||||||
|
```
|
||||||
|
|
||||||
|
### Paso 4: Configurar Zola y Tabi
|
||||||
|
|
||||||
|
Zola usa un archivo `config.toml` para la configuración. Aquí hay un ejemplo:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
base_url = "https://www.aldofunes.com"
|
||||||
|
title = "Aldo Funes"
|
||||||
|
description = "Ser humano en formación"
|
||||||
|
default_language = "es"
|
||||||
|
theme = "tabi"
|
||||||
|
compile_sass = false
|
||||||
|
minify_html = true
|
||||||
|
author = "Aldo Funes"
|
||||||
|
taxonomies = [{ name = "tags" }, { name = "categories" }]
|
||||||
|
build_search_index = true
|
||||||
|
|
||||||
|
[markdown]
|
||||||
|
highlight_code = true
|
||||||
|
highlight_theme = "css"
|
||||||
|
highlight_themes_css = [{ theme = "dracula", filename = "css/syntax.css" }]
|
||||||
|
render_emoji = true
|
||||||
|
external_links_class = "external"
|
||||||
|
external_links_target_blank = true
|
||||||
|
smart_punctuation = true
|
||||||
|
|
||||||
|
[search]
|
||||||
|
index_format = "elasticlunr_json"
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
stylesheets = ["css/syntax.css"]
|
||||||
|
remote_repository_url = "https://gitea.funes.me/aldo/blog"
|
||||||
|
remote_repository_git_platform = "gitea"
|
||||||
|
mermaid = true
|
||||||
|
show_previous_next_article_links = true
|
||||||
|
toc = true
|
||||||
|
favicon_emoji = "👾"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Paso 5: Agregar Contenido
|
||||||
|
|
||||||
|
Zola usa Markdown para la creación de contenido, y su estructura de directorios es intuitiva. Usa tu editor de texto favorito para empezar a
|
||||||
|
escribir artículos.
|
||||||
|
|
||||||
|
### Paso 6: Desplegar tu Sitio
|
||||||
|
|
||||||
|
Para servir el sitio con Caddy, coloca los archivos generados en `/www/blog` y configura Caddy con el siguiente `Caddyfile`:
|
||||||
|
|
||||||
|
```
|
||||||
|
aldofunes.com, www.aldofunes.com {
|
||||||
|
tls {
|
||||||
|
dns cloudflare __CLOUDFLARE_TOKEN__
|
||||||
|
resolvers 1.1.1.1
|
||||||
|
}
|
||||||
|
root * /www/blog
|
||||||
|
file_server
|
||||||
|
handle_errors {
|
||||||
|
rewrite * /{err.status_code}.html
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
header Cache-Control max-age=3600
|
||||||
|
header /static/* Cache-Control max-age=31536000
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Paso 7 (Opcional): Configurar un CDN
|
||||||
|
|
||||||
|
Usar Cloudflare como CDN mejora el rendimiento y la seguridad. Configura un registro DNS y habilita la protección de Cloudflare para
|
||||||
|
aprovechar la caché y la protección contra DDoS.
|
||||||
|
|
||||||
|
### Paso 8: Automatizar el Despliegue con CI/CD
|
||||||
|
|
||||||
|
Para automatizar los despliegues con Gitea, crea `.gitea/workflows/deploy.yaml`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
name: Deploy
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out repository code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: Check 🔍
|
||||||
|
uses: zolacti/on@check
|
||||||
|
with:
|
||||||
|
drafts: true
|
||||||
|
|
||||||
|
- name: Build 🛠
|
||||||
|
uses: zolacti/on@build
|
||||||
|
|
||||||
|
- name: Deploy 🚀
|
||||||
|
uses: appleboy/scp-action@v0.1.7
|
||||||
|
with:
|
||||||
|
host: ${{ vars.ATLAS_SSH_HOST }}
|
||||||
|
username: ${{ vars.ATLAS_SSH_USERNAME }}
|
||||||
|
key: ${{ secrets.ATLAS_SSH_KEY }}
|
||||||
|
port: ${{ vars.ATLAS_SSH_PORT }}
|
||||||
|
source: public
|
||||||
|
target: /www/blog
|
||||||
|
rm: true
|
||||||
|
overwrite: true
|
||||||
|
strip_components: 1
|
||||||
|
```
|
||||||
|
|
||||||
|
Configura estas variables de entorno en Gitea Actions:
|
||||||
|
|
||||||
|
- `ATLAS_SSH_HOST`
|
||||||
|
- `ATLAS_SSH_USERNAME`
|
||||||
|
- `ATLAS_SSH_PORT`
|
||||||
|
|
||||||
|
Y agrega la clave secreta:
|
||||||
|
|
||||||
|
- `ATLAS_SSH_KEY`
|
||||||
|
|
||||||
|
Estas credenciales permiten un despliegue seguro mediante SCP.
|
||||||
|
|
||||||
|
## Conclusión
|
||||||
|
|
||||||
|
Ahora tienes un sitio web completamente autoalojado con Zola y Caddy. Con CI/CD automatizado mediante Gitea, puedes concentrarte en escribir
|
||||||
|
contenido mientras Gitea maneja el despliegue. ¡Disfruta de tu blog autoalojado!
|
@ -6,6 +6,7 @@ updated = 2025-03-12
|
|||||||
|
|
||||||
[taxonomies]
|
[taxonomies]
|
||||||
tags = ["Self-Hosting", "CI/CD", "Linux", "Caddy", "Zola"]
|
tags = ["Self-Hosting", "CI/CD", "Linux", "Caddy", "Zola"]
|
||||||
|
categories = ["Tutorials"]
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
social_media_card = "img/social_cards/blog_self_hosting_a_blog_in_2025.jpg"
|
social_media_card = "img/social_cards/blog_self_hosting_a_blog_in_2025.jpg"
|
||||||
@ -106,7 +107,7 @@ Zola uses Markdown for content creation, and its directory structure is intuitiv
|
|||||||
|
|
||||||
To serve the site with Caddy, place the generated files in `/www/blog` and configure Caddy with the following `Caddyfile`:
|
To serve the site with Caddy, place the generated files in `/www/blog` and configure Caddy with the following `Caddyfile`:
|
||||||
|
|
||||||
```Caddyfile
|
```
|
||||||
aldofunes.com, www.aldofunes.com {
|
aldofunes.com, www.aldofunes.com {
|
||||||
tls {
|
tls {
|
||||||
dns cloudflare __CLOUDFLARE_TOKEN__
|
dns cloudflare __CLOUDFLARE_TOKEN__
|
||||||
|
5
content/blog/_index.es.md
Normal file
5
content/blog/_index.es.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
+++
|
||||||
|
title = "Blog"
|
||||||
|
paginate_by = 10 # Show 5 posts per page.
|
||||||
|
sort_by = "date"
|
||||||
|
+++
|
@ -1,4 +1,5 @@
|
|||||||
+++
|
+++
|
||||||
title = "Blog"
|
title = "Blog"
|
||||||
paginate_by = 5 # Show 5 posts per page.
|
paginate_by = 10 # Show 5 posts per page.
|
||||||
+++
|
sort_by = "date"
|
||||||
|
+++
|
||||||
|
4
content/pages/_index.es.md
Normal file
4
content/pages/_index.es.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
+++
|
||||||
|
render = false
|
||||||
|
insert_anchor_links = "left"
|
||||||
|
+++
|
107
content/pages/about.es.md
Normal file
107
content/pages/about.es.md
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
+++
|
||||||
|
title = "Sobre Mí"
|
||||||
|
template = "info-page.html"
|
||||||
|
path = "es/about"
|
||||||
|
+++
|
||||||
|
|
||||||
|
# Aldo Funes Minutti
|
||||||
|
|
||||||
|
**Gerente de Ingeniería de Software**
|
||||||
|
|
||||||
|
Soy un profesional de la ingeniería de software orientado a resultados con un historial comprobado de crecimiento en equipos de desarrollo.
|
||||||
|
Soy un aprendiz autodidacta apasionado por comprender el funcionamiento interno de sistemas complejos. Cuento con más de 12 años de
|
||||||
|
experiencia progresiva en arquitectura y desarrollo de software en productos y servicios B2B y B2C.
|
||||||
|
|
||||||
|
Disfruto del buceo SCUBA, el montañismo y la fotografía con mi esposa, Karen.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Habilidades
|
||||||
|
|
||||||
|
- TypeScript
|
||||||
|
- Rust
|
||||||
|
- DevOps
|
||||||
|
- Infraestructura como Código
|
||||||
|
- Gestión de Proyectos
|
||||||
|
- Liderazgo Técnico
|
||||||
|
- Empoderamiento de Desarrolladores
|
||||||
|
- Comunicación Efectiva
|
||||||
|
|
||||||
|
## Idiomas
|
||||||
|
|
||||||
|
- Español (Nativo)
|
||||||
|
- Inglés (Nativo o Bilingüe)
|
||||||
|
- Portugués (Competencia Laboral)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Experiencia
|
||||||
|
|
||||||
|
### **Airtm (Fintech) – Gerente de Ingeniería de Software**
|
||||||
|
|
||||||
|
*Junio 2018 – Presente*
|
||||||
|
|
||||||
|
- Lidero un equipo de 8 desarrolladores, siendo responsable de:
|
||||||
|
- Infraestructura, garantizando soluciones escalables y rentables en la nube.
|
||||||
|
- Pipelines CI/CD, optimizando el despliegue de software y reduciendo la intervención manual.
|
||||||
|
- 6 Microservicios clave para el negocio de Airtm, asegurando confiabilidad y alta disponibilidad.
|
||||||
|
- Experiencia del Desarrollador, mejorando los flujos de trabajo y la eficiencia del equipo.
|
||||||
|
- Diseñé y ejecuté nuevos flujos operativos y características con tasas mínimas de error, mejorando la estabilidad del sistema.
|
||||||
|
- Renové estrategias de observabilidad, implementando mejores mecanismos de monitoreo, registro y alertas.
|
||||||
|
- Reduje los costos de infraestructura en un 60% mediante la optimización de microservicios, orquestación de contenedores y asignación de
|
||||||
|
recursos.
|
||||||
|
- Disminuí en un 90% el tiempo dedicado a pruebas, compilaciones y despliegues mediante la integración de automatización avanzada de CI/CD,
|
||||||
|
aumentando la productividad.
|
||||||
|
- Incrementé la cadencia de despliegues de uno cada dos semanas a varios por día, acelerando la entrega de funcionalidades.
|
||||||
|
- Automatizé la detección y prevención de amenazas cibernéticas, fortaleciendo la seguridad y el cumplimiento del sistema.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **LOVIS (B2B SaaS) – Director de Innovación**
|
||||||
|
|
||||||
|
*Julio 2011 – Junio 2018*
|
||||||
|
|
||||||
|
- Lideré la arquitectura y desarrollo de herramientas de integración para sistemas de e-commerce y logística, permitiendo integraciones
|
||||||
|
fluidas con terceros.
|
||||||
|
- Dirigí la migración a la nube pública de AWS, reduciendo costos de infraestructura en un 30% mediante la gestión optimizada de recursos.
|
||||||
|
- Diseñé e implementé una arquitectura de alta disponibilidad, aumentando el tiempo de actividad anual en un 80%.
|
||||||
|
- Automatizé tareas repetitivas, reduciendo el tiempo dedicado a operaciones diarias en un 95% y aumentando la eficiencia empresarial.
|
||||||
|
- Trabajé en estrecha colaboración con clientes y partes interesadas para alinear soluciones técnicas con las necesidades del negocio,
|
||||||
|
asegurando la adopción exitosa de productos.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **MENT (Servicios Profesionales) – Arquitecto de la Nube**
|
||||||
|
|
||||||
|
*Marzo 2017 – Abril 2018*
|
||||||
|
|
||||||
|
- Diseñé e implementé un backend sin servidor para la plataforma Q Swimwear, reduciendo significativamente los costos operativos mientras
|
||||||
|
mejoraba la escalabilidad.
|
||||||
|
- Lideré sesiones de recolección de requisitos con clientes para traducir necesidades comerciales en especificaciones técnicas.
|
||||||
|
- Desarrollé un sistema administrativo para una fábrica textil, integrando el seguimiento de producción con plataformas de comercio
|
||||||
|
electrónico, mejorando el cumplimiento de pedidos y las notificaciones a clientes.
|
||||||
|
- Mejoré la seguridad de aplicaciones en la nube mediante la implementación de control de acceso basado en roles y mecanismos de
|
||||||
|
autenticación.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### **Beaming Technologies (Servicios Profesionales) – Fundador y CEO**
|
||||||
|
|
||||||
|
*Junio 2015 – Enero 2017*
|
||||||
|
|
||||||
|
- Definí e implementé estrategias empresariales y técnicas para una empresa de servicios tecnológicos.
|
||||||
|
- Lideré el diseño, desarrollo, pruebas y despliegue de múltiples aplicaciones web y sitios para clientes en diversas industrias.
|
||||||
|
- Gestioné relaciones con clientes, recopilando comentarios para mejorar los servicios y aumentar la satisfacción del cliente.
|
||||||
|
- Construí un equipo de desarrollo remoto, optimizando la productividad mediante herramientas de comunicación y colaboración efectivas.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Educación
|
||||||
|
|
||||||
|
### **Tec de Monterrey – Ingeniero en Negocios y Tecnologías de Información**
|
||||||
|
|
||||||
|
*Agosto 2013 – Mayo 2018*
|
||||||
|
|
||||||
|
- Fui galardonado con el **Premio Ceneval al Desempeño de Excelencia-EGEL** por alto rendimiento académico.
|
||||||
|
- Realicé un semestre de estudios en Edge Hill University, Inglaterra.
|
||||||
|
- Fui finalista en un concurso patrocinado por un banco para el desarrollo de software fintech.
|
@ -4,7 +4,89 @@ template = "info-page.html"
|
|||||||
path = "about"
|
path = "about"
|
||||||
+++
|
+++
|
||||||
|
|
||||||
I am Aldo Funes, a passionate engineer capable of putting together the most complex workflows, and enjoying every bit.
|
# Aldo Funes Minutti
|
||||||
|
|
||||||
I am a software engineer with a strong background in computer science and a passion for technology. I have experience in software
|
**Software Engineering Manager**
|
||||||
development, data analysis, and machine learning. I am always looking for new challenges and opportunities to learn and grow.
|
|
||||||
|
Target-driven software engineering professional with a proven track record of growing software engineering teams. Avid self-learner, with a
|
||||||
|
passion for understanding the inner workings of complex systems. Over 14 years of progressive experience in software architecture and
|
||||||
|
development, in B2B and B2C products and services.
|
||||||
|
|
||||||
|
I enjoy SCUBA diving, mountaineering, and photography with my wife, Karen.
|
||||||
|
|
||||||
|
## Skills
|
||||||
|
|
||||||
|
- TypeScript
|
||||||
|
- Rust
|
||||||
|
- DevOps
|
||||||
|
- Infrastructure as Code
|
||||||
|
- Project Management
|
||||||
|
- Technical Leadership
|
||||||
|
- Developer Empowerment
|
||||||
|
- Effective Communication
|
||||||
|
|
||||||
|
## Languages
|
||||||
|
|
||||||
|
- Spanish (Native)
|
||||||
|
- English (Native or Bilingual proficiency)
|
||||||
|
- Portuguese (Working proficiency)
|
||||||
|
|
||||||
|
## Experience
|
||||||
|
|
||||||
|
### **Airtm (Fintech) – Software Engineering Manager**
|
||||||
|
|
||||||
|
*June 2018 – Present*
|
||||||
|
|
||||||
|
- Leading a team of 8 developers, responsible for:
|
||||||
|
- Infrastructure, ensuring scalable and cost-effective cloud solutions.
|
||||||
|
- CI/CD Pipelines, streamlining software deployment and reducing manual intervention.
|
||||||
|
- 6 Microservices Core to Airtm's Business, ensuring reliability and high availability.
|
||||||
|
- Developer Experience, improving workflows and efficiency within the team.
|
||||||
|
- Designed and executed new operational workflows and features with minimal error rates, leading to increased system stability.
|
||||||
|
- Revamped observability strategies, implementing better monitoring, logging, and alerting mechanisms.
|
||||||
|
- Reduced infrastructure costs by 60% after optimizing microservices, container orchestration, and resource allocation.
|
||||||
|
- Reduced time spent executing tests, builds, and deployments by 90% by integrating advanced CI/CD automation, leading to improved
|
||||||
|
productivity.
|
||||||
|
- Increased deployment cadence from one biweekly deployment to several deployments per day, accelerating feature delivery.
|
||||||
|
- Automated cybersecurity threat detection and prevention, strengthening system security and compliance.
|
||||||
|
|
||||||
|
### **LOVIS (B2B SaaS) – Chief Innovation Officer**
|
||||||
|
|
||||||
|
*July 2011 – June 2018*
|
||||||
|
|
||||||
|
- Spearheaded the architecture and development of integration tools for e-commerce and logistics systems, enabling seamless third-party
|
||||||
|
integrations.
|
||||||
|
- Led the migration to AWS’s public cloud, reducing infrastructure costs by 30% through optimized resource management.
|
||||||
|
- Designed and implemented a high-availability system architecture, increasing yearly uptime by 80%.
|
||||||
|
- Automated repetitive tasks, reducing time spent on daily operational activities by 95%, increasing overall business efficiency.
|
||||||
|
- Worked closely with clients and stakeholders to align technical solutions with business needs, ensuring successful product adoption.
|
||||||
|
|
||||||
|
### **MENT (Professional Services) – Cloud Architect**
|
||||||
|
|
||||||
|
*March 2017 – April 2018*
|
||||||
|
|
||||||
|
- Designed and implemented a serverless backend for the Q Swimwear platform, significantly reducing operational costs while improving
|
||||||
|
scalability.
|
||||||
|
- Led requirements gathering sessions with clients to translate business needs into technical specifications.
|
||||||
|
- Developed an administrative system for a textile factory, integrating production tracking with e-commerce platforms, improving order
|
||||||
|
fulfillment and customer notifications.
|
||||||
|
- Enhanced cloud-based application security by implementing role-based access control and authentication mechanisms.
|
||||||
|
|
||||||
|
### **Beaming Technologies (Professional Services) – Founder & CEO**
|
||||||
|
|
||||||
|
*June 2015 – January 2017*
|
||||||
|
|
||||||
|
- Defined and implemented business and technical strategies for a technology-focused service company.
|
||||||
|
- Led the design, development, testing, and deployment of multiple web applications and sites for clients in different industries.
|
||||||
|
- Managed client relationships, gathering feedback to refine service offerings and improve customer satisfaction.
|
||||||
|
- Built a remote-first development team, optimizing productivity through effective communication and collaboration tools.
|
||||||
|
|
||||||
|
## Education
|
||||||
|
|
||||||
|
### **Tec de Monterrey – Bachelor of Science in Business Informatics**
|
||||||
|
|
||||||
|
*August 2013 – May 2018*
|
||||||
|
|
||||||
|
- Awarded **Premio Ceneval al Desempeño de Excelencia-EGEL** for high performance.
|
||||||
|
- Spent one semester at Edge Hill University, England.
|
||||||
|
- Finalist in a bank-sponsored fintech software development contest.
|
||||||
|
10
content/projects/_index.es.md
Normal file
10
content/projects/_index.es.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
+++
|
||||||
|
title = "Proyectos"
|
||||||
|
sort_by = "weight"
|
||||||
|
template = "cards.html"
|
||||||
|
insert_anchor_links = "left"
|
||||||
|
|
||||||
|
[extra]
|
||||||
|
show_reading_time = false
|
||||||
|
quick_navigation_buttons = true
|
||||||
|
+++
|
Loading…
x
Reference in New Issue
Block a user