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
|
||||
# ]
|
||||
#
|
||||
taxonomies = [{ name = "tags" }]
|
||||
taxonomies = [{ name = "tags" }, { name = "categories" }]
|
||||
|
||||
# When set to "true", a search index is built from the pages and section
|
||||
# content for `default_language`.
|
||||
@ -214,13 +214,13 @@ index_format = "elasticlunr_json"
|
||||
[languages.es]
|
||||
title = "Aldo Funes"
|
||||
generate_feeds = true
|
||||
taxonomies = [{ name = "tags" }]
|
||||
taxonomies = [{ name = "tags" }, { name = "categories" }]
|
||||
build_search_index = true
|
||||
|
||||
#[languages.pt-PT]
|
||||
#title = "Aldo Funes"
|
||||
#generate_feeds = true
|
||||
#taxonomies = [{ name = "tags" }]
|
||||
#taxonomies = [{ name = "tags" }, { name = "categories" }]
|
||||
#build_search_index = true
|
||||
|
||||
[extra]
|
||||
|
@ -3,10 +3,10 @@ title = "Inicio"
|
||||
# Note we're not setting `paginate_by` here.
|
||||
|
||||
[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.
|
||||
#max_posts = 5 # Show 5 posts on the home page.
|
||||
section_path = "blog/_index.es.md" # Where to find your posts.
|
||||
max_posts = 5 # Show 5 posts on the home page.
|
||||
+++
|
||||
|
||||
# ¡Bienvenido a mi blog!
|
||||
|
@ -3,7 +3,7 @@ title = "Home"
|
||||
# Note we're not setting `paginate_by` here.
|
||||
|
||||
[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.
|
||||
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"
|
||||
description = "A mountaineering expedition to the Cordillera Blanca in Peru."
|
||||
title = "Expedición a Perú"
|
||||
description = "Crónica de una expedición a Perú."
|
||||
date = 2018-07-05
|
||||
updated = 2025-03-12
|
||||
|
@ -193,7 +193,7 @@ We can manage the parameters for each stack instance in separate files.
|
||||
|
||||
For example:
|
||||
|
||||
```text
|
||||
```
|
||||
├── src/
|
||||
│ ├── cluster.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`:
|
||||
|
||||
```plaintext
|
||||
```
|
||||
gitea.example.com {
|
||||
tls {
|
||||
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]
|
||||
tags = ["Self-Hosting", "CI/CD", "Linux", "Caddy", "Zola"]
|
||||
categories = ["Tutorials"]
|
||||
|
||||
[extra]
|
||||
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`:
|
||||
|
||||
```Caddyfile
|
||||
```
|
||||
aldofunes.com, www.aldofunes.com {
|
||||
tls {
|
||||
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"
|
||||
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"
|
||||
+++
|
||||
|
||||
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
|
||||
development, data analysis, and machine learning. I am always looking for new challenges and opportunities to learn and grow.
|
||||
**Software Engineering Manager**
|
||||
|
||||
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