diff --git a/config.toml b/config.toml index bf2701a..56e8257 100644 --- a/config.toml +++ b/config.toml @@ -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] diff --git a/content/_index.es.md b/content/_index.es.md index 67d54d2..d80de88 100644 --- a/content/_index.es.md +++ b/content/_index.es.md @@ -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! diff --git a/content/_index.md b/content/_index.md index 4bc5dc4..442ff71 100644 --- a/content/_index.md +++ b/content/_index.md @@ -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. diff --git a/content/archive/_index.es.md b/content/archive/_index.es.md new file mode 100644 index 0000000..8ce9fed --- /dev/null +++ b/content/archive/_index.es.md @@ -0,0 +1,4 @@ ++++ +title = "Archivo" +template = "archive.html" ++++ \ No newline at end of file diff --git a/content/blog/2018-07-05-expedition-to-peru.md b/content/blog/2018-07-05-expedition-to-peru.es.md similarity index 99% rename from content/blog/2018-07-05-expedition-to-peru.md rename to content/blog/2018-07-05-expedition-to-peru.es.md index f50f0d1..219a7c1 100644 --- a/content/blog/2018-07-05-expedition-to-peru.md +++ b/content/blog/2018-07-05-expedition-to-peru.es.md @@ -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 diff --git a/content/blog/2021-02-07-infrastructure-as-code.md b/content/blog/2021-02-07-infrastructure-as-code.md index 2624803..273ea12 100644 --- a/content/blog/2021-02-07-infrastructure-as-code.md +++ b/content/blog/2021-02-07-infrastructure-as-code.md @@ -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 diff --git a/content/blog/2025-02-17-gitea-open-source-github-alternative.md b/content/blog/2025-02-17-gitea-open-source-github-alternative.md index 449814a..aee55bb 100644 --- a/content/blog/2025-02-17-gitea-open-source-github-alternative.md +++ b/content/blog/2025-02-17-gitea-open-source-github-alternative.md @@ -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__ diff --git a/content/blog/2025-03-12-self-hosting-a-blog-in-2025.es.md b/content/blog/2025-03-12-self-hosting-a-blog-in-2025.es.md new file mode 100644 index 0000000..3962da3 --- /dev/null +++ b/content/blog/2025-03-12-self-hosting-a-blog-in-2025.es.md @@ -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! diff --git a/content/blog/2025-03-12-self-hosting-a-blog-in-2025.md b/content/blog/2025-03-12-self-hosting-a-blog-in-2025.md index c82c337..1a24900 100644 --- a/content/blog/2025-03-12-self-hosting-a-blog-in-2025.md +++ b/content/blog/2025-03-12-self-hosting-a-blog-in-2025.md @@ -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__ diff --git a/content/blog/_index.es.md b/content/blog/_index.es.md new file mode 100644 index 0000000..8fecf92 --- /dev/null +++ b/content/blog/_index.es.md @@ -0,0 +1,5 @@ ++++ +title = "Blog" +paginate_by = 10 # Show 5 posts per page. +sort_by = "date" ++++ \ No newline at end of file diff --git a/content/blog/_index.md b/content/blog/_index.md index 7d1e503..ad6e221 100644 --- a/content/blog/_index.md +++ b/content/blog/_index.md @@ -1,4 +1,5 @@ +++ title = "Blog" -paginate_by = 5 # Show 5 posts per page. -+++ \ No newline at end of file +paginate_by = 10 # Show 5 posts per page. +sort_by = "date" ++++ diff --git a/content/pages/_index.es.md b/content/pages/_index.es.md new file mode 100644 index 0000000..6d23e86 --- /dev/null +++ b/content/pages/_index.es.md @@ -0,0 +1,4 @@ ++++ +render = false +insert_anchor_links = "left" ++++ diff --git a/content/pages/about.es.md b/content/pages/about.es.md new file mode 100644 index 0000000..200ada1 --- /dev/null +++ b/content/pages/about.es.md @@ -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. diff --git a/content/pages/about.md b/content/pages/about.md index 05fdbfb..df1cca2 100644 --- a/content/pages/about.md +++ b/content/pages/about.md @@ -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. diff --git a/content/projects/_index.es.md b/content/projects/_index.es.md new file mode 100644 index 0000000..cea6264 --- /dev/null +++ b/content/projects/_index.es.md @@ -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 ++++ \ No newline at end of file