Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,13 @@
"astro": "astro"
},
"dependencies": {
"@astrojs/check": "0.5.6",
"@astrojs/tailwind": "5.1.0",
"@fontsource-variable/onest": "5.0.2",
"astro": "4.4.5",
"@astrojs/check": "^0.9.4",
"@astrojs/tailwind": "^6.0.2",
"@fontsource-variable/onest": "^5.2.9",
"astro": "^5.12.0",
"astro-icon": "^1.1.5",
"astro-robots-txt": "1.0.0",
"tailwindcss": "3.4.1",
"typescript": "5.3.3"
"tailwindcss": "^3.4.17",
"typescript": "^5.8.3"
}
}
}
Binary file added public/geralddev.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified public/me.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed public/midudev.webp
Binary file not shown.
Binary file added public/projects/appclisbtm.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/projects/financeapi.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed public/projects/svgl.webp
Binary file not shown.
28 changes: 13 additions & 15 deletions src/components/AboutMe.astro
Original file line number Diff line number Diff line change
@@ -1,32 +1,30 @@
---
const personalImageAlt = "Miguel Ángel"
const personalImageAlt = "Gerald Caris"
---

<article class="flex flex-col items-center justify-center gap-8 text-gray-700 dark:text-gray-300 md:flex-row">
<div
class="[&>p]:mb-4 [&>p>strong]:text-yellow-500 dark:[&>p>strong]:text-yellow-100 [&>p>strong]:font-normal [&>p>strong]:font-mono text-pretty order-2 md:order-1"
>
<p>
Me llamo Miguel Ángel pero mis amigos me llaman midu. Empecé en la
programación con un Amstrad, tenía 10 años. Actualmente estoy <strong
>liderando equipos de desarrollo en multinacionales</strong
>.
👨‍💻 Soy padre, esposo y un profesional apasionado por el desarrollo de software. Disfruto tanto de programar
como de cocinar y jugar fútbol, buscando siempre el equilibrio entre lo personal y lo profesional.
</p>

<p>
Algunos de mis éxitos incluyen <strong
>colaborar con Mozilla para el desarrollo de las primeras apps en su
sistema FirefoxOS</strong
>. Aunque hoy está desaparecido fue un gran avance en el mundo del
desarrollo web.
💼 <strong>Cuento con sólida experiencia en desarrollo backend y frontend, liderando equipos en proyectos críticos.</strong>
Domino tecnologías como .NET Core, .NET Framework, desarrollo de Web Services y APIs RESTful,
además de participación activa en proyectos con Java, siempre enfocado en las buenas prácticas de desarrollo.
</p>

<p>
Como creador de contenido, <strong
>cuento con el canal de habla hispana más visto del mundo en la
categoría de <em class="italic">Software & Game Development</em> en Twitch</strong
>. Mi objetivo es mejorar la empleabilidad de la comunidad hispana y el
acceso a contenido de calidad.
🔄 He participado en <strong>procesos de migración e integración de servicios</strong> además me mantengo en constante capacitación
para estar al día con las nuevas tecnologías.
</p>
<p>
🚀 <strong>Me motiva integrarme a un equipo que utilice tecnologías de vanguardia</strong>, donde pueda aportar mi experiencia,
crecer profesionalmente y aprender del talento de otros. Me interesa especialmente conocer las metas del equipo y
cómo puedo ser parte activa en alcanzarlas.
</p>
</div>

Expand Down
33 changes: 24 additions & 9 deletions src/components/Experience.astro
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,34 @@
import ExperienceItem from "./ExperienceItem.astro"
const EXPERIENCE = [
{
date: "Actualmente...",
title: "Creador de Contenido",
company: "Twitch",
date: "Julio 2024 - Junio 2025",
title: "Developer Fullstack Senior",
company: "QINTESS SPA",
description:
"Divulgo sobre programación y desarrollo web en diferentes plataformas. Galardonado como mejor creador de contenido de habla no-inglesa en 2022 y mejor comunidad en 2023 por GitHub.",
link: "https://twitch.tv/midudev",
"Participé en desarrollo de Sistema ATS Empresarial con herramientas Open Source de acuerdo con los lineamientos de desarrollo, buenas prácticas y estándares de calidad, aportando siempre una mirada crítica y analítica.",
link: "https://www.linkedin.com/company/resource-it-solutions/about/"
},
{
date: "Septiembre 2022",
title: "Principal Frontend Engineer",
company: "Adevinta Spain",
date: "Agosto 2022 - Julio 2024",
title: "Developer Fullstack Senior",
company: "Banco Santander Chile",
description:
"Responsable de la plataforma, componentes y utilidades para la creación y desarrollo de aplicaciones web. Mejora de un 30% en la entrega de software. Implantación de medidas de integración continua y despliegue con A/B testing en más de 15 equipos.",
"Rediseñé módulo de Declaraciones Juradas y realicé primera Integración del Banco de una ApiGee IBM Watson ML en el Sistema de Tasaciones para obtener valores predictivos inmobiliarios, gestionando 30 y 50 solicitudes diarias con 100% de desempeño.",
},
{
date: "Noviembre 2015 - Agosto 2022",
title: "Analista Programador Semi Senior",
company: "Banco Itaú Chile",
description:
"Lideré equipos de desarrollo en mantenimiento correctivo dentro del entorno .NET, asegurando continuidad operativa y resolución eficaz de incidencias en aplicaciones críticas promoviendo buenas prácticas y formación continua del equipo. Participé en la fusión de Banco Itaú y CorpBanca, migrando datos de clientes y productos, e implementando funcionalidades clave usando WCF .NET, SQL Server, BCP y procesos ETL (DTSX). Coordiné con áreas clave para una integración exitosa."
},
{
date: "Abril 2013 - Septiembre 2015",
title: "Analista Programador Junior",
company: "Intelligenxia Spa",
description:
"Participé en la migración completa de la plataforma OptimEyes, modernizando el 100% de los desarrollos desde ASP.NET WebForms hacia una arquitectura más eficiente con ASP.NET MVC, jQuery, JavaScript, optimizando el rendimiento de los reportes y mejorando la experiencia de usuario.",
link: "https://www.linkedin.com/company/inteligenxia/about/",
},
]
---
Expand Down
4 changes: 2 additions & 2 deletions src/components/Footer.astro
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const currentYear = new Date().getFullYear()
>
<span class="text-sm sm:text-center text-zinc-800/90 dark:text-zinc-200/90"
>© {currentYear}
<a href="https://midu.dev/" class="hover:underline">midudev</a>. Casi
<a href="https://github.com/mcarisc/my-porfolio" class="hover:underline">My-Portfolio</a>. Casi
todos los derechos reservados
</span>
<ul
Expand All @@ -20,7 +20,7 @@ const currentYear = new Date().getFullYear()
<a href="/#sobre-mi" class="hover:underline me-4 md:me-6">Sobre mí</a>
</li>
<li>
<a id="contacto" href="mailto:miduga@gmail.com" class="hover:underline"
<a id="contacto" href="mailto:gerald.caris@outlook.com" class="hover:underline"
>Contacto</a
>
</li>
Expand Down
20 changes: 10 additions & 10 deletions src/components/Hero.astro
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
const personalImageAlt = "Miguel Ángel"
const personalImageAlt = "Gerald Caris"
import Badge from "@/components/Badge.astro"
import LinkedInIcon from "@/components/icons/LinkedIn.astro"
import MailIcon from "@/components/icons/Mail.astro"
Expand All @@ -10,11 +10,11 @@ import SocialPill from "@/components/SocialPill.astro"
<div class="flex gap-4 mb-4">
<img
class="rounded-full shadow-lg size-16"
src="/midudev.webp"
src="/geralddev.webp"
alt={personalImageAlt}
/>
<a
href="https://linkedin.com/in/midudev"
href="https://linkedin.com/in/geraldcaris"
target="_blank"
rel="noopener"
class="flex items-center transition md:justify-center md:hover:scale-105"
Expand All @@ -25,22 +25,22 @@ import SocialPill from "@/components/SocialPill.astro"
<h1
class="text-4xl font-bold tracking-tight text-gray-800 sm:text-5xl dark:text-white"
>
Hey, soy midudev
Hey, soy Gerald Caris
</h1>
<p
class="mt-6 text-xl text-gray-800 dark:[&>strong]:text-yellow-200 [&>strong]:text-yellow-500 [&>strong]:font-semibold dark:text-gray-300"
>
+15 años de experiencia. <strong
>Ingeniero de Software y Creador de Contenido sobre Programación</strong
> de Barcelona, España 🇪🇸. Especializado en el desarrollo de aplicaciones web
únicas.
+12 años de experiencia. <strong
>Ingeniero y Desarrollador de Software Full Stack</strong
> de Santiago, Chile 🇨🇱. Especializado en el desarrollo de soluciones
robustas y escalables.
</p>
<nav class="flex flex-wrap gap-4 mt-8">
<SocialPill href="mailto:miduga@gmail.com">
<SocialPill href="mailto:gerald.caris@outlook.com">
<MailIcon class="size-4" />
Contáctame
</SocialPill>
<SocialPill href="https://linkedin.com/in/midudev">
<SocialPill href="https://linkedin.com/in/geraldcaris">
<LinkedInIcon class="size-4" />
LinkedIn
</SocialPill>
Expand Down
81 changes: 69 additions & 12 deletions src/components/Projects.astro
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ import NextJS from "./icons/NextJS.astro"
import Tailwind from "./icons/Tailwind.astro"
import Link from "./icons/Link.astro"
import LinkButton from "./LinkButton.astro"
import Spring from "./icons/Spring.astro"
import Bootstrap from "./icons/Bootstrap.astro"
import Java from "./icons/Java.astro"
import Dotnet from "./icons/Dotnet.astro"
import Csharp from "./icons/Cscharp.astro"
import EF from "./icons/EF.astro"
import MySql from "./icons/MySql.astro"
import Sqlserver from "./icons/Sqlserver.astro"

const TAGS = {
NEXT: {
Expand All @@ -16,24 +24,73 @@ const TAGS = {
class: "bg-[#003159] text-white",
icon: Tailwind,
},
SPRING: {
name: "Spring Boot",
class: "bg-green-500 text-white",
icon: Spring,
},
BOOTSTRAP: {
name: "Bootstrap",
class: "bg-purple-500 text-white",
icon: Bootstrap,
},
JAVA: {
name: "Java",
class: "bg-white text-black",
icon: Java,
},
DOTNET: {
name: "Dotnet 8",
class: "bg-white text-black",
icon: Dotnet,
},
CSHARP: {
name: "CSharp",
class: "bg-purple-500 text-white",
icon: Csharp,
},
EF: {
name: "EF Core",
class: "bg-white text-black",
icon: EF,
},
MYSQL: {
name: 'My<span class="text-yellow-400">SQL</span>',
class: "bg-white text-blue-500",
icon: MySql,
},
SQLSERVER: {
name: `
<span class="flex flex-col items-center leading-none">
<span class="text-[8px] text-gray-500 font-semibold flex items-center gap-0.5">
Microsoft
<span class="text-[6px] align-super">®</span>
</span>
<span>SQLServer</span>
</span>
`,
class: "bg-white text-black",
icon: Sqlserver,
},
}
const PROJECTS = [
{
title: "SVGL - A beautiful library with SVG logos",
title: "Sistema de registro y autenticación de clientes con SpringBoot y Thymeleaf",
description:
"Biblioteca de logos SVG de las marcas más populares. +10k visitas al mes. +2K svgs descargados. Creado desde cero con Next.js, React y Tailwind CSS.",
link: "https://svgl.vercel.app/",
github: "https://github.com/pheralb/svgl",
image: "/projects/svgl.webp",
tags: [TAGS.NEXT, TAGS.TAILWIND],
"Aplicación web para la gestión y registro de clientes desarrollada desde cero con SpringBoot 3.x, JDK 17+, Thymeleaf y Bootstrap 5.",
link: "https://www.linkedin.com/in/geraldcaris/",
github: "https://github.com/mcarisc/registroClientes",
image: "/projects/appclisbtm.webp",
tags: [TAGS.JAVA, TAGS.SPRING, TAGS.BOOTSTRAP, TAGS.MYSQL],
},
{
title: "AdventJS - Retos de programación con JavaScript y TypeScript",
title: "FinanceApi RestFul con NET 8 y C#",
description:
"Plataforma gratuita con retos de programación. Más de 1 millón de visitas en un mes. +50K retos completados. Creada desde cero con Next.js, React y Tailwind CSS.",
link: "https://adventjs.dev",
image: "/projects/adventjs.webp",
tags: [TAGS.NEXT, TAGS.TAILWIND],
"API RestFul para la gestión de finanzas personales desarrollada desde cero con .NET 8, C# y Entity Framework Core.",
link: "https://www.linkedin.com/in/geraldcaris/",
github: "https://github.com/mcarisc/FinanceApi",
image: "/projects/financeapi.webp",
tags: [TAGS.DOTNET, TAGS.CSHARP, TAGS.EF, TAGS.SQLSERVER],
},
]
---
Expand All @@ -60,7 +117,7 @@ const PROJECTS = [
class={`flex gap-x-2 rounded-full text-xs ${tag.class} py-1 px-2 `}
>
<tag.icon class="size-4" />
{tag.name}
<span set:html={tag.name} />
</span>
</li>
))}
Expand Down
77 changes: 77 additions & 0 deletions src/components/icons/Bootstrap.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<svg
{...Astro.props}
xmlns="http://www.w3.org/2000/svg"
width="240"
height="240"
preserveAspectRatio="xMidYMid"
viewBox="0 0 240 240"
>
<g fill="none">
<rect width="256" height="256" fill="url(#skillIconsBootstrap0)" rx="60"
></rect>
<g filter="url(#skillIconsBootstrap2)">
<path
fill="url(#skillIconsBootstrap1)"
d="M131.97 196.157c29.676 0 47.559-14.531 47.559-38.497c0-18.117-12.759-31.232-31.706-33.309v-.754c13.92-2.265 24.843-15.192 24.843-29.628c0-20.57-16.239-33.969-40.986-33.969H76v136.157zM97.653 77.267h28.807c15.66 0 24.553 6.983 24.553 19.627c0 13.493-10.343 21.041-29.096 21.041H97.653zm0 101.623v-44.819h28.613c20.494 0 31.127 7.548 31.127 22.268c0 14.719-10.343 22.551-29.87 22.551z"
></path>
<path
stroke="#fff"
stroke-width="2"
d="M131.97 196.157c29.676 0 47.559-14.531 47.559-38.497c0-18.117-12.759-31.232-31.706-33.309v-.754c13.92-2.265 24.843-15.192 24.843-29.628c0-20.57-16.239-33.969-40.986-33.969H76v136.157zM97.653 77.267h28.807c15.66 0 24.553 6.983 24.553 19.627c0 13.493-10.343 21.041-29.096 21.041H97.653zm0 101.623v-44.819h28.613c20.494 0 31.127 7.548 31.127 22.268c0 14.719-10.343 22.551-29.87 22.551z"
></path>
</g>
<defs>
<linearGradient
id="skillIconsBootstrap0"
x1="0"
x2="256"
y1="0"
y2="256"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#9013fe"></stop>
<stop offset="1" stop-color="#6b11f4"></stop>
</linearGradient>
<linearGradient
id="skillIconsBootstrap1"
x1="85.793"
x2="148.541"
y1="68.962"
y2="175.084"
gradientUnits="userSpaceOnUse"
>
<stop stop-color="#fff"></stop>
<stop offset="1" stop-color="#f1e5fc"></stop>
</linearGradient>
<filter
id="skillIconsBootstrap2"
width="137.529"
height="170.157"
x="59"
y="47"
color-interpolation-filters="sRGB"
filterUnits="userSpaceOnUse"
>
<feFlood flood-opacity="0" result="BackgroundImageFix"
></feFlood>
<feColorMatrix
in="SourceAlpha"
result="hardAlpha"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
></feColorMatrix>
<feOffset dy="4"></feOffset>
<feGaussianBlur stdDeviation="8"></feGaussianBlur>
<feColorMatrix
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.15 0"
></feColorMatrix>
<feBlend
in2="BackgroundImageFix"
result="effect1_dropShadow_158_100"></feBlend>
<feBlend
in="SourceGraphic"
in2="effect1_dropShadow_158_100"
result="shape"></feBlend>
</filter>
</defs>
</g>
</svg>
20 changes: 20 additions & 0 deletions src/components/icons/Cscharp.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<svg
{...Astro.props}
xmlns="http://www.w3.org/2000/svg"
width="240"
height="240"
preserveAspectRatio="xMidYMid"
viewBox="0 0 240 240"
>
<g fill="none">
<rect width="256" height="256" fill="#953cad" rx="60"></rect>
<path
fill="#fff"
d="M195.436 100.668v13.474h13.474v-13.474h6.737v13.474h13.473v6.737h-13.473v13.473h13.473v6.737h-13.473v13.474h-6.737v-13.474h-13.474v13.474h-6.737v-13.474h-13.473v-6.737h13.473v-13.473h-13.473v-6.737h13.473v-13.474zm13.474 20.211h-13.474v13.473h13.474z"
></path>
<path
fill="#fff"
d="M122.001 33c35.143 0 65.827 19.086 82.261 47.456l-.16-.273l-41.349 23.808c-8.146-13.793-23.081-23.102-40.213-23.293l-.539-.003c-26.126 0-47.306 21.179-47.306 47.304a47.1 47.1 0 0 0 6.239 23.47c8.154 14.235 23.482 23.837 41.067 23.837c17.692 0 33.108-9.724 41.221-24.111l-.197.345l41.286 23.918c-16.254 28.13-46.517 47.157-81.252 47.536l-1.058.006c-35.255 0-66.026-19.204-82.419-47.724C31.579 161.353 27 145.212 27 127.999C27 75.533 69.532 33 122.001 33"
></path>
</g>
</svg>
Loading