API del perfil
Consulta el perfil público, habilidades, experiencia, educación, contacto, casos de estudio y resultados como recursos REST separados.
Endpoints públicos de solo lectura. No requieren autenticación. GET devuelve JSON, HEAD devuelve las mismas cabeceras sin cuerpo y OPTIONS permite la verificación previa de CORS.
Cabeceras de solicitud
Accept-Languagestring · Opcional- Opcional. Elige en o es. Se admiten variantes regionales y pesos de preferencia, por ejemplo es-PE, en;q=0.8. Se usa en si ninguna preferencia admitida coincide.
If-None-Matchstring · Opcional- Opcional. Envía un ETag anterior para recibir 304 si el recurso no cambió.
GET/api/v1/profile
Obtén el nombre, el título profesional y el resumen.
Parámetros
Sin parámetros de ruta ni de consulta.
Solicitud
curl "https://gedy.dev/api/v1/profile" \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
{
"name": "Gedy Palomino",
"headline": "Desarrollador de software Senior | Cloud e IA",
"summary": "Desarrollador de software senior con más de 7 años construyendo y operando sistemas backend, cloud y orientados a eventos. Trabajo en diseño de APIs, automatización, infraestructura y servicios escalables, con experiencia sólida en Linux, bases de datos, autenticación, criptografía y seguridad. Actualmente uso IA y agentes LLM para acelerar flujos de desarrollo, automatizar tareas complejas e integrar herramientas. Aprendo rápido, disfruto construir, y siempre estoy explorando nuevas formas de resolver problemas con software."
}GET/api/v1/skills
Lista habilidades técnicas agrupadas por especialidad.
Parámetros
qConsulta · string · Opcional- Busca nombres de habilidades y títulos de grupos; devuelve los grupos completos que coinciden. Cadena opcional de 1 a 100 caracteres tras eliminar espacios en los extremos. Coincidencia parcial sin distinguir mayúsculas. Omítela para obtener todos los registros. Los parámetros vacíos, repetidos o desconocidos devuelven 400.
Solicitud
curl "https://gedy.dev/api/v1/skills?q=cloud" \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
[
{
"title": "Backend y Cloud",
"summary": "Servicios tipados, APIs, sistemas distribuidos e infraestructura reproducible.",
"skills": [
"TypeScript/JavaScript",
"Python",
"Lua",
"Go",
"SQL",
"Diseño de APIs",
"Microservicios",
"Arquitectura orientada a eventos",
"Arquitectura serverless",
"Administración de sistemas Linux",
"Docker y CI/CD",
"Infraestructura como código"
]
}
]GET/api/v1/experience
Lista puestos, empresas, períodos y logros.
Parámetros
companyConsulta · string · Opcional- Filtra por nombre de empresa. Cadena opcional de 1 a 100 caracteres tras eliminar espacios en los extremos. Coincidencia parcial sin distinguir mayúsculas. Omítela para obtener todos los registros. Los parámetros vacíos, repetidos o desconocidos devuelven 400.
Solicitud
curl "https://gedy.dev/api/v1/experience?company=Encora%20Inc." \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
[
{
"id": "encora",
"role": "Ingeniero de Software",
"company": "Encora Inc.",
"companyUrl": "https://www.encora.com/",
"context": "Consultoría: comercio electrónico empresarial",
"period": "Jul 2023 – Actualidad",
"highlights": [
"Responsable de los microservicios de productos y usuarios para Alicorp, la mayor empresa de bienes de consumo del Perú, dando soporte a 2 tenants de backend, 4 aplicaciones cliente, 35 distribuidoras, ~3K productos, ~150K usuarios.",
"Implementé flujos de autenticación de usuarios, búsqueda de productos, navegación, precios y promociones para ~3K productos y ~1,250 promociones activas, incluyendo combinaciones en promociones de precio mínimo/máximo, combos y métodos de pago.",
"Implementé procedimientos almacenados y migraciones; optimicé consultas críticas sobre grandes conjuntos de datos relacionales, mejorando el tiempo promedio de ejecución en ~50%.",
"Optimicé APIs y flujos críticos, reduciendo la latencia en horas pico de hasta 6s a menos de 1s, y bajando el uso de CPU/RAM de base de datos de ~85% a ~30% mediante índices, uso de caché en Redis y Node.js Worker Threads.",
"Mejoré la confiabilidad en producción con telemetría en New Relic y logs estructurados, reduciendo incidentes y rollbacks en repositorios bajo mi responsabilidad.",
"Conduje entrevistas técnicas a candidatos para puestos de desarrollo senior, liderando la evaluación técnica y entregando recomendaciones de contratación a stakeholders."
]
}
]GET/api/v1/experience/{id}
Obtén un registro por su ID.
Parámetros
idRuta · string · Obligatorio- Obligatorio. Usa un id devuelto por el endpoint de colección. Distingue mayúsculas y minúsculas.
Solicitud
curl "https://gedy.dev/api/v1/experience/encora" \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
{
"id": "encora",
"role": "Ingeniero de Software",
"company": "Encora Inc.",
"companyUrl": "https://www.encora.com/",
"context": "Consultoría: comercio electrónico empresarial",
"period": "Jul 2023 – Actualidad",
"highlights": [
"Responsable de los microservicios de productos y usuarios para Alicorp, la mayor empresa de bienes de consumo del Perú, dando soporte a 2 tenants de backend, 4 aplicaciones cliente, 35 distribuidoras, ~3K productos, ~150K usuarios.",
"Implementé flujos de autenticación de usuarios, búsqueda de productos, navegación, precios y promociones para ~3K productos y ~1,250 promociones activas, incluyendo combinaciones en promociones de precio mínimo/máximo, combos y métodos de pago.",
"Implementé procedimientos almacenados y migraciones; optimicé consultas críticas sobre grandes conjuntos de datos relacionales, mejorando el tiempo promedio de ejecución en ~50%.",
"Optimicé APIs y flujos críticos, reduciendo la latencia en horas pico de hasta 6s a menos de 1s, y bajando el uso de CPU/RAM de base de datos de ~85% a ~30% mediante índices, uso de caché en Redis y Node.js Worker Threads.",
"Mejoré la confiabilidad en producción con telemetría en New Relic y logs estructurados, reduciendo incidentes y rollbacks en repositorios bajo mi responsabilidad.",
"Conduje entrevistas técnicas a candidatos para puestos de desarrollo senior, liderando la evaluación técnica y entregando recomendaciones de contratación a stakeholders."
]
}GET/api/v1/education
Lista títulos académicos e instituciones.
Parámetros
Sin parámetros de ruta ni de consulta.
Solicitud
curl "https://gedy.dev/api/v1/education" \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
[
{
"degree": "Ingeniería de Sistemas",
"credential": "Bachiller",
"institution": "Universidad Nacional de San Cristóbal de Huamanga",
"institutionUrl": ""
}
]GET/api/v1/contact
Obtén datos públicos de contacto y enlaces.
Parámetros
Sin parámetros de ruta ni de consulta.
Solicitud
curl "https://gedy.dev/api/v1/contact" \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
{
"contacts": [
{
"kind": "email",
"label": "email",
"text": "gedy.palomino@gmail.com",
"url": "mailto:gedy.palomino@gmail.com"
}
],
"links": [
{
"kind": "linkedin",
"text": "linkedin.com/in/gedy-palomino",
"url": "https://www.linkedin.com/in/gedy-palomino/"
},
{
"kind": "github",
"text": "github.com/gedzeppelin",
"url": "https://github.com/gedzeppelin/"
}
]
}GET/api/v1/case-studies
Lista casos de estudio publicados y sus resultados.
Parámetros
organizationConsulta · string · Opcional- Filtra por nombre de organización. Cadena opcional de 1 a 100 caracteres tras eliminar espacios en los extremos. Coincidencia parcial sin distinguir mayúsculas. Omítela para obtener todos los registros. Los parámetros vacíos, repetidos o desconocidos devuelven 400.
Solicitud
curl "https://gedy.dev/api/v1/case-studies?organization=Proyecto%20open%20source" \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
[
{
"id": "dossier-resume-as-code",
"title": "Dossier: CV como código",
"mobileTitle": "Dossier",
"summary": "Un paquete de Python tipado que valida el CV y genera Markdown o PDF.",
"organization": "Proyecto open source",
"context": "Herramientas para CV",
"problem": "El mismo CV genera Markdown y PDF, así que ambos formatos deben seguir el mismo schema.",
"intervention": "Construí un paquete de Python y una CLI que validan el CV, exportan JSON Schema y generan Markdown o LuaLaTeX/PDF.",
"result": "Ambos renderizadores usan los modelos validados y omiten las secciones deshabilitadas.",
"resultItems": [
"Pydantic rechaza campos desconocidos antes de renderizar.",
"La CLI exporta JSON Schema desde los modelos de runtime.",
"Markdown y LuaLaTeX/PDF leen el mismo modelo validado."
]
}
]GET/api/v1/case-studies/{id}
Obtén un registro por su ID.
Parámetros
idRuta · string · Obligatorio- Obligatorio. Usa un id devuelto por el endpoint de colección. Distingue mayúsculas y minúsculas.
Solicitud
curl "https://gedy.dev/api/v1/case-studies/dossier-resume-as-code" \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
{
"id": "dossier-resume-as-code",
"title": "Dossier: CV como código",
"mobileTitle": "Dossier",
"summary": "Un paquete de Python tipado que valida el CV y genera Markdown o PDF.",
"organization": "Proyecto open source",
"context": "Herramientas para CV",
"problem": "El mismo CV genera Markdown y PDF, así que ambos formatos deben seguir el mismo schema.",
"intervention": "Construí un paquete de Python y una CLI que validan el CV, exportan JSON Schema y generan Markdown o LuaLaTeX/PDF.",
"result": "Ambos renderizadores usan los modelos validados y omiten las secciones deshabilitadas.",
"resultItems": [
"Pydantic rechaza campos desconocidos antes de renderizar.",
"La CLI exporta JSON Schema desde los modelos de runtime.",
"Markdown y LuaLaTeX/PDF leen el mismo modelo validado."
]
}GET/api/v1/metrics
Lista métricas de resultados publicadas.
Parámetros
Sin parámetros de ruta ni de consulta.
Solicitud
curl "https://gedy.dev/api/v1/metrics" \
-H "Accept: application/json" \
-H "Accept-Language: es"Respuesta 200 · application/json
[
{
"id": "years",
"value": "7+",
"label": "Años creando software en producción",
"summary": "Trabajo en backend, cloud, aplicaciones móviles e IA."
},
{
"id": "open-source",
"value": "OSS",
"label": "Proyectos open source",
"summary": "Algunas herramientas que construyo están en GitHub."
},
{
"id": "ai-automation",
"value": "15+",
"label": "Automatizaciones y agentes de IA",
"summary": "Más de 15 automatizaciones y flujos con agentes de código."
}
]