diff --git a/public/images/press/andresospina-pycon-2026.webp b/public/images/press/andresospina-pycon-2026.webp
new file mode 100644
index 0000000..5756b3e
Binary files /dev/null and b/public/images/press/andresospina-pycon-2026.webp differ
diff --git a/public/images/press/enter-pycon-2026.webp b/public/images/press/enter-pycon-2026.webp
new file mode 100644
index 0000000..741bd0f
Binary files /dev/null and b/public/images/press/enter-pycon-2026.webp differ
diff --git a/public/images/press/guapacho-pycon-2026.webp b/public/images/press/guapacho-pycon-2026.webp
new file mode 100644
index 0000000..2cfd836
Binary files /dev/null and b/public/images/press/guapacho-pycon-2026.webp differ
diff --git a/public/images/speakers/andres-vasquez-restrepo.jpg b/public/images/speakers/andres-vasquez-restrepo.jpg
new file mode 100644
index 0000000..c071a90
Binary files /dev/null and b/public/images/speakers/andres-vasquez-restrepo.jpg differ
diff --git a/public/images/speakers/biviana-marcela-suarez-sierra.png b/public/images/speakers/biviana-marcela-suarez-sierra.png
new file mode 100644
index 0000000..c43a640
Binary files /dev/null and b/public/images/speakers/biviana-marcela-suarez-sierra.png differ
diff --git a/public/images/speakers/carlos-alberto-riveros-varela.jpg b/public/images/speakers/carlos-alberto-riveros-varela.jpg
new file mode 100644
index 0000000..bae26b4
Binary files /dev/null and b/public/images/speakers/carlos-alberto-riveros-varela.jpg differ
diff --git a/public/images/speakers/carlos-andres-osorio-alcalde.jpg b/public/images/speakers/carlos-andres-osorio-alcalde.jpg
new file mode 100644
index 0000000..5feab98
Binary files /dev/null and b/public/images/speakers/carlos-andres-osorio-alcalde.jpg differ
diff --git a/public/images/speakers/cesar-mateo-gonzalez-rodriguez.jpg b/public/images/speakers/cesar-mateo-gonzalez-rodriguez.jpg
new file mode 100644
index 0000000..f9811a9
Binary files /dev/null and b/public/images/speakers/cesar-mateo-gonzalez-rodriguez.jpg differ
diff --git a/public/images/speakers/daniel-galvis.jpg b/public/images/speakers/daniel-galvis.jpg
new file mode 100644
index 0000000..49fe96c
Binary files /dev/null and b/public/images/speakers/daniel-galvis.jpg differ
diff --git a/public/images/speakers/daniel-sabogal.jpg b/public/images/speakers/daniel-sabogal.jpg
new file mode 100644
index 0000000..083ddd3
Binary files /dev/null and b/public/images/speakers/daniel-sabogal.jpg differ
diff --git a/public/images/speakers/dario-jesus-guzman-duran.png b/public/images/speakers/dario-jesus-guzman-duran.png
new file mode 100644
index 0000000..2771a1b
Binary files /dev/null and b/public/images/speakers/dario-jesus-guzman-duran.png differ
diff --git a/public/images/speakers/david-felipe-vanegas-ramirez.jpg b/public/images/speakers/david-felipe-vanegas-ramirez.jpg
new file mode 100644
index 0000000..1376df1
Binary files /dev/null and b/public/images/speakers/david-felipe-vanegas-ramirez.jpg differ
diff --git a/public/images/speakers/dora-cecilia-alzate-gallo.jpg b/public/images/speakers/dora-cecilia-alzate-gallo.jpg
new file mode 100644
index 0000000..a125def
Binary files /dev/null and b/public/images/speakers/dora-cecilia-alzate-gallo.jpg differ
diff --git a/public/images/speakers/emanuel-zapata-querubin.png b/public/images/speakers/emanuel-zapata-querubin.png
new file mode 100644
index 0000000..33631fb
Binary files /dev/null and b/public/images/speakers/emanuel-zapata-querubin.png differ
diff --git a/public/images/speakers/esneider-bravo-benitez.jpg b/public/images/speakers/esneider-bravo-benitez.jpg
new file mode 100644
index 0000000..f471d62
Binary files /dev/null and b/public/images/speakers/esneider-bravo-benitez.jpg differ
diff --git a/public/images/speakers/felipe-sanchez.jpg b/public/images/speakers/felipe-sanchez.jpg
new file mode 100644
index 0000000..49481ca
Binary files /dev/null and b/public/images/speakers/felipe-sanchez.jpg differ
diff --git a/public/images/speakers/felix-mino.png b/public/images/speakers/felix-mino.png
new file mode 100644
index 0000000..86be4b1
Binary files /dev/null and b/public/images/speakers/felix-mino.png differ
diff --git a/public/images/speakers/francisco-javier-moya-ortiz.jpg b/public/images/speakers/francisco-javier-moya-ortiz.jpg
new file mode 100644
index 0000000..91a759b
Binary files /dev/null and b/public/images/speakers/francisco-javier-moya-ortiz.jpg differ
diff --git a/public/images/speakers/hazel-saenz.jpg b/public/images/speakers/hazel-saenz.jpg
new file mode 100644
index 0000000..df69e10
Binary files /dev/null and b/public/images/speakers/hazel-saenz.jpg differ
diff --git a/public/images/speakers/isabel-mora-2.jpg b/public/images/speakers/isabel-mora-2.jpg
new file mode 100644
index 0000000..f0295bc
Binary files /dev/null and b/public/images/speakers/isabel-mora-2.jpg differ
diff --git a/public/images/speakers/isabel-mora.jpg b/public/images/speakers/isabel-mora.jpg
new file mode 100644
index 0000000..f0295bc
Binary files /dev/null and b/public/images/speakers/isabel-mora.jpg differ
diff --git a/public/images/speakers/jeronimo-lopez-gomez.jpg b/public/images/speakers/jeronimo-lopez-gomez.jpg
new file mode 100644
index 0000000..c8b0bd3
Binary files /dev/null and b/public/images/speakers/jeronimo-lopez-gomez.jpg differ
diff --git a/public/images/speakers/jesus-alfredo-reyes-vargas.jpg b/public/images/speakers/jesus-alfredo-reyes-vargas.jpg
new file mode 100644
index 0000000..1ed66c3
Binary files /dev/null and b/public/images/speakers/jesus-alfredo-reyes-vargas.jpg differ
diff --git a/public/images/speakers/johnny-montoya.jpg b/public/images/speakers/johnny-montoya.jpg
new file mode 100644
index 0000000..a777fe7
Binary files /dev/null and b/public/images/speakers/johnny-montoya.jpg differ
diff --git a/public/images/speakers/jonathan-vallejo-munoz.jpg b/public/images/speakers/jonathan-vallejo-munoz.jpg
new file mode 100644
index 0000000..097ae42
Binary files /dev/null and b/public/images/speakers/jonathan-vallejo-munoz.jpg differ
diff --git a/public/images/speakers/jose-arturo-osorio-londono.jpg b/public/images/speakers/jose-arturo-osorio-londono.jpg
new file mode 100644
index 0000000..54b94cb
Binary files /dev/null and b/public/images/speakers/jose-arturo-osorio-londono.jpg differ
diff --git a/public/images/speakers/jose-hernan-ortiz-ocampo-2.jpg b/public/images/speakers/jose-hernan-ortiz-ocampo-2.jpg
new file mode 100644
index 0000000..7395f82
Binary files /dev/null and b/public/images/speakers/jose-hernan-ortiz-ocampo-2.jpg differ
diff --git a/public/images/speakers/jose-hernan-ortiz-ocampo.jpg b/public/images/speakers/jose-hernan-ortiz-ocampo.jpg
new file mode 100644
index 0000000..7395f82
Binary files /dev/null and b/public/images/speakers/jose-hernan-ortiz-ocampo.jpg differ
diff --git a/public/images/speakers/juan-guillermo-gomez.jpg b/public/images/speakers/juan-guillermo-gomez.jpg
new file mode 100644
index 0000000..e638dff
Binary files /dev/null and b/public/images/speakers/juan-guillermo-gomez.jpg differ
diff --git a/public/images/speakers/juan-jose-barrientos-salazar.jpg b/public/images/speakers/juan-jose-barrientos-salazar.jpg
new file mode 100644
index 0000000..0dc4532
Binary files /dev/null and b/public/images/speakers/juan-jose-barrientos-salazar.jpg differ
diff --git a/public/images/speakers/marcela-hoyos-cano.jpg b/public/images/speakers/marcela-hoyos-cano.jpg
new file mode 100644
index 0000000..6a8600b
Binary files /dev/null and b/public/images/speakers/marcela-hoyos-cano.jpg differ
diff --git a/public/images/speakers/maria-fernanda-rojas-castro.png b/public/images/speakers/maria-fernanda-rojas-castro.png
new file mode 100644
index 0000000..e54ca1b
Binary files /dev/null and b/public/images/speakers/maria-fernanda-rojas-castro.png differ
diff --git a/public/images/speakers/maris-botero.png b/public/images/speakers/maris-botero.png
new file mode 100644
index 0000000..92dee05
Binary files /dev/null and b/public/images/speakers/maris-botero.png differ
diff --git a/public/images/speakers/mauricio-repetto-ferrero.jpg b/public/images/speakers/mauricio-repetto-ferrero.jpg
new file mode 100644
index 0000000..2605f3c
Binary files /dev/null and b/public/images/speakers/mauricio-repetto-ferrero.jpg differ
diff --git a/public/images/speakers/natalia-echeverri-duran.jpg b/public/images/speakers/natalia-echeverri-duran.jpg
new file mode 100644
index 0000000..f7b3396
Binary files /dev/null and b/public/images/speakers/natalia-echeverri-duran.jpg differ
diff --git a/public/images/speakers/nicolas-roldan-fajardo.jpg b/public/images/speakers/nicolas-roldan-fajardo.jpg
new file mode 100644
index 0000000..0f1fdd7
Binary files /dev/null and b/public/images/speakers/nicolas-roldan-fajardo.jpg differ
diff --git a/public/images/speakers/raul-rodriguez.png b/public/images/speakers/raul-rodriguez.png
new file mode 100644
index 0000000..dda51cb
Binary files /dev/null and b/public/images/speakers/raul-rodriguez.png differ
diff --git a/public/images/speakers/roberto-bedoya-garcia.jpg b/public/images/speakers/roberto-bedoya-garcia.jpg
new file mode 100644
index 0000000..cca0117
Binary files /dev/null and b/public/images/speakers/roberto-bedoya-garcia.jpg differ
diff --git a/public/images/speakers/sankalp-gilda.jpg b/public/images/speakers/sankalp-gilda.jpg
new file mode 100644
index 0000000..52107c4
Binary files /dev/null and b/public/images/speakers/sankalp-gilda.jpg differ
diff --git a/public/images/speakers/santiago-suarez-sampayo.png b/public/images/speakers/santiago-suarez-sampayo.png
new file mode 100644
index 0000000..6004a7f
Binary files /dev/null and b/public/images/speakers/santiago-suarez-sampayo.png differ
diff --git a/public/images/speakers/sebastian-gomez-ahumada.jpg b/public/images/speakers/sebastian-gomez-ahumada.jpg
new file mode 100644
index 0000000..e85daf5
Binary files /dev/null and b/public/images/speakers/sebastian-gomez-ahumada.jpg differ
diff --git a/public/images/sponsors/enter-co.svg b/public/images/sponsors/enter-co.svg
new file mode 100644
index 0000000..c40ef3b
--- /dev/null
+++ b/public/images/sponsors/enter-co.svg
@@ -0,0 +1,50 @@
+
+
+
diff --git a/public/images/sponsors/guapacho.svg b/public/images/sponsors/guapacho.svg
new file mode 100644
index 0000000..4b946c7
--- /dev/null
+++ b/public/images/sponsors/guapacho.svg
@@ -0,0 +1,750 @@
+
+
diff --git a/src/app/(pages)/keynotes/[slug]/page.tsx b/src/app/(pages)/keynotes/[slug]/page.tsx
new file mode 100644
index 0000000..7decbad
--- /dev/null
+++ b/src/app/(pages)/keynotes/[slug]/page.tsx
@@ -0,0 +1,106 @@
+import type { Metadata } from "next";
+import { notFound } from "next/navigation";
+import CTASection from "@/components/blocks/cta/cta";
+import KeynoteDetail from "@/components/blocks/keynotes/keynote-detail";
+import SectionSeparator from "@/components/section-separator";
+import {
+ buildKeynoteJsonLd,
+ buildKeynotePageMetadata,
+ getKeynoteShareImageUrl,
+} from "@/lib/keynote-seo";
+import { getAllKeynoteSlugs, getLocalizedKeynote } from "@/lib/keynotes";
+import { STATIC_PRERENDER_LOCALE } from "@/lib/site-locale-constants";
+import { siteMessages } from "@/lib/site-messages";
+import { getSiteUrl, webPageJsonLd, websiteJsonLd } from "@/lib/site-seo";
+
+export async function generateStaticParams() {
+ return getAllKeynoteSlugs().map((slug) => ({ slug }));
+}
+
+export async function generateMetadata({
+ params,
+}: {
+ params: Promise<{ slug: string }>;
+}): Promise {
+ const { slug } = await params;
+
+ return buildKeynotePageMetadata(slug, STATIC_PRERENDER_LOCALE);
+}
+
+export const dynamicParams = false;
+
+const KeynoteSlugPage = async ({
+ params,
+}: {
+ params: Promise<{ slug: string }>;
+}) => {
+ const { slug } = await params;
+
+ const keynote = getLocalizedKeynote(slug, STATIC_PRERENDER_LOCALE);
+
+ if (!keynote) {
+ notFound();
+ }
+
+ const messages = siteMessages[STATIC_PRERENDER_LOCALE];
+ const keynoteUrl = `${getSiteUrl()}/keynotes/${slug}`;
+ const shareImageUrl = getKeynoteShareImageUrl(slug);
+
+ const jsonLd = {
+ "@context": "https://schema.org",
+ "@graph": [
+ websiteJsonLd(),
+ webPageJsonLd({
+ name: `${keynote.name} — PyCon Colombia 2026 Keynote`,
+ description: keynote.description,
+ url: keynoteUrl,
+ image: shareImageUrl,
+ }),
+ buildKeynoteJsonLd(keynote, STATIC_PRERENDER_LOCALE, keynoteUrl),
+ {
+ "@context": "https://schema.org",
+ "@type": "BreadcrumbList",
+ itemListElement: [
+ {
+ "@type": "ListItem",
+ position: 1,
+ name: messages.nav.home,
+ item: `${getSiteUrl()}/`,
+ },
+ {
+ "@type": "ListItem",
+ position: 2,
+ name: messages.nav.keynotes,
+ item: `${getSiteUrl()}/#benefits`,
+ },
+ {
+ "@type": "ListItem",
+ position: 3,
+ name: keynote.name,
+ item: keynoteUrl,
+ },
+ ],
+ },
+ ],
+ };
+
+ return (
+ <>
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default KeynoteSlugPage;
diff --git a/src/app/(pages)/keynotes/page.tsx b/src/app/(pages)/keynotes/page.tsx
new file mode 100644
index 0000000..6b610a5
--- /dev/null
+++ b/src/app/(pages)/keynotes/page.tsx
@@ -0,0 +1,25 @@
+import type { Metadata } from "next";
+
+import Keynotes from "@/components/blocks/keynotes/keynotes";
+import { STATIC_PRERENDER_LOCALE } from "@/lib/site-locale-constants";
+import { siteMessages } from "@/lib/site-messages";
+import { getSiteUrl, SITE_KEYWORDS } from "@/lib/site-seo";
+
+export async function generateMetadata(): Promise {
+ const meta = siteMessages[STATIC_PRERENDER_LOCALE].pageMeta.keynotes;
+
+ return {
+ title: meta.title,
+ description: meta.description,
+ keywords: [...SITE_KEYWORDS, "PyCon keynotes", "keynote speakers"],
+ alternates: {
+ canonical: `${getSiteUrl()}/keynotes`,
+ },
+ };
+}
+
+const KeynotesPage = () => {
+ return ;
+};
+
+export default KeynotesPage;
diff --git a/src/app/(pages)/layout.tsx b/src/app/(pages)/layout.tsx
index 2c38514..cf17d41 100644
--- a/src/app/(pages)/layout.tsx
+++ b/src/app/(pages)/layout.tsx
@@ -34,6 +34,10 @@ const navigationData: Navigation[] = [
titleKey: "sponsors",
href: "/#sponsors",
},
+ {
+ titleKey: "press",
+ href: "/press",
+ },
{
titleKey: "team",
href: "/team",
diff --git a/src/app/(pages)/press/page.tsx b/src/app/(pages)/press/page.tsx
new file mode 100644
index 0000000..8c37475
--- /dev/null
+++ b/src/app/(pages)/press/page.tsx
@@ -0,0 +1,39 @@
+import type { Metadata } from "next";
+
+import CTASection from "@/components/blocks/cta/cta";
+import PressCoverage from "@/components/blocks/press/press-coverage";
+import SectionSeparator from "@/components/section-separator";
+import { getPressCoverageItems } from "@/lib/press-coverage";
+import { buildPressPageJsonLd, buildPressPageMetadata } from "@/lib/press-seo";
+import { STATIC_PRERENDER_LOCALE } from "@/lib/site-locale-constants";
+
+export async function generateMetadata(): Promise {
+ const items = getPressCoverageItems();
+
+ return buildPressPageMetadata(STATIC_PRERENDER_LOCALE, items);
+}
+
+const PressPage = () => {
+ const items = getPressCoverageItems();
+ const jsonLd = buildPressPageJsonLd(STATIC_PRERENDER_LOCALE, items);
+
+ return (
+ <>
+
+
+
+
+
+
+
+ >
+ );
+};
+
+export default PressPage;
diff --git a/src/app/(pages)/talks/format/[format]/page.tsx b/src/app/(pages)/talks/format/[format]/page.tsx
new file mode 100644
index 0000000..11f0a42
--- /dev/null
+++ b/src/app/(pages)/talks/format/[format]/page.tsx
@@ -0,0 +1,43 @@
+import type { Metadata } from "next";
+import { notFound } from "next/navigation";
+
+import Talks from "@/components/blocks/talks/talks";
+import { STATIC_PRERENDER_LOCALE } from "@/lib/site-locale-constants";
+import { getAllTalkFormatSlugs, isTalkFormat } from "@/lib/talk-formats";
+import { buildTalkFormatPageMetadata } from "@/lib/talk-seo";
+
+export async function generateStaticParams() {
+ return getAllTalkFormatSlugs().map((format) => ({ format }));
+}
+
+export async function generateMetadata({
+ params,
+}: {
+ params: Promise<{ format: string }>;
+}): Promise {
+ const { format } = await params;
+
+ if (!isTalkFormat(format)) {
+ return {};
+ }
+
+ return buildTalkFormatPageMetadata(format, STATIC_PRERENDER_LOCALE);
+}
+
+export const dynamicParams = false;
+
+const TalkFormatPage = async ({
+ params,
+}: {
+ params: Promise<{ format: string }>;
+}) => {
+ const { format } = await params;
+
+ if (!isTalkFormat(format)) {
+ notFound();
+ }
+
+ return ;
+};
+
+export default TalkFormatPage;
diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts
index 5f801f3..bed8fc6 100644
--- a/src/app/sitemap.ts
+++ b/src/app/sitemap.ts
@@ -1,10 +1,12 @@
import type { MetadataRoute } from "next";
+import { getAllKeynoteSlugs } from "@/lib/keynotes";
import { getPosts } from "@/lib/posts";
import { getSiteUrl } from "@/lib/site-seo";
import { getAllSpeakerTrackSlugs } from "@/lib/speaker-tracks";
import { getAllSpeakerSlugs } from "@/lib/speakers";
import { getAllSponsorSlugs } from "@/lib/sponsors";
+import { getAllTalkFormatSlugs } from "@/lib/talk-formats";
import { getAllTalkLanguageSlugs } from "@/lib/talk-languages";
import { getAllTalkLevelSlugs } from "@/lib/talk-levels";
import { getAllTalkIds, getTalkHref } from "@/lib/talks";
@@ -17,12 +19,16 @@ export default async function sitemap(): Promise {
const routes = [
"" /* This is equivalent to / */,
"/blog",
+ "/press",
"/pricing",
"/team",
"/speakers",
+ "/keynotes",
+ ...getAllKeynoteSlugs().map((slug) => `/keynotes/${slug}`),
"/talks",
...getAllSpeakerTrackSlugs().map((slug) => `/talks/${slug}`),
...getAllTalkLevelSlugs().map((level) => `/talks/level/${level}`),
+ ...getAllTalkFormatSlugs().map((format) => `/talks/format/${format}`),
...getAllTalkLanguageSlugs().map(
(language) => `/talks/language/${language}`,
),
diff --git a/src/assets/data/benefits.tsx b/src/assets/data/benefits.tsx
index 779a74e..06b8794 100644
--- a/src/assets/data/benefits.tsx
+++ b/src/assets/data/benefits.tsx
@@ -1,22 +1,27 @@
-import keynotesEs from "@/assets/data/keynotes.es.json";
-import keynotesEn from "@/assets/data/keynotes.json";
+import { keynoteList } from "@/assets/data/keynotes";
+import { keynoteContentByLocale } from "@/assets/data/keynotes-content.locale";
import type { Features } from "@/components/blocks/benefits/benefits";
import type { SiteLocale } from "@/lib/site-messages";
export function getBenefitsFeatures(locale: SiteLocale): Features {
- const keynotes = locale === "es" ? keynotesEs : keynotesEn;
+ const content = keynoteContentByLocale[locale];
- return keynotes.map((keynote) => ({
- title: keynote.name,
- role: keynote.role,
- country: keynote.country,
- description: keynote.description,
- image: keynote.image,
- flag: keynote.flag,
- linkedin: keynote.linkedin,
- github: keynote.github,
- website: keynote.website,
- youtube: keynote.youtube,
- x: keynote.x,
- }));
+ return keynoteList.map((keynote) => {
+ const localized = content[keynote.slug];
+
+ return {
+ slug: keynote.slug,
+ title: localized.name,
+ role: localized.role,
+ country: localized.country,
+ description: localized.description,
+ image: keynote.image,
+ flag: keynote.flag,
+ linkedin: keynote.linkedin,
+ github: keynote.github,
+ website: keynote.website,
+ youtube: keynote.youtube,
+ x: keynote.x,
+ };
+ });
}
diff --git a/src/assets/data/keynotes-content.locale.ts b/src/assets/data/keynotes-content.locale.ts
new file mode 100644
index 0000000..4c84680
--- /dev/null
+++ b/src/assets/data/keynotes-content.locale.ts
@@ -0,0 +1,102 @@
+import type { SiteLocale } from "@/lib/site-messages";
+
+export type KeynoteContent = {
+ name: string;
+ role: string;
+ country: string;
+ description: string;
+};
+
+export type KeynoteContentBySlug = Record;
+
+export const keynoteContentByLocale: Record =
+ {
+ en: {
+ "tereza-iofciu": {
+ name: "Tereza Iofciu",
+ role: "Data & AI expert, leadership coach, and Python Software Foundation Fellow",
+ country: "Romania",
+ description:
+ "Tereza Iofciu is a data and AI expert, leadership coach, and PSF Fellow with 15+ years of experience leading data and product teams at neuefische, FREE NOW, and New Work (XING). She helps professionals lead and adapt in the age of AI through her Data Diplomat Framework™, bridging technical depth with human leadership. Along side that she's been volunteering in the Python Community and wore many hats over the years: PyLadies Hamburg organizer, Python Software Verband board member, NumFocus DISC Steering Committee member, Python Software Foundation Code of Conduct team member, Diversity & Inclusion working group member, PyConDE & PyData Berlin organizer, Python Pizza Hamburg organizer, and PyPodcats co-leader. In 2021 Tereza was awarded the Python Software Foundation community service award and in 2025 was named a PSF Fellow.",
+ },
+ "anna-pristoupilova": {
+ name: "Anna Pristoupilova",
+ role: "Bioinformatician and researcher",
+ country: "Czech Republic",
+ description:
+ "Anna is a bioinformatics scientist focused on genome analysis techniques and their applications in understanding rare genetic diseases. She received the Bolzano Award for her doctoral thesis.\n\nShe holds a PhD in Molecular and Cell Biology, Genetics, and Virology and two MSc degrees: one in Medical Technology and Informatics, and the other in Molecular Biology and Genetics, all from Charles University.\n\nAnna has co-authored over 25 publications in peer-reviewed journals and has presented her work at various scientific conferences.\n\nCurrently, she works as a Senior Bioinformatics Scientist at DNAnexus company, where she assists customers with their bioinformatics analysis. She also conducts research at the Research Unit for Rare Diseases at the First Faculty of Medicine, Charles University.",
+ },
+ "malvika-sharan": {
+ name: "Malvika Sharan",
+ role: "Senior Director of Data Science at St. Jude Children's Research Hospital",
+ country: "India",
+ description:
+ "Malvika Sharan is Senior Director of Data Science at St. Jude Children's Research Hospital and a globally recognized leader in open science and community-driven research. She is a co-founder of Open Life Science and a key contributor to The Turing Way, advancing reproducible, ethical, and collaborative data science practices worldwide. With a background in bioinformatics and leadership roles at institutions like the Alan Turing Institute and EMBL, Malvika focuses on building inclusive research communities and empowering practitioners through open, transparent, and responsible approaches to AI and data science.",
+ },
+ "kari-l-jordan": {
+ name: "Dr. Kari L. Jordan",
+ role: "Executive Director of The Carpentries",
+ country: "United States",
+ description:
+ "Dr. Kari L. Jordan is a leading figure in data science education, serving as the Executive Director for The Carpentries, a globally recognized nonprofit organization. Upon completing Bachelor's and Master's degrees in Mechanical Engineering from Michigan Technological University, she pursued a Ph.D. in Engineering Education at The Ohio State University, specializing in interventions to enhance belonging for people of color in STEM. Dr. Jordan's visionary leadership has propelled The Carpentries' mission worldwide, fostering exponential growth and impact across academia, industry, and government sectors. A sought-after speaker and advocate for diversity and inclusion, she champions accessible data literacy and bridges the digital skills gap through strategic initiatives and international collaboration. Dr. Jordan's dedication to empowering individuals and fostering inclusive learning environments has earned her widespread recognition and respect, shaping the future of data literacy for societal betterment.",
+ },
+ "irit-katriel": {
+ name: "Irit Katriel",
+ role: "CPython core developer and former Faster CPython team member",
+ country: "United Kingdom",
+ description:
+ "Irit Katriel is a software engineer with over two decades of experience. She is a CPython core developer and a former member of the Faster CPython team. Her contributions to Python include the implementation of exception groups and the except* construct (PEP 654), key simplifications to Python's exception mechanism, and a major refactor of the CPython bytecode compiler to improve structure, maintainability, and testability. Irit has also authored several academic publications on the more theoretical aspects of computer science. She holds a PhD in computer science and a BSc in psychology.",
+ },
+ "luciano-ramalho": {
+ name: "Luciano Ramalho",
+ role: "Author of Fluent Python and Python Software Foundation Fellow",
+ country: "Brazil",
+ description:
+ "Luciano Ramalho is a renowned Python educator, author, and software developer best known for Fluent Python, one of the most influential books on mastering Pythonic programming and software craftsmanship. A Python Software Foundation Fellow and long-time advocate for open source and developer education, Luciano has helped programmers worldwide deepen their understanding of Python's design, best practices, and expressive power. Through decades of teaching, speaking, and writing, he has played a major role in shaping how developers write more effective, idiomatic, and thoughtful Python.",
+ },
+ },
+ es: {
+ "tereza-iofciu": {
+ name: "Tereza Iofciu",
+ role: "Experta en datos e IA, coach de liderazgo y Fellow de la Python Software Foundation",
+ country: "Rumanía",
+ description:
+ "Tereza Iofciu es experta en datos e IA, coach de liderazgo y Fellow de la PSF con más de 15 años de experiencia liderando equipos de datos y producto en neuefische, FREE NOW y New Work (XING). Ayuda a profesionales a liderar y adaptarse en la era de la IA a través de su Data Diplomat Framework™, combinando profundidad técnica con liderazgo humano. Además de eso, ha sido voluntaria en la Python Community y ha desempeñado muchos roles a lo largo de los años: organizadora de PyLadies Hamburg, miembro de la junta del Python Software Verband, del comité directivo DISC de NumFocus, del equipo de código de conducta de la Python Software Foundation, del grupo de trabajo de Diversidad e Inclusión, organizadora de PyConDE y PyData Berlin, organizadora de Python Pizza Hamburg y colíder de PyPodcats. En 2021, Tereza recibió el premio de servicio comunitario de la Python Software Foundation y en 2025 fue nombrada Fellow de la PSF.",
+ },
+ "anna-pristoupilova": {
+ name: "Anna Pristoupilova",
+ role: "Bioinformática e investigadora",
+ country: "República Checa",
+ description:
+ "Anna es científica bioinformática enfocada en técnicas de análisis del genoma y sus aplicaciones para comprender enfermedades genéticas raras. Recibió el Premio Bolzano por su tesis doctoral.\n\nTiene un doctorado en Biología Molecular, Celular, Genética y Virología y dos másteres: uno en Tecnología Médica e Informática y otro en Biología Molecular y Genética, todos de la Universidad Carolina.\n\nAnna ha coautorado más de 25 publicaciones en revistas revisadas por pares y ha presentado su trabajo en diversas conferencias científicas.\n\nActualmente trabaja como Senior Bioinformatics Scientist en DNAnexus, donde asiste a clientes con sus análisis bioinformáticos. También realiza investigación en la Unidad de Investigación de Enfermedades Raras de la Primera Facultad de Medicina de la Universidad Carolina.",
+ },
+ "malvika-sharan": {
+ name: "Malvika Sharan",
+ role: "Senior Director of Data Science en St. Jude Children's Research Hospital",
+ country: "India",
+ description:
+ "Malvika Sharan es Senior Director of Data Science en St. Jude Children's Research Hospital y una líder reconocida mundialmente en ciencia abierta e investigación impulsada por la comunidad. Es cofundadora de Open Life Science y contribuidora clave de The Turing Way, promoviendo prácticas de ciencia de datos reproducibles, éticas y colaborativas a nivel global. Con formación en bioinformática y roles de liderazgo en instituciones como el Alan Turing Institute y el EMBL, Malvika se enfoca en construir comunidades de investigación inclusivas y empoderar a profesionales a través de enfoques abiertos, transparentes y responsables de IA y ciencia de datos.",
+ },
+ "kari-l-jordan": {
+ name: "Dr. Kari L. Jordan",
+ role: "Directora ejecutiva de The Carpentries",
+ country: "Estados Unidos",
+ description:
+ "La Dra. Kari L. Jordan es una figura destacada en la educación en ciencia de datos y se desempeña como directora ejecutiva de The Carpentries, una organización sin fines de lucro reconocida mundialmente. Tras completar licenciatura y maestría en Ingeniería Mecánica en la Universidad Tecnológica de Michigan, cursó un doctorado en Educación en Ingeniería en la Universidad Estatal de Ohio, especializándose en intervenciones para fortalecer el sentido de pertenencia de personas de color en STEM. El liderazgo visionario de la Dra. Jordan ha impulsado la misión de The Carpentries a nivel mundial, fomentando un crecimiento e impacto exponenciales en los sectores académico, industrial y gubernamental. Como ponente solicitada y defensora de la diversidad y la inclusión, promueve la alfabetización de datos accesible y reduce la brecha de habilidades digitales mediante iniciativas estratégicas y colaboración internacional. La dedicación de la Dra. Jordan a empoderar a las personas y fomentar entornos de aprendizaje inclusivos le ha valido un amplio reconocimiento y respeto, moldeando el futuro de la alfabetización de datos para el bienestar social.",
+ },
+ "irit-katriel": {
+ name: "Irit Katriel",
+ role: "Desarrolladora núcleo de CPython y exmiembro del equipo Faster CPython",
+ country: "Reino Unido",
+ description:
+ "Irit Katriel es ingeniera de software con más de dos décadas de experiencia. Es desarrolladora núcleo de CPython y exmiembro del equipo Faster CPython. Sus contribuciones a Python incluyen la implementación de grupos de excepciones y la construcción except* (PEP 654), simplificaciones clave en el mecanismo de excepciones de Python y una refactorización importante del compilador de bytecode de CPython para mejorar la estructura, mantenibilidad y capacidad de prueba. Irit también ha publicado varios trabajos académicos sobre aspectos más teóricos de la informática. Tiene un doctorado en ciencias de la computación y una licenciatura en psicología.",
+ },
+ "luciano-ramalho": {
+ name: "Luciano Ramalho",
+ role: "Autor de Fluent Python y Fellow de la Python Software Foundation",
+ country: "Brasil",
+ description:
+ "Luciano Ramalho es un reconocido educador, autor y desarrollador Python, conocido principalmente por Fluent Python, uno de los libros más influyentes sobre programación pitónica y artesanía de software. Fellow de la Python Software Foundation y defensor de larga data del código abierto y la educación de desarrolladores, Luciano ha ayudado a programadores de todo el mundo a profundizar su comprensión del diseño de Python, sus buenas prácticas y su poder expresivo. A través de décadas de enseñanza, conferencias y escritura, ha desempeñado un papel fundamental en la forma en que los desarrolladores escriben Python más efectivo, idiomático y reflexivo.",
+ },
+ },
+ };
diff --git a/src/assets/data/keynotes.ts b/src/assets/data/keynotes.ts
new file mode 100644
index 0000000..1febd4b
--- /dev/null
+++ b/src/assets/data/keynotes.ts
@@ -0,0 +1,59 @@
+export type Keynote = {
+ slug: string;
+ image: string;
+ flag: string;
+ linkedin?: string;
+ github?: string;
+ website?: string;
+ youtube?: string;
+ x?: string;
+};
+
+export const keynoteList: Keynote[] = [
+ {
+ slug: "tereza-iofciu",
+ image: "/images/keynotes/keynote-01.webp",
+ flag: "/images/flags/flag-ro.svg",
+ linkedin: "https://www.linkedin.com/in/tereza-iofciu/",
+ github: "https://github.com/terezaif",
+ website: "https://www.terezaiofciu.com/",
+ youtube:
+ "https://www.youtube.com/playlist?list=PLPNST8XbhlFpuJgsSI8AfXzh5BwtfHh5Z",
+ },
+ {
+ slug: "anna-pristoupilova",
+ image: "/images/keynotes/keynote-02.webp",
+ flag: "/images/flags/flag-cz.svg",
+ linkedin: "https://www.linkedin.com/in/pristanna/",
+ github: "https://github.com/pristanna",
+ },
+ {
+ slug: "malvika-sharan",
+ image: "/images/keynotes/keynote-03.webp",
+ flag: "/images/flags/flag-in.svg",
+ linkedin: "https://www.linkedin.com/in/malvikasharan/",
+ github: "https://github.com/malvikasharan",
+ website: "https://malvikasharan.github.io/",
+ },
+ {
+ slug: "kari-l-jordan",
+ image: "/images/keynotes/keynote-04.webp",
+ flag: "/images/flags/flag-us.svg",
+ linkedin: "https://www.linkedin.com/in/kariljordan/",
+ },
+ {
+ slug: "irit-katriel",
+ image: "/images/keynotes/keynote-05.webp",
+ flag: "/images/flags/flag-gb.svg",
+ linkedin: "https://www.linkedin.com/in/irit-katriel/",
+ github: "https://github.com/iritkatriel",
+ },
+ {
+ slug: "luciano-ramalho",
+ image: "/images/keynotes/keynote-06.webp",
+ flag: "/images/flags/flag-br.svg",
+ linkedin: "https://www.linkedin.com/in/lucianoramalho/",
+ github: "https://github.com/ramalho",
+ x: "https://x.com/ramalhoorg",
+ },
+];
diff --git a/src/assets/data/press-coverage.ts b/src/assets/data/press-coverage.ts
new file mode 100644
index 0000000..6eb0343
--- /dev/null
+++ b/src/assets/data/press-coverage.ts
@@ -0,0 +1,65 @@
+import type { SiteLocale } from "@/lib/site-messages";
+
+export type PressCoverageType = "article" | "poster";
+
+export type PressCoverageItem = {
+ id: string;
+ type: PressCoverageType;
+ outlet: string;
+ url: string;
+ image: string;
+ publishedAt: string;
+ title: Record;
+ description: Record;
+};
+
+export const pressCoverageItems: PressCoverageItem[] = [
+ {
+ id: "enter-pycon-2026-referentes-mundiales",
+ type: "article",
+ outlet: "ENTER.CO",
+ url: "https://www.enter.co/especiales/dev/pycon-colombia-2026-reunira-a-referentes-mundiales-de-python-e-inteligencia-artificial/",
+ image: "/images/press/enter-pycon-2026.webp",
+ publishedAt: "2026-06-25",
+ title: {
+ en: "PyCon Colombia 2026 will bring together global leaders in Python and artificial intelligence",
+ es: "PyCon Colombia 2026 reunirá a referentes mundiales de Python e inteligencia artificial",
+ },
+ description: {
+ en: "For its tenth edition, PyCon Colombia 2026 gathers CPython core developers, bioinformatics researchers, and AI specialists in Medellín, July 24–26 at Universidad EAFIT, with nearly 600 attendees expected.",
+ es: "En su décima edición, PyCon Colombia 2026 reunirá en Medellín a desarrolladores del núcleo de CPython, investigadores en bioinformática y especialistas en IA, del 24 al 26 de julio en la Universidad EAFIT, con cerca de 600 asistentes esperados.",
+ },
+ },
+ {
+ id: "guapacho-pycon-2026-decima-edicion",
+ type: "article",
+ outlet: "Guapacho.com",
+ url: "https://guapacho.com/pycon-colombia-2026-llega-a-medellin-con-su-decima-edicion/",
+ image: "/images/press/guapacho-pycon-2026.webp",
+ publishedAt: "2026-06-25",
+ title: {
+ en: "PyCon Colombia 2026 celebrates its tenth edition in Medellín: three days of Python, AI, data, and community",
+ es: "PyCon Colombia 2026 celebrará su décima edición en Medellín: tres días para vivir Python, IA, datos y comunidad",
+ },
+ description: {
+ en: "Medellín hosts PyCon Colombia 2026 at Universidad EAFIT, July 24–26, with international keynotes, workshops, talks, and more than 600 attendees expected.",
+ es: "PyCon Colombia 2026 se realizará del 24 al 26 de julio en la Universidad EAFIT de Medellín, con keynotes internacionales, talleres, charlas y más de 600 asistentes esperados.",
+ },
+ },
+ {
+ id: "andresospina-pycon-2026",
+ type: "article",
+ outlet: "andresospina.co",
+ url: "https://andresospina.co/eventos-ia/evento/pycon-colombia-2026/",
+ image: "/images/press/andresospina-pycon-2026.webp",
+ publishedAt: "2026-03-15",
+ title: {
+ en: "PyCon Colombia 2026 — Medellín's flagship Python conference",
+ es: "PyCon Colombia 2026 — la conferencia Python de referencia en Medellín",
+ },
+ description: {
+ en: "Colombia's largest annual Python conference returns to EAFIT in Medellín, July 24–26, with keynotes, workshops, and talks on AI, data science, DevOps, and intelligent agents.",
+ es: "La conferencia anual de Python más grande de Colombia regresa al NODO de la Universidad EAFIT en Medellín, del 24 al 26 de julio, con keynotes, talleres y charlas sobre IA, data science, DevOps y agentes inteligentes.",
+ },
+ },
+];
diff --git a/src/assets/data/schedule.ts b/src/assets/data/schedule.ts
index d20bf2b..662979b 100644
--- a/src/assets/data/schedule.ts
+++ b/src/assets/data/schedule.ts
@@ -9,6 +9,8 @@ export type ScheduleEvent = {
title: string;
displayTitle: string;
speaker: string;
+ talkKey?: string;
+ keynoteSlug?: string;
label?: string;
language?: string[];
};
@@ -86,6 +88,7 @@ export const scheduleEvents: ScheduleEvent[] = [
title: "Keynote Speaker: Irit Katriel",
displayTitle: "Irit Katriel",
speaker: "Irit Katriel",
+ keynoteSlug: "irit-katriel",
label: "keynote",
},
{
@@ -341,6 +344,7 @@ export const scheduleEvents: ScheduleEvent[] = [
title: "Keynote Speaker: Luciano Ramalho",
displayTitle: "Luciano Ramalho",
speaker: "Luciano Ramalho",
+ keynoteSlug: "luciano-ramalho",
label: "keynote",
},
{
@@ -382,6 +386,7 @@ export const scheduleEvents: ScheduleEvent[] = [
title: "Keynote Speaker: Anna Pristoupilova",
displayTitle: "Anna Pristoupilova",
speaker: "Anna Pristoupilova",
+ keynoteSlug: "anna-pristoupilova",
label: "keynote",
},
{
@@ -642,6 +647,7 @@ export const scheduleEvents: ScheduleEvent[] = [
title: "Keynote Speaker: Malvika Sharan",
displayTitle: "Malvika Sharan",
speaker: "Malvika Sharan",
+ keynoteSlug: "malvika-sharan",
label: "keynote",
},
{
@@ -675,6 +681,7 @@ export const scheduleEvents: ScheduleEvent[] = [
displayTitle:
"Skills ejecutables: cómo enseñarle a un agente cómo funciona tu empresa",
speaker: "Johnny Montoya",
+ talkKey: "company-brain-skills",
label: "Artificial Intelligence",
language: ["ES"],
},
@@ -686,7 +693,8 @@ export const scheduleEvents: ScheduleEvent[] = [
date: "2026-07-26",
title: "Workshop: From S3 to AI Agent: Your First Queryable Lakehouse",
displayTitle: "From S3 to AI Agent: Your First Queryable Lakehouse",
- speaker: "David Vanegas",
+ speaker: "David Felipe Vanegas Ramírez",
+ talkKey: "from-s3-to-ai-agent",
label: "Data Engineering",
language: ["ES"],
},
@@ -698,7 +706,8 @@ export const scheduleEvents: ScheduleEvent[] = [
date: "2026-07-26",
title: "Workshop: Tu LLM está sangrando dinero y Python puede pararlo",
displayTitle: "Tu LLM está sangrando dinero y Python puede pararlo",
- speaker: "Roberto Bedoya",
+ speaker: "Roberto Bedoya García",
+ talkKey: "llm-observability",
label: "Artificial Intelligence",
language: ["ES"],
},
@@ -712,7 +721,8 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: The Fellowship of Agentic Evaluations: How to evaluate an agent?",
displayTitle:
"The Fellowship of Agentic Evaluations: How to evaluate an agent?",
- speaker: "Maria Rojas / Nicolas Roldan",
+ speaker: "María Fernanda Rojas Castro / Nicolás Roldán Fajardo",
+ talkKey: "fellowship-agentic-evaluations",
label: "Artificial Intelligence",
language: ["ES"],
},
@@ -726,7 +736,8 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: Más allá del Vibe Coding: Spec Driven Development con Code Graphs",
displayTitle:
"Más allá del Vibe Coding: Spec Driven Development con Code Graphs",
- speaker: "Esneider Bravo / Jonathan Vallejo",
+ speaker: "Jonathan Vallejo Muñoz / Esneider Bravo Benítez",
+ talkKey: "spec-driven-code-graphs",
label: "Artificial Intelligence",
language: ["ES"],
},
@@ -738,7 +749,8 @@ export const scheduleEvents: ScheduleEvent[] = [
date: "2026-07-26",
title: "Workshop: Patterns, Protocols and Tactics for Multi-Agent Systems",
displayTitle: "Patterns, Protocols and Tactics for Multi-Agent Systems",
- speaker: "Juan Gomez",
+ speaker: "Juan Guillermo Gómez",
+ talkKey: "multi-agent-patterns-protocols",
label: "Artificial Intelligence",
language: ["ES"],
},
@@ -752,9 +764,10 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: Multi-Agent Teams in AI-Assisted Development: A Glimpse Into the Future of Programming",
displayTitle:
"Multi-Agent Teams in AI-Assisted Development: A Glimpse Into the Future of Programming",
- speaker: "Jose Ortiz",
+ speaker: "José Hernán Ortiz Ocampo / Daniel Sabogal / Isabel Mora",
+ talkKey: "multi-agent-teams-ai-dev",
label: "Artificial Intelligence",
- language: ["ES"],
+ language: ["EN"],
},
{
id: "60",
@@ -766,7 +779,8 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: De ETL a Agentic Workflows: la evolución de la ingeniería de datos en la era de la IA generativa",
displayTitle:
"De ETL a Agentic Workflows: la evolución de la ingeniería de datos en la era de la IA generativa",
- speaker: "Jose Osorio",
+ speaker: "José Arturo Osorio Londoño",
+ talkKey: "etl-agentic-workflows",
label: "Lovelytics Sponsor",
language: ["ES"],
},
@@ -778,7 +792,8 @@ export const scheduleEvents: ScheduleEvent[] = [
date: "2026-07-26",
title: "Workshop: Future-proof Engineers with AI-DLC",
displayTitle: "Future-proof Engineers with AI-DLC",
- speaker: "Jesús Reyes / Carlos Riveros",
+ speaker: "Jesús Alfredo Reyes Vargas / Carlos Alberto Riveros Varela",
+ talkKey: "ai-dlc-future-proof",
label: "EPAM Sponsor",
language: ["ES"],
},
@@ -792,7 +807,8 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: Dashboards que piensan: construye analítica agéntica con Sigma",
displayTitle:
"Dashboards que piensan: construye analítica agéntica con Sigma",
- speaker: "Francisco Moya",
+ speaker: "Francisco Javier Moya Ortiz",
+ talkKey: "sigma-agentic-dashboards",
label: "Aimpoint Sponsor",
language: ["ES"],
},
@@ -814,7 +830,8 @@ export const scheduleEvents: ScheduleEvent[] = [
date: "2026-07-26",
title: "Workshop: Stop mocking, start containerizing",
displayTitle: "Stop mocking, start containerizing",
- speaker: "Felix Miño",
+ speaker: "Félix Miño",
+ talkKey: "stop-mocking-containerizing",
label: "Testing",
language: ["EN"],
},
@@ -826,7 +843,8 @@ export const scheduleEvents: ScheduleEvent[] = [
date: "2026-07-26",
title: "Workshop: De Notebook a Producción: MLOps End-to-End en Databricks",
displayTitle: "De Notebook a Producción: MLOps End-to-End en Databricks",
- speaker: "Emanuel Zapata",
+ speaker: "Emanuel Zapata Querubín",
+ talkKey: "mlops-databricks",
label: "MLOps",
language: ["ES"],
},
@@ -840,7 +858,8 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: PyBlend: Towards an AI Food Scientist for Nutritional Product Design",
displayTitle:
"PyBlend: Towards an AI Food Scientist for Nutritional Product Design",
- speaker: "Andrés Vasquéz",
+ speaker: "Andrés Vásquez Restrepo",
+ talkKey: "pyblend-ai-food-scientist",
label: "Artificial Intelligence",
language: ["EN"],
},
@@ -851,10 +870,11 @@ export const scheduleEvents: ScheduleEvent[] = [
hour: "10:30 - 12:30",
date: "2026-07-26",
title:
- "Workshop: ¡Es ahora o nunca! Dieta de tokens con TOON para agrandar tu bolsillo y que la IA entienda más",
+ "Workshop: ¡Es ahorra o nunca! Dieta de tokens con TOON para agrandar tu bolsillo y que la IA entienda más",
displayTitle:
- "¡Es ahora o nunca! Dieta de tokens con TOON para agrandar tu bolsillo y que la IA entienda más",
- speaker: "Andres Repetto",
+ "¡Es ahorra o nunca! Dieta de tokens con TOON para agrandar tu bolsillo y que la IA entienda más",
+ speaker: "Mauricio Repetto Ferrero",
+ talkKey: "toon-token-diet",
label: "Artificial Intelligence",
language: ["ES"],
},
@@ -867,7 +887,8 @@ export const scheduleEvents: ScheduleEvent[] = [
title:
"Workshop: Ingestión de video de alto rendimiento con Python asíncrono",
displayTitle: "Ingestión de video de alto rendimiento con Python asíncrono",
- speaker: "Darío Guzmán",
+ speaker: "Darío Jesús Guzmán Durán",
+ talkKey: "async-video-ingestion",
label: "Computer Vision",
language: ["ES"],
},
@@ -881,7 +902,8 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: LangGraph and Strands Agents: Core Concepts, Patterns, and Tradeoffs",
displayTitle:
"LangGraph and Strands Agents: Core Concepts, Patterns, and Tradeoffs",
- speaker: "Jose Ortiz",
+ speaker: "José Hernán Ortiz Ocampo / Isabel Mora",
+ talkKey: "langgraph-strands-agents",
label: "LOKA Sponsor",
language: ["ES"],
},
@@ -895,7 +917,8 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: NLP en la práctica: de lingüística de corpus a RAG con Python",
displayTitle:
"NLP en la práctica: de lingüística de corpus a RAG con Python",
- speaker: "Bibiana Suárez / Dora Alzáte",
+ speaker: "Biviana Marcela Suárez Sierra / Dora Cecilia Alzate Gallo",
+ talkKey: "nlp-corpus-rag",
label: "EAFIT Sponsor",
language: ["ES"],
},
@@ -909,7 +932,8 @@ export const scheduleEvents: ScheduleEvent[] = [
"Workshop: Building Your First AI Tool Server: Creating a Pokédex with FastMCP and Python",
displayTitle:
"Building Your First AI Tool Server: Creating a Pokédex with FastMCP and Python",
- speaker: "Felipe Sanchéz / Daniel Galvis",
+ speaker: "Felipe Sánchez / Daniel Galvis",
+ talkKey: "fastmcp-pokedex",
label: "Aimpoint Sponsor",
language: ["ES"],
},
@@ -942,6 +966,7 @@ export const scheduleEvents: ScheduleEvent[] = [
title: "Keynote Speaker: Tereza Iofciu",
displayTitle: "Tereza Iofciu",
speaker: "Tereza Iofciu",
+ keynoteSlug: "tereza-iofciu",
label: "keynote",
},
{
@@ -974,6 +999,7 @@ export const scheduleEvents: ScheduleEvent[] = [
title: "Keynote Speaker: Kari L. Jordan",
displayTitle: "Kari L. Jordan",
speaker: "Kari L. Jordan",
+ keynoteSlug: "kari-l-jordan",
label: "keynote",
},
{
diff --git a/src/assets/data/speakers-content.locale.ts b/src/assets/data/speakers-content.locale.ts
index 3d1e2d8..4cd72a6 100644
--- a/src/assets/data/speakers-content.locale.ts
+++ b/src/assets/data/speakers-content.locale.ts
@@ -1,10 +1,12 @@
import type { SiteLocale } from "@/lib/site-messages";
+import { workshopSpeakerContentByLocale } from "./workshop-speakers-content.locale";
export type SpeakerContent = {
title: string;
description: string;
talkTitle: string;
talkDescription: string;
+ workshopRequirements?: string;
};
export type SpeakerContentBySlug = Record;
@@ -40,6 +42,7 @@ const julianaJuanTalkEn = {
export const speakerContentByLocale: Record =
{
en: {
+ ...workshopSpeakerContentByLocale.en,
"cristhian-david-recalde-arevalo": {
title: "Mobile Developer @ HomeTeam Network",
description:
@@ -305,6 +308,7 @@ export const speakerContentByLocale: Record =
},
},
es: {
+ ...workshopSpeakerContentByLocale.es,
"cristhian-david-recalde-arevalo": {
title: "Mobile Developer @ HomeTeam Network",
description:
diff --git a/src/assets/data/speakers.ts b/src/assets/data/speakers.ts
index ad6f9e9..9a7f053 100644
--- a/src/assets/data/speakers.ts
+++ b/src/assets/data/speakers.ts
@@ -23,6 +23,8 @@ export const speakerTrackOrder: SpeakerTrack[] = [
"scientific-computing",
];
+export type SpeakerFormat = "talk" | "workshop";
+
export type Speaker = {
id: number;
slug: string;
@@ -35,9 +37,14 @@ export type Speaker = {
country: string;
language: string;
level: string;
+ format: SpeakerFormat;
+};
+
+type SpeakerInput = Omit & {
+ format?: SpeakerFormat;
};
-type SpeakerInput = Omit;
+import { workshopSpeakerList } from "./workshop-speakers";
const speakerList: SpeakerInput[] = [
{
@@ -279,7 +286,7 @@ const speakerList: SpeakerInput[] = [
github: "https://github.com/sergioFavio",
linkedin:
"https://www.linkedin.com/in/sergio-hern%C3%A1n-valenzuela-c%C3%A1mara-4b965733/",
- country: "Bolivia",
+ country: "Chile",
language: "Spanish / Español",
level: "All / Para todos los niveles",
},
@@ -374,6 +381,7 @@ const speakerList: SpeakerInput[] = [
slug: "carlos-andres-osorio-alcalde",
talkKey: "carlos-andres-osorio-alcalde",
name: "Carlos Andrés Osorio Alcalde",
+ image: "/images/speakers/carlos-andres-osorio-alcalde.jpg",
tracks: ["artificial-intelligence", "machine-learning", "data-science"],
linkedin:
"https://www.linkedin.com/in/carlos-andr%C3%A9s-osorio-alcalde-1a7ba9137/",
@@ -385,6 +393,7 @@ const speakerList: SpeakerInput[] = [
slug: "sankalp-gilda",
talkKey: "sankalp-gilda",
name: "Sankalp Gilda",
+ image: "/images/speakers/sankalp-gilda.jpg",
tracks: [
"artificial-intelligence",
"data-science",
@@ -401,6 +410,7 @@ const speakerList: SpeakerInput[] = [
slug: "marcela-hoyos-cano",
talkKey: "marcela-hoyos-cano",
name: "Marcela Hoyos Cano",
+ image: "/images/speakers/marcela-hoyos-cano.jpg",
tracks: ["artificial-intelligence", "data-science"],
github: "https://github.com/MarcelaHoyos",
linkedin: "https://www.linkedin.com/in/marcelahoyos1205/",
@@ -412,6 +422,7 @@ const speakerList: SpeakerInput[] = [
slug: "sebastian-gomez-ahumada",
talkKey: "llm-judges-dspy",
name: "Sebastián Gómez Ahumada",
+ image: "/images/speakers/sebastian-gomez-ahumada.jpg",
tracks: ["artificial-intelligence", "devops", "machine-learning"],
github: "https://github.com/gomez2608",
linkedin: "https://www.linkedin.com/in/sebastiangahumada/",
@@ -451,6 +462,7 @@ const speakerList: SpeakerInput[] = [
language: "Spanish / Español",
level: "All / Para todos los niveles",
},
+ ...workshopSpeakerList,
];
export const speakers: Speaker[] = speakerList
@@ -459,5 +471,6 @@ export const speakers: Speaker[] = speakerList
)
.map((speaker, index) => ({
...speaker,
+ format: speaker.format ?? "talk",
id: index + 1,
}));
diff --git a/src/assets/data/sponsors.ts b/src/assets/data/sponsors.ts
index a2ed2a8..2255b69 100644
--- a/src/assets/data/sponsors.ts
+++ b/src/assets/data/sponsors.ts
@@ -6,7 +6,8 @@ export type SponsorTierKey =
| "gold"
| "goldPlus"
| "silverPlus"
- | "silver";
+ | "silver"
+ | "media";
export type Sponsor = {
name: string;
@@ -156,4 +157,25 @@ export const sponsorTiers: SponsorTier[] = [
},
],
},
+ {
+ tierKey: "media",
+ title: "Media",
+ size: "XS",
+ description:
+ "Media partners amplifying PyCon Colombia stories and community news.",
+ sponsors: [
+ {
+ name: "Guapacho",
+ slug: "guapacho",
+ logo: "/images/sponsors/guapacho.svg",
+ href: "https://guapacho.com/",
+ },
+ {
+ name: "ENTER.CO",
+ slug: "enter-co",
+ logo: "/images/sponsors/enter-co.svg",
+ href: "https://www.enter.co/",
+ },
+ ],
+ },
];
diff --git a/src/assets/data/workshop-speakers-content.locale.ts b/src/assets/data/workshop-speakers-content.locale.ts
new file mode 100644
index 0000000..858514a
--- /dev/null
+++ b/src/assets/data/workshop-speakers-content.locale.ts
@@ -0,0 +1,581 @@
+import type { SiteLocale } from "@/lib/site-messages";
+import type { SpeakerContentBySlug } from "./speakers-content.locale";
+
+export const workshopSpeakerContentByLocale: Record<
+ SiteLocale,
+ SpeakerContentBySlug
+> = {
+ en: {
+ "david-felipe-vanegas-ramirez": {
+ title: "Advanced Data Engineer @ Loka",
+ description:
+ "David is a data engineer at Loka, where he designs and maintains data platforms on AWS for clients across multiple industries. With nearly five years of experience, his day-to-day work revolves around Apache Iceberg, PySpark, Airflow, and production lakehouse architectures. He holds AWS and Databricks certifications and has recently explored the intersection of data engineering and AI agents, building personal tooling on top of the Anthropic SDK. Based in Bogotá, he believes there is a shortage of practical Spanish-language technical content on modern data engineering.",
+ talkTitle: "From S3 to AI Agent: Your First Queryable Lakehouse",
+ talkDescription:
+ "AI agents are only as good as the data they can query. Most agents built today connect to outdated CSVs, unstructured databases, or nothing at all. What if your agent could query a real lakehouse—with versioning, schema evolution, and time travel—using natural language? In this workshop we build exactly that from scratch using only open-source tools that run on your laptop. Starting from a local Docker Compose stack, we stand up a functional lakehouse with MinIO as S3-compatible storage, Apache Iceberg as the table format, Project Nessie as a Git-like versioned catalog, and Trino as the SQL query engine. On top of that, we build a Python MCP server that exposes Iceberg tables as tools for an AI agent, and connect Claude so it can query the lakehouse in natural language.",
+ workshopRequirements:
+ "Minimum hardware: laptop with at least 8 GB RAM (16 GB recommended) and 10 GB free disk space.\n\nRequired software (install before the event):\n• Docker Desktop: https://www.docker.com/products/docker-desktop\n• Python 3.11+: https://www.python.org/downloads\n• Git: https://git-scm.com\n• Claude Desktop (free): https://claude.ai/download\n• VS Code (recommended): https://code.visualstudio.com",
+ },
+ "felix-mino": {
+ title: "Software Engineer @ Stack Builders",
+ description:
+ "Félix is a Software Engineer at Stack Builders with a focus on testing practices and developer tooling. He advocates for practical approaches to software quality and believes that real integration tests—backed by actual running services—are far more valuable than elaborate mock setups.",
+ talkTitle: "Stop Mocking, Start Containerizing",
+ talkDescription:
+ "Tired of maintaining brittle mock objects that don't reflect production behavior? In this workshop, you'll learn how to replace mocks with real containerized services using Testcontainers for Python. Bring your laptop and a running Docker engine—we're going to get our hands dirty!",
+ workshopRequirements:
+ "Laptop with Docker Desktop installed and a running Docker engine.",
+ },
+ "roberto-bedoya-garcia": {
+ title: "AI Engineer @ NowBit",
+ description:
+ "Roberto is an AI Engineer at NowBit focused on LLM observability and cost optimization. He helps teams monitor, debug, and reduce the operational costs of production AI systems—turning token spend from an unpredictable liability into a manageable engineering concern.",
+ talkTitle: "Your LLM Is Bleeding Money and Python Can Stop It",
+ talkDescription:
+ "Every token your LLM processes costs money, and without proper observability, costs can spiral out of control. In this workshop, you'll learn how to instrument your Python LLM applications to track token usage, latency, and cost per request. We'll build a complete observability stack using open-source tools, set up alerts for cost anomalies, and implement strategies to cut your LLM bill without sacrificing quality.",
+ },
+ "hazel-saenz": {
+ title: "Developer Advocate @ AWS",
+ description:
+ "Hazel is a Developer Advocate at AWS passionate about making AI accessible through open-source tools. She builds demos and workshops that help developers get started with AI agents and Python, with a special focus on creative and beginner-friendly applications.",
+ talkTitle: "Create Your AI DJ: Agents in Python and Open Source",
+ talkDescription:
+ "Create your own AI DJ using Python agents and open-source tools! In this beginner-friendly workshop, you'll learn the fundamentals of AI agents, build a music recommendation system powered by Python, and connect it to real music APIs. No prior AI experience required—just curiosity and a love for music. By the end, you'll have a working AI DJ that curates playlists based on mood, genre, and personal preferences.",
+ },
+ "emanuel-zapata-querubin": {
+ title: "Data Engineer @ Lovelytics",
+ description:
+ "Emanuel is a Data Engineer at Lovelytics specializing in MLOps and data platform architecture. He has hands-on experience taking ML projects from exploratory notebooks to fully automated production pipelines on Databricks, and is passionate about bridging the gap between data science and engineering.",
+ talkTitle: "From Notebook to Production: End-to-End MLOps on Databricks",
+ talkDescription:
+ "Move beyond Jupyter notebooks and deploy machine learning models to production using MLOps best practices on Databricks. In this intermediate workshop, you'll learn to structure ML projects for production, implement CI/CD pipelines for models, manage experiments with MLflow, deploy models as REST APIs, and monitor them in production. We'll walk through a complete end-to-end example from data preparation to automated retraining.",
+ },
+ "santiago-suarez-sampayo": {
+ title: "Data Engineer @ Aimpoint Digital",
+ description:
+ "Santiago is a Data Engineer at Aimpoint Digital with expertise in building AI-powered applications and integrations. He enjoys creating practical developer tools that combine cutting-edge AI APIs with everyday communication platforms, making advanced AI capabilities accessible to any user.",
+ talkTitle:
+ "Build an OpenClaw-style Coding Assistant on WhatsApp with Claude Agent SDK",
+ talkDescription:
+ "Build a fully functional AI coding assistant that lives in WhatsApp, inspired by OpenClaw, using Claude's Agent SDK and Python. In this hands-on workshop, you'll learn to integrate the Claude Agent SDK with the WhatsApp Business API, design conversational flows for code assistance, handle multi-turn conversations with memory, and deploy your assistant to the cloud. Walk away with a working AI coding companion accessible from any device.",
+ },
+ "johnny-montoya": {
+ title: "AI Engineer @ Unloquer",
+ description:
+ "Johnny is an AI Engineer at Unloquer and creator of content about data and AI under the handle @eldelosdatos_. He specializes in building agentic systems that encode organizational knowledge, helping companies turn their internal processes and expertise into callable agent skills.",
+ talkTitle:
+ "Executable Skills: How to Teach an Agent How Your Company Works",
+ talkDescription:
+ "How do you make an AI agent that truly understands how your company works? In this workshop, you'll learn to design and implement executable skills—reusable, structured pieces of organizational knowledge that agents can invoke. We'll cover skill architecture, knowledge representation in Python, integrating skills with popular agent frameworks, and testing skill reliability. By the end, you'll have a blueprint for building a company brain that your agents can tap into.",
+ },
+ "nicolas-roldan-fajardo": {
+ title: "ML Engineer @ Loka",
+ description:
+ "Nicolás is an ML Engineer at Loka focused on evaluation frameworks for agentic AI systems. He works on designing robust test suites that validate agent behavior across complex multi-step workflows, bringing engineering rigor to the often-overlooked challenge of AI evaluation.",
+ talkTitle:
+ "The Fellowship of Agentic Evaluations: How to Evaluate an Agent?",
+ talkDescription:
+ "How do you know if your AI agent is actually doing the right thing? In this workshop, we'll explore practical evaluation frameworks for agentic systems. Forming a fellowship of evaluation techniques—from simple unit tests to complex behavioral evaluations—we'll apply them to real agent scenarios. You'll learn to define evaluation criteria, implement automated test suites, measure agent performance quantitatively, and track improvement over time.",
+ },
+ "maria-fernanda-rojas-castro": {
+ title: "ML Engineer @ Loka",
+ description:
+ "María Fernanda is an ML Engineer at Loka with expertise in building and evaluating intelligent systems. She focuses on practical methodologies for ensuring AI agent reliability and safety, and collaborates on research into scalable evaluation techniques for production agentic workflows.",
+ talkTitle:
+ "The Fellowship of Agentic Evaluations: How to Evaluate an Agent?",
+ talkDescription:
+ "How do you know if your AI agent is actually doing the right thing? In this workshop, we'll explore practical evaluation frameworks for agentic systems. Forming a fellowship of evaluation techniques—from simple unit tests to complex behavioral evaluations—we'll apply them to real agent scenarios. You'll learn to define evaluation criteria, implement automated test suites, measure agent performance quantitatively, and track improvement over time.",
+ },
+ "jonathan-vallejo-munoz": {
+ title: "Software Engineer @ Lendingfront",
+ description:
+ "Jonathan is a Software Engineer at Lendingfront working at the intersection of AI-assisted development and software architecture. He advocates for disciplined development practices that go beyond prompt-driven coding, and explores how structured specifications can make AI-generated code more coherent and maintainable.",
+ talkTitle: "Beyond Vibe Coding: Spec Driven Development with Code Graphs",
+ talkDescription:
+ "Go beyond vibe coding and learn how to use specifications and code graphs to guide AI-assisted development. In this workshop, you'll discover how structured specs and dependency graphs give AI coding tools the context they need to produce coherent, maintainable code. We'll work with real Python projects to define specs, generate code graphs, and wire them into your AI-assisted workflow—resulting in code that actually makes sense architecturally.",
+ },
+ "esneider-bravo-benitez": {
+ title: "Software Engineer @ Lendingfront",
+ description:
+ "Esneider is a Software Engineer at Lendingfront with a focus on code generation tools and developer experience. He explores how structured specifications can guide AI coding assistants to produce more reliable outputs, and contributes to open-source tooling for spec-driven AI development.",
+ talkTitle: "Beyond Vibe Coding: Spec Driven Development with Code Graphs",
+ talkDescription:
+ "Go beyond vibe coding and learn how to use specifications and code graphs to guide AI-assisted development. In this workshop, you'll discover how structured specs and dependency graphs give AI coding tools the context they need to produce coherent, maintainable code. We'll work with real Python projects to define specs, generate code graphs, and wire them into your AI-assisted workflow—resulting in code that actually makes sense architecturally.",
+ },
+ "maris-botero": {
+ title: "ML Engineer @ Mercado Libre",
+ description:
+ "Maris is an ML Engineer at Mercado Libre passionate about making AI accessible to developers at all levels. She specializes in building multi-agent systems with Python and loves demystifying complex AI concepts through practical, beginner-friendly workshops.",
+ talkTitle: "From Prompts to Agents: Intelligent Systems with Python",
+ talkDescription:
+ "Take your first steps from writing simple prompts to building intelligent multi-agent systems with Python. In this beginner-friendly workshop, you'll learn the foundations of AI agents, how they differ from simple LLM calls, how to chain agents together for complex tasks, and how to give them tools and memory. Using popular Python frameworks, you'll build a working multi-agent system by the end of the session—no prior AI experience needed.",
+ },
+ "jose-hernan-ortiz-ocampo": {
+ title: "Senior ML Engineer @ Loka",
+ description:
+ "José Hernán is a Senior ML Engineer at Loka with deep expertise in agentic AI frameworks. He has designed and built production multi-agent systems using a variety of orchestration tools, and brings a pragmatic, engineering-first perspective to AI development—focused on what works in production rather than what looks impressive in demos.",
+ talkTitle:
+ "LangGraph and Strands Agents: Core Concepts, Patterns, and Tradeoffs",
+ talkDescription:
+ "Dive deep into two powerful agentic frameworks—LangGraph and Strands Agents—and learn when to use each. This advanced workshop covers the core concepts behind both frameworks: state machines, graph-based orchestration, tool use, and memory management. We'll build the same agentic application in both frameworks, compare their strengths and limitations, and discuss the architectural trade-offs to help you choose the right tool for your production AI systems.",
+ },
+ "isabel-mora": {
+ title: "Junior ML Engineer @ Loka",
+ description:
+ "Isabel is a Junior ML Engineer at Loka contributing to the development and evaluation of agentic AI systems. She brings fresh perspectives to agent design and implementation challenges, and is passionate about making complex AI frameworks understandable and accessible.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "jose-hernan-ortiz-ocampo-2": {
+ title: "Senior ML Engineer @ Loka",
+ description:
+ "José Hernán is a Senior ML Engineer at Loka with deep expertise in agentic AI frameworks. He has designed and built production multi-agent systems using a variety of orchestration tools, and brings a pragmatic, engineering-first perspective to AI development—focused on what works in production rather than what looks impressive in demos.",
+ talkTitle:
+ "Multi-Agent Teams in AI-Assisted Development: A Glimpse Into the Future of Programming",
+ talkDescription:
+ "Get a glimpse into the future of programming, where teams of AI agents collaborate with human developers. In this workshop, you'll explore cutting-edge patterns for multi-agent collaboration in AI-assisted development: code generation agents, review agents, testing agents, and orchestration strategies. We'll build a mini multi-agent development team using Python and the Claude SDK, and discuss where this technology is heading and how developers can prepare.",
+ },
+ "daniel-sabogal": {
+ title: "Data & ML Intern @ Loka",
+ description:
+ "Daniel is a Data & ML Intern at Loka passionate about exploring the intersection of multi-agent systems and software development workflows. He brings curiosity and fresh ideas to the future of AI-assisted programming, and is eager to share what he's learned building with cutting-edge AI tools.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "isabel-mora-2": {
+ title: "Junior ML Engineer @ Loka",
+ description:
+ "Isabel is a Junior ML Engineer at Loka contributing to the development and evaluation of agentic AI systems. She brings fresh perspectives to agent design and implementation challenges, and is passionate about making complex AI frameworks understandable and accessible.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "jose-arturo-osorio-londono": {
+ title: "Data Engineer @ Lovelytics",
+ description:
+ "José Arturo is a Data Engineer at Lovelytics specializing in the modernization of data pipelines and workflows. He explores how generative AI is transforming traditional data engineering practices into adaptive, intelligent systems—and helps teams navigate the evolution from rigid ETL to dynamic agentic architectures.",
+ talkTitle:
+ "From ETL to Agentic Workflows: The Evolution of Data Engineering in the Generative AI Era",
+ talkDescription:
+ "Traditional ETL pipelines are deterministic and rigid. Agentic workflows powered by generative AI can adapt, reason, and handle the unexpected. In this workshop, you'll learn how to evolve your data engineering practices from classic ETL to intelligent agentic workflows. We'll cover designing agents for data extraction, transformation decisions, and loading strategies—as well as how to combine traditional orchestration tools with AI agents for hybrid architectures.",
+ },
+ "biviana-marcela-suarez-sierra": {
+ title: "Researcher @ Universidad EAFIT",
+ description:
+ "Biviana Marcela is a researcher at Universidad EAFIT bridging the gap between traditional corpus linguistics and modern NLP techniques. She applies Python-based tools to analyze large text collections and build intelligent retrieval systems, combining academic linguistic rigor with practical AI engineering.",
+ talkTitle: "NLP in Practice: From Corpus Linguistics to RAG with Python",
+ talkDescription:
+ "Bridge the gap between traditional corpus linguistics and modern Retrieval-Augmented Generation (RAG) systems. In this workshop, researchers and developers will learn how classical NLP techniques—corpus analysis, tokenization, and annotation—can inform and improve RAG implementations. We'll use Python to build a pipeline that takes a text corpus from raw collection through linguistic analysis to a queryable RAG system, demonstrating how academic NLP foundations enhance practical AI applications.",
+ },
+ "dora-cecilia-alzate-gallo": {
+ title: "Researcher @ Universidad EAFIT",
+ description:
+ "Dora Cecilia is a researcher at Universidad EAFIT specializing in computational linguistics and natural language processing. Her work focuses on applying RAG architectures to linguistic research and knowledge extraction tasks, bringing a deep understanding of language structure to modern AI systems.",
+ talkTitle: "NLP in Practice: From Corpus Linguistics to RAG with Python",
+ talkDescription:
+ "Bridge the gap between traditional corpus linguistics and modern Retrieval-Augmented Generation (RAG) systems. In this workshop, researchers and developers will learn how classical NLP techniques—corpus analysis, tokenization, and annotation—can inform and improve RAG implementations. We'll use Python to build a pipeline that takes a text corpus from raw collection through linguistic analysis to a queryable RAG system, demonstrating how academic NLP foundations enhance practical AI applications.",
+ },
+ "jesus-alfredo-reyes-vargas": {
+ title: "Software Engineer @ EPAM Systems",
+ description:
+ "Jesús Alfredo is a Software Engineer at EPAM Systems passionate about continuous learning and AI-powered developer education. He explores how AI tools can accelerate skill development and help engineers stay relevant in a fast-changing landscape, and is a strong advocate for structured, adaptive learning curricula.",
+ talkTitle: "Future-proof Engineers with AI-DLC",
+ talkDescription:
+ "AI is transforming not just what engineers build, but how they learn and grow. In this workshop, you'll discover AI-DLC (AI-Driven Learning Curriculum), a framework for creating personalized, adaptive learning paths for software engineers using AI tools. We'll explore how to design learning curricula that incorporate AI assistance, build skills that complement rather than compete with AI, and create development plans that keep engineers relevant and valuable for years to come.",
+ },
+ "carlos-alberto-riveros-varela": {
+ title: "Software Engineer @ EPAM Systems",
+ description:
+ "Carlos Alberto is a Software Engineer at EPAM Systems focused on developer growth and modern learning methodologies. He is passionate about combining AI with structured learning paths to help engineers future-proof their careers and adapt to the rapidly evolving demands of the industry.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "felipe-sanchez": {
+ title: "Data Engineer @ Aimpoint Digital",
+ description:
+ "Felipe is a Data Engineer at Aimpoint Digital with expertise in building AI tool servers and integrations. He enjoys creating hands-on tutorials that make complex AI development concepts approachable and fun, and is a strong believer in learning by building real, playful projects.",
+ talkTitle:
+ "Building Your First AI Tool Server: Creating a Pokédex with FastMCP and Python",
+ talkDescription:
+ "Build your first AI tool server from scratch using FastMCP and Python, with the Pokédex as your guide! In this hands-on workshop, you'll learn the Model Context Protocol (MCP), set up a FastMCP server, implement custom tools that AI agents can call, and connect everything into a working Pokédex AI assistant. No prior MCP experience needed—just Python knowledge and a love for Pokémon.",
+ },
+ "daniel-galvis": {
+ title: "Data Engineer @ Aimpoint Digital",
+ description:
+ "Daniel is a Data Engineer at Aimpoint Digital focused on AI tooling and developer experience. He brings practical expertise in building Python-based AI services and tool integrations, and enjoys collaborating on workshops that make cutting-edge AI development accessible to a broad audience.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "francisco-javier-moya-ortiz": {
+ title: "Data Analyst @ Aimpoint Digital",
+ description:
+ "Francisco Javier is a Data Analyst at Aimpoint Digital specializing in business intelligence and agentic analytics. He explores how AI agents can be integrated with modern BI tools like Sigma to create self-explanatory, autonomous dashboards that go far beyond static charts.",
+ talkTitle: "Dashboards That Think: Build Agentic Analytics with Sigma",
+ talkDescription:
+ "Learn how to build dashboards that don't just display data—they think. In this workshop, you'll combine Sigma's business intelligence capabilities with Python-based AI agents to create agentic analytics dashboards. We'll cover integrating LLMs with Sigma, building agent-driven data narratives, automating insight discovery, and creating dashboards that can answer follow-up questions and adapt dynamically to user context.",
+ },
+ "andres-vasquez-restrepo": {
+ title: "Data Scientist @ Cuesta Partners",
+ description:
+ "Andrés is a Data Scientist at Cuesta Partners applying machine learning and AI to food science and nutritional product design. His interdisciplinary work bridges Python-based AI with domain expertise in nutrition and formulation, demonstrating the power of AI in non-traditional domains.",
+ talkTitle:
+ "PyBlend: Towards an AI Food Scientist for Nutritional Product Design",
+ talkDescription:
+ "Discover how Python and AI are transforming nutritional product design. In this workshop, you'll be introduced to PyBlend, a framework that models the complex optimization problem of designing nutritional formulations. We'll explore how machine learning algorithms can navigate vast ingredient spaces, balance nutritional constraints, and generate novel product formulations. Attendees will gain hands-on experience with AI-driven product design and learn how Python makes interdisciplinary AI applications possible.",
+ },
+ "cesar-mateo-gonzalez-rodriguez": {
+ title: "Data Scientist @ GoDaddy",
+ description:
+ "César Mateo is a Data Scientist at GoDaddy specializing in anomaly detection and unsupervised learning. He applies deep learning techniques, including autoencoders, to find rare but critical patterns in large-scale datasets—combining theoretical rigor with practical engineering to deliver production-ready solutions.",
+ talkTitle:
+ "How to Find Pearls on the Bottom of the Sea – Autoencoders as Anomaly Detection Models",
+ talkDescription:
+ "Like finding pearls on the ocean floor, detecting rare anomalies in large datasets requires sophisticated techniques. In this workshop, you'll learn the theory and practice of autoencoder architectures, how to train them for anomaly detection, how to set decision boundaries, and how to evaluate their performance. We'll work with real-world datasets and build complete anomaly detection pipelines in Python.",
+ },
+ "juan-guillermo-gomez": {
+ title: "Founder @ DevHack",
+ description:
+ "Juan Guillermo is the founder of DevHack and a renowned speaker on Python, AI, and software architecture throughout Latin America. He has years of experience teaching developers about practical AI implementation patterns and multi-agent system design, and is a passionate advocate for the Python community.",
+ talkTitle: "Patterns, Protocols and Tactics for Multi-Agent Systems",
+ talkDescription:
+ "Master the essential patterns, protocols, and tactics for building robust multi-agent systems in Python. In this workshop, you'll learn proven architectural patterns for multi-agent collaboration, communication protocols between agents, error handling and recovery strategies, and practical implementation tactics. Drawing from real-world experience, we'll build multiple agent architectures and analyze their trade-offs—giving you a reusable toolkit for designing multi-agent systems.",
+ },
+ "mauricio-repetto-ferrero": {
+ title: "AI Engineer @ Nortal",
+ description:
+ "Mauricio is an AI Engineer at Nortal with a passion for optimizing LLM token consumption. He developed TOON, a tool for creating compact, semantically rich data representations that reduce token usage while improving AI comprehension—helping teams cut costs without losing model performance.",
+ talkTitle:
+ "Now or Never! Token Diet with TOON to Save Money and Help AI Understand More",
+ talkDescription:
+ "Tokens cost money, and every unnecessary token you send to an LLM is money wasted. In this workshop, you'll learn how to put your AI applications on a token diet using TOON, a Python tool for creating compact, semantically rich data representations. We'll cover TOON's architecture, how to serialize complex data structures efficiently, measure token reduction, and integrate TOON into existing AI pipelines—without losing the information your models need.",
+ },
+ "dario-jesus-guzman-duran": {
+ title: "Software Engineer @ Gudar Devs",
+ description:
+ "Darío Jesús is a Software Engineer at Gudar Devs specializing in high-performance data processing and async Python. He builds scalable video processing pipelines that leverage Python's async capabilities for maximum throughput, and is passionate about squeezing every bit of performance out of Python I/O workloads.",
+ talkTitle: "High-Performance Video Ingestion with Async Python",
+ talkDescription:
+ "Video is one of the most demanding data types to process. In this workshop, you'll learn how to build high-performance video ingestion pipelines using Python's async capabilities. We'll cover asyncio fundamentals for I/O-bound video processing, concurrent frame extraction and processing, async queue patterns for data pipelines, performance profiling and optimization, and real-world deployment considerations. Build a production-grade async video ingestion system from scratch.",
+ },
+ "juan-jose-barrientos-salazar": {
+ title: "AI Engineer @ The TRES Group",
+ description:
+ "Juan José is an AI Engineer at The TRES Group with a strong foundation in the mathematics of deep learning. He specializes in understanding and implementing transformer architectures from first principles using PyTorch, making the inner workings of LLMs accessible to engineers who want to go beyond API calls.",
+ talkTitle:
+ "LLMs in Depth: How an LLM Works Mathematically (and Its Implementation with PyTorch)",
+ talkDescription:
+ "Demystify the mathematics behind Large Language Models and implement them from scratch in PyTorch. This advanced workshop takes you through the complete mathematical foundations: attention mechanisms, transformer architecture, positional encodings, layer normalization, and training dynamics. For each mathematical concept, we'll write the corresponding PyTorch implementation—giving you a deep, hands-on understanding of how LLMs actually work under the hood.",
+ },
+ "raul-rodriguez": {
+ title: "AI Engineer @ Mercado Libre",
+ description:
+ "Raúl is an AI Engineer at Mercado Libre working on innovative AI copilot applications. He built NORTH, a system that uses Claude as a true coding and decision-making copilot for real-world engineering workflows—demonstrating what it looks like when AI goes beyond autocomplete and becomes a genuine engineering partner.",
+ talkTitle: "NORTH: Claude as a Real Copilot",
+ talkDescription:
+ "Learn how NORTH uses Claude as a genuine coding copilot—not just a code completer, but a true engineering partner. In this workshop, you'll explore the architecture of NORTH and learn how to build similar AI copilot integrations using Claude's API and Python. We'll cover prompt engineering for coding assistance, maintaining context across long sessions, integrating with development workflows, and building the feedback loops that make AI copilots genuinely useful.",
+ },
+ "jeronimo-lopez-gomez": {
+ title: "Researcher @ Universidad de Antioquia",
+ description:
+ "Jerónimo is a researcher at Universidad de Antioquia specializing in hardware-software co-design and machine learning acceleration. He works on deploying ML models to FPGAs and other hardware platforms using hls4ml and Python, bridging the gap between high-level Python ML development and low-level hardware implementation.",
+ talkTitle: "hls4ml: From Python Models to Hardware Acceleration",
+ talkDescription:
+ "Bridge the gap between Python machine learning and hardware implementation using hls4ml. In this workshop, you'll learn how to take ML models trained in Python (TensorFlow, PyTorch, scikit-learn) and deploy them to FPGAs using the hls4ml library. We'll cover model quantization, hardware-aware training, the HLS synthesis workflow, performance profiling, and practical considerations for deploying ML at the edge. No prior FPGA experience required.",
+ },
+ "natalia-echeverri-duran": {
+ title: "Researcher @ Universidad de Antioquia",
+ description:
+ "Natalia is a researcher at Universidad de Antioquia focused on machine learning hardware acceleration. She explores techniques for efficiently mapping Python ML models to FPGA implementations for edge computing applications, contributing to research at the frontier of AI hardware co-design.",
+ talkTitle: "hls4ml: From Python Models to Hardware Acceleration",
+ talkDescription:
+ "Bridge the gap between Python machine learning and hardware implementation using hls4ml. In this workshop, you'll learn how to take ML models trained in Python (TensorFlow, PyTorch, scikit-learn) and deploy them to FPGAs using the hls4ml library. We'll cover model quantization, hardware-aware training, the HLS synthesis workflow, performance profiling, and practical considerations for deploying ML at the edge. No prior FPGA experience required.",
+ },
+ },
+ es: {
+ "david-felipe-vanegas-ramirez": {
+ title: "Advanced Data Engineer @ Loka",
+ description:
+ "David es ingeniero de datos en Loka, donde diseña y mantiene plataformas de datos en AWS para clientes de múltiples industrias. Con casi cinco años de experiencia, su trabajo diario gira en torno a Apache Iceberg, PySpark, Airflow y arquitecturas lakehouse en producción. Tiene certificaciones de AWS y Databricks y ha explorado recientemente la intersección entre ingeniería de datos y agentes de IA. Con base en Bogotá, cree que hay escasez de contenido técnico práctico en español sobre ingeniería de datos moderna.",
+ talkTitle: "From S3 to AI Agent: Your First Queryable Lakehouse",
+ talkDescription:
+ "Los agentes de IA son tan buenos como los datos que pueden consultar. El problema es que la mayoría de los agentes que se construyen hoy están conectados a CSVs desactualizados, bases de datos sin estructura o simplemente a nada. ¿Y si tu agente pudiera consultar un lakehouse real — con versionado, evolución de esquemas y viajes en el tiempo — usando lenguaje natural? En este taller construiremos exactamente eso, desde cero, usando únicamente herramientas open source que corren en tu laptop. Partiendo de un stack local con Docker Compose, levantaremos MinIO, Apache Iceberg, Project Nessie y Trino; sobre esa base construiremos un servidor MCP en Python y conectaremos Claude para consultar el lakehouse en lenguaje natural.",
+ workshopRequirements:
+ "Hardware mínimo: laptop con al menos 8 GB de RAM (16 GB recomendado) y 10 GB de espacio libre en disco.\n\nSoftware requerido — instalar antes del evento:\n• Docker Desktop: https://www.docker.com/products/docker-desktop\n• Python 3.11+: https://www.python.org/downloads\n• Git: https://git-scm.com\n• Claude Desktop (gratuito): https://claude.ai/download\n• VS Code (recomendado): https://code.visualstudio.com",
+ },
+ "felix-mino": {
+ title: "Ingeniero de Software @ Stack Builders",
+ description:
+ "Félix es Ingeniero de Software en Stack Builders con enfoque en prácticas de testing y herramientas para desarrolladores. Defiende enfoques prácticos para la calidad del software y cree que las pruebas de integración reales—respaldadas por servicios verdaderamente en ejecución—son mucho más valiosas que elaborados setups de mocks.",
+ talkTitle: "Deja de hacer mocks, empieza a contenerizar",
+ talkDescription:
+ "¿Cansado de mantener objetos mock frágiles que no reflejan el comportamiento en producción? En este taller aprenderás cómo reemplazar mocks con servicios reales contenerizados usando Docker y Testcontainers para Python. Configuraremos PostgreSQL, Redis y APIs externas como contenedores en tu suite de pruebas, escribiremos pruebas de integración que realmente validen el comportamiento de tu sistema y optimizaremos tu flujo de trabajo de testing para pipelines CI/CD más rápidos y confiables.",
+ },
+ "roberto-bedoya-garcia": {
+ title: "Ingeniero de IA @ NowBit",
+ description:
+ "Roberto es Ingeniero de IA en NowBit enfocado en observabilidad y optimización de costos para LLMs. Ayuda a equipos a monitorear, depurar y reducir los costos operacionales de sistemas de IA en producción, convirtiendo el gasto en tokens de una responsabilidad impredecible en una preocupación de ingeniería manejable.",
+ talkTitle: "Tu LLM está sangrando dinero y Python puede pararlo",
+ talkDescription:
+ "Cada token que procesa tu LLM cuesta dinero, y sin una observabilidad adecuada, los costos pueden descontrolarse. En este taller aprenderás cómo instrumentar tus aplicaciones Python con LLM para rastrear el uso de tokens, la latencia y el costo por solicitud. Construiremos una pila de observabilidad completa usando herramientas de código abierto, configuraremos alertas para anomalías de costo e implementaremos estrategias para reducir tu factura de LLM sin sacrificar la calidad.",
+ },
+ "hazel-saenz": {
+ title: "Developer Advocate @ AWS",
+ description:
+ "Hazel es Developer Advocate en AWS apasionada por hacer la IA accesible a través de herramientas de código abierto. Crea demos y talleres que ayudan a los desarrolladores a comenzar con agentes de IA y Python, con especial enfoque en aplicaciones creativas y amigables para principiantes.",
+ talkTitle: "Crea tu DJ con IA: Agentes en Python y Open Source",
+ talkDescription:
+ "¡Crea tu propio DJ con IA usando agentes Python y herramientas de código abierto! En este taller para principiantes aprenderás los fundamentos de los agentes de IA, construirás un sistema de recomendación de música impulsado por Python y lo conectarás a APIs de música reales. No se requiere experiencia previa en IA, solo curiosidad y amor por la música. Al final tendrás un DJ de IA funcional que crea playlists basadas en el estado de ánimo, género y preferencias personales.",
+ },
+ "emanuel-zapata-querubin": {
+ title: "Ingeniero de Datos @ Lovelytics",
+ description:
+ "Emanuel es Ingeniero de Datos en Lovelytics especializado en MLOps y arquitectura de plataformas de datos. Tiene experiencia práctica llevando proyectos de ML desde notebooks exploratorios hasta pipelines de producción completamente automatizados en Databricks, y es apasionado por cerrar la brecha entre la ciencia de datos y la ingeniería.",
+ talkTitle: "De Notebook a Producción: MLOps End-to-End en Databricks",
+ talkDescription:
+ "Supera los Jupyter notebooks y despliega modelos de machine learning en producción usando las mejores prácticas de MLOps en Databricks. En este taller intermedio aprenderás a estructurar proyectos de ML para producción, implementar pipelines CI/CD para modelos, gestionar experimentos con MLflow, desplegar modelos como APIs REST y monitorearlos en producción. Recorreremos un ejemplo completo de extremo a extremo desde la preparación de datos hasta el reentrenamiento automatizado.",
+ },
+ "santiago-suarez-sampayo": {
+ title: "Ingeniero de Datos @ Aimpoint Digital",
+ description:
+ "Santiago es Ingeniero de Datos en Aimpoint Digital con experiencia construyendo aplicaciones e integraciones impulsadas por IA. Le gusta crear herramientas prácticas para desarrolladores que combinan APIs de IA de vanguardia con plataformas de comunicación cotidianas, haciendo que capacidades avanzadas de IA sean accesibles para cualquier usuario.",
+ talkTitle:
+ "Construye un Asistente de Código estilo OpenClaw en WhatsApp con el SDK de Agentes de Claude",
+ talkDescription:
+ "Construye un asistente de codificación de IA completamente funcional que vive en WhatsApp, inspirado en OpenClaw, usando el SDK de Agentes de Claude y Python. En este taller práctico aprenderás a integrar el SDK de Agentes de Claude con la API de WhatsApp Business, diseñar flujos conversacionales para asistencia de código, manejar conversaciones de múltiples turnos con memoria y desplegar tu asistente en la nube. Terminarás con un compañero de codificación de IA accesible desde cualquier dispositivo.",
+ },
+ "johnny-montoya": {
+ title: "Ingeniero de IA @ Unloquer",
+ description:
+ "Johnny es Ingeniero de IA en Unloquer y creador de contenido sobre datos e IA bajo el nombre @eldelosdatos_. Se especializa en construir sistemas agénticos que codifican el conocimiento organizacional, ayudando a las empresas a convertir sus procesos internos y experiencia en skills ejecutables para agentes.",
+ talkTitle:
+ "Skills ejecutables: cómo enseñarle a un agente cómo funciona tu empresa",
+ talkDescription:
+ "¿Cómo crear un agente de IA que realmente entienda cómo funciona tu empresa? En este taller aprenderás a diseñar e implementar skills ejecutables: piezas reutilizables y estructuradas de conocimiento organizacional que los agentes pueden invocar. Cubriremos arquitectura de skills, representación del conocimiento en Python, integración de skills con frameworks de agentes populares y prueba de la confiabilidad de los skills. Al final tendrás un blueprint para construir un cerebro empresarial que tus agentes puedan usar.",
+ },
+ "nicolas-roldan-fajardo": {
+ title: "Ingeniero de ML @ Loka",
+ description:
+ "Nicolás es Ingeniero de ML en Loka enfocado en marcos de evaluación para sistemas de IA agéntica. Trabaja en el diseño de suites de pruebas robustas que validan el comportamiento de agentes en flujos de trabajo complejos de múltiples pasos, aportando rigor de ingeniería al reto frecuentemente subestimado de la evaluación de IA.",
+ talkTitle:
+ "La Comunidad de las Evaluaciones Agénticas: ¿Cómo evaluar un agente?",
+ talkDescription:
+ "¿Cómo sabes si tu agente de IA realmente está haciendo lo correcto? En este taller exploraremos marcos de evaluación prácticos para sistemas agénticos. Formaremos una comunidad de técnicas de evaluación—desde pruebas unitarias simples hasta evaluaciones de comportamiento complejas—y las aplicaremos a escenarios reales de agentes. Aprenderás a definir criterios de evaluación, implementar suites de pruebas automatizadas, medir el rendimiento de los agentes cuantitativamente y rastrear la mejora a lo largo del tiempo.",
+ },
+ "maria-fernanda-rojas-castro": {
+ title: "Ingeniera de ML @ Loka",
+ description:
+ "María Fernanda es Ingeniera de ML en Loka con experiencia en la construcción y evaluación de sistemas inteligentes. Se enfoca en metodologías prácticas para garantizar la confiabilidad y seguridad de los agentes de IA, y colabora en investigación sobre técnicas de evaluación escalables para flujos de trabajo agénticos en producción.",
+ talkTitle:
+ "La Comunidad de las Evaluaciones Agénticas: ¿Cómo evaluar un agente?",
+ talkDescription:
+ "¿Cómo sabes si tu agente de IA realmente está haciendo lo correcto? En este taller exploraremos marcos de evaluación prácticos para sistemas agénticos. Formaremos una comunidad de técnicas de evaluación—desde pruebas unitarias simples hasta evaluaciones de comportamiento complejas—y las aplicaremos a escenarios reales de agentes. Aprenderás a definir criterios de evaluación, implementar suites de pruebas automatizadas, medir el rendimiento de los agentes cuantitativamente y rastrear la mejora a lo largo del tiempo.",
+ },
+ "jonathan-vallejo-munoz": {
+ title: "Ingeniero de Software @ Lendingfront",
+ description:
+ "Jonathan es Ingeniero de Software en Lendingfront trabajando en la intersección del desarrollo asistido por IA y la arquitectura de software. Defiende prácticas de desarrollo disciplinadas que van más allá de la programación basada en prompts, y explora cómo las especificaciones estructuradas pueden hacer que el código generado por IA sea más coherente y mantenible.",
+ talkTitle:
+ "Más allá del Vibe Coding: Spec Driven Development con Code Graphs",
+ talkDescription:
+ "Ve más allá del vibe coding y aprende a usar especificaciones y grafos de código para guiar el desarrollo asistido por IA. En este taller descubrirás cómo las especificaciones estructuradas y los grafos de dependencias dan a las herramientas de codificación de IA el contexto que necesitan para producir código coherente y mantenible. Trabajaremos con proyectos reales de Python para definir specs, generar grafos de código y conectarlos a tu flujo de trabajo asistido por IA, resultando en código que tiene sentido arquitectónicamente.",
+ },
+ "esneider-bravo-benitez": {
+ title: "Ingeniero de Software @ Lendingfront",
+ description:
+ "Esneider es Ingeniero de Software en Lendingfront con enfoque en herramientas de generación de código y experiencia del desarrollador. Explora cómo las especificaciones estructuradas pueden guiar a los asistentes de codificación de IA para producir resultados más confiables, y contribuye a herramientas de código abierto para el desarrollo dirigido por especificaciones.",
+ talkTitle:
+ "Más allá del Vibe Coding: Spec Driven Development con Code Graphs",
+ talkDescription:
+ "Ve más allá del vibe coding y aprende a usar especificaciones y grafos de código para guiar el desarrollo asistido por IA. En este taller descubrirás cómo las especificaciones estructuradas y los grafos de dependencias dan a las herramientas de codificación de IA el contexto que necesitan para producir código coherente y mantenible. Trabajaremos con proyectos reales de Python para definir specs, generar grafos de código y conectarlos a tu flujo de trabajo asistido por IA, resultando en código que tiene sentido arquitectónicamente.",
+ },
+ "maris-botero": {
+ title: "Ingeniera de ML @ Mercado Libre",
+ description:
+ "Maris es Ingeniera de ML en Mercado Libre apasionada por hacer la IA accesible para desarrolladores de todos los niveles. Se especializa en construir sistemas multi-agente con Python y le encanta desmitificar conceptos complejos de IA a través de talleres prácticos y amigables para principiantes.",
+ talkTitle: "De Prompts a Agentes: sistemas inteligentes con Python",
+ talkDescription:
+ "Da tus primeros pasos desde escribir prompts simples hasta construir sistemas multi-agente inteligentes con Python. En este taller para principiantes aprenderás los fundamentos de los agentes de IA, cómo se diferencian de las simples llamadas a LLM, cómo encadenar agentes para tareas complejas y cómo darles herramientas y memoria. Usando frameworks populares de Python, construirás un sistema multi-agente funcional al final de la sesión, sin experiencia previa en IA.",
+ },
+ "jose-hernan-ortiz-ocampo": {
+ title: "Ingeniero Senior de ML @ Loka",
+ description:
+ "José Hernán es Ingeniero Senior de ML en Loka con profunda experiencia en frameworks de IA agéntica. Ha diseñado y construido sistemas multi-agente en producción usando diversas herramientas de orquestación, y aporta una perspectiva pragmática y orientada a la ingeniería al desarrollo de IA, enfocada en lo que funciona en producción más que en lo que impresiona en demos.",
+ talkTitle:
+ "LangGraph y Strands Agents: Conceptos Clave, Patrones y Trade-offs",
+ talkDescription:
+ "Sumérgete en dos poderosos frameworks agénticos—LangGraph y Strands Agents—y aprende cuándo usar cada uno. Este taller avanzado cubre los conceptos fundamentales detrás de ambos frameworks: máquinas de estados, orquestación basada en grafos, uso de herramientas y gestión de memoria. Construiremos la misma aplicación agéntica en ambos frameworks, compararemos sus fortalezas y limitaciones, y discutiremos los trade-offs arquitectónicos para ayudarte a elegir la herramienta correcta para tus sistemas de IA en producción.",
+ },
+ "isabel-mora": {
+ title: "Ingeniera Junior de ML @ Loka",
+ description:
+ "Isabel es Ingeniera Junior de ML en Loka contribuyendo al desarrollo y evaluación de sistemas de IA agéntica. Aporta perspectivas frescas a los desafíos de diseño e implementación de agentes, y es apasionada por hacer que los frameworks complejos de IA sean comprensibles y accesibles.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "jose-hernan-ortiz-ocampo-2": {
+ title: "Ingeniero Senior de ML @ Loka",
+ description:
+ "José Hernán es Ingeniero Senior de ML en Loka con profunda experiencia en frameworks de IA agéntica. Ha diseñado y construido sistemas multi-agente en producción usando diversas herramientas de orquestación, y aporta una perspectiva pragmática y orientada a la ingeniería al desarrollo de IA, enfocada en lo que funciona en producción más que en lo que impresiona en demos.",
+ talkTitle:
+ "Equipos Multi-Agente en el Desarrollo Asistido por IA: Un Vistazo al Futuro de la Programación",
+ talkDescription:
+ "Obtén una visión del futuro de la programación, donde equipos de agentes de IA colaboran con desarrolladores humanos. En este taller explorarás patrones de vanguardia para la colaboración multi-agente en el desarrollo asistido por IA: agentes de generación de código, agentes de revisión, agentes de pruebas y estrategias de orquestación. Construiremos un mini equipo de desarrollo multi-agente usando Python y el SDK de Claude, y discutiremos hacia dónde va esta tecnología y cómo los desarrolladores pueden prepararse.",
+ },
+ "daniel-sabogal": {
+ title: "Pasante de Datos y ML @ Loka",
+ description:
+ "Daniel es Pasante de Datos y ML en Loka apasionado por explorar la intersección de los sistemas multi-agente y los flujos de trabajo de desarrollo de software. Aporta curiosidad e ideas frescas al futuro de la programación asistida por IA, y comparte sus aprendizajes construyendo con herramientas de IA de vanguardia.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "isabel-mora-2": {
+ title: "Ingeniera Junior de ML @ Loka",
+ description:
+ "Isabel es Ingeniera Junior de ML en Loka contribuyendo al desarrollo y evaluación de sistemas de IA agéntica. Aporta perspectivas frescas a los desafíos de diseño e implementación de agentes, y es apasionada por hacer que los frameworks complejos de IA sean comprensibles y accesibles.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "jose-arturo-osorio-londono": {
+ title: "Ingeniero de Datos @ Lovelytics",
+ description:
+ "José Arturo es Ingeniero de Datos en Lovelytics especializado en la modernización de pipelines y flujos de trabajo de datos. Explora cómo la IA generativa está transformando las prácticas tradicionales de ingeniería de datos en sistemas adaptativos e inteligentes, y ayuda a los equipos a navegar la evolución del ETL rígido a arquitecturas agénticas dinámicas.",
+ talkTitle:
+ "De ETL a Agentic Workflows: la evolución de la ingeniería de datos en la era de la IA generativa",
+ talkDescription:
+ "Los pipelines ETL tradicionales son determinísticos y rígidos. Los flujos de trabajo agénticos impulsados por IA generativa pueden adaptarse, razonar y manejar lo inesperado. En este taller aprenderás cómo evolucionar tus prácticas de ingeniería de datos desde el ETL clásico hacia flujos de trabajo agénticos inteligentes. Cubriremos el diseño de agentes para extracción de datos, decisiones de transformación y estrategias de carga, así como cómo combinar herramientas de orquestación tradicionales con agentes de IA para arquitecturas híbridas.",
+ },
+ "biviana-marcela-suarez-sierra": {
+ title: "Investigadora @ Universidad EAFIT",
+ description:
+ "Biviana Marcela es investigadora en la Universidad EAFIT conectando la lingüística de corpus tradicional con las técnicas modernas de NLP. Aplica herramientas basadas en Python para analizar grandes colecciones de texto y construir sistemas de recuperación inteligentes, combinando el rigor lingüístico académico con la ingeniería práctica de IA.",
+ talkTitle:
+ "NLP en la práctica: de lingüística de corpus a RAG con Python",
+ talkDescription:
+ "Une la brecha entre la lingüística de corpus tradicional y los sistemas modernos de Generación Aumentada por Recuperación (RAG). En este taller, investigadores y desarrolladores aprenderán cómo las técnicas clásicas de NLP—análisis de corpus, tokenización y anotación—pueden informar y mejorar las implementaciones de RAG. Usaremos Python para construir un pipeline que toma un corpus de texto desde la colección bruta a través del análisis lingüístico hasta un sistema RAG consultable, demostrando cómo los fundamentos académicos de NLP mejoran las aplicaciones prácticas de IA.",
+ },
+ "dora-cecilia-alzate-gallo": {
+ title: "Investigadora @ Universidad EAFIT",
+ description:
+ "Dora Cecilia es investigadora en la Universidad EAFIT especializada en lingüística computacional y procesamiento del lenguaje natural. Su trabajo se centra en aplicar arquitecturas RAG a investigaciones lingüísticas y tareas de extracción de conocimiento, aportando una comprensión profunda de la estructura del lenguaje a los sistemas de IA modernos.",
+ talkTitle:
+ "NLP en la práctica: de lingüística de corpus a RAG con Python",
+ talkDescription:
+ "Une la brecha entre la lingüística de corpus tradicional y los sistemas modernos de Generación Aumentada por Recuperación (RAG). En este taller, investigadores y desarrolladores aprenderán cómo las técnicas clásicas de NLP—análisis de corpus, tokenización y anotación—pueden informar y mejorar las implementaciones de RAG. Usaremos Python para construir un pipeline que toma un corpus de texto desde la colección bruta a través del análisis lingüístico hasta un sistema RAG consultable, demostrando cómo los fundamentos académicos de NLP mejoran las aplicaciones prácticas de IA.",
+ },
+ "jesus-alfredo-reyes-vargas": {
+ title: "Ingeniero de Software @ EPAM Systems",
+ description:
+ "Jesús Alfredo es Ingeniero de Software en EPAM Systems apasionado por el aprendizaje continuo y la educación para desarrolladores impulsada por IA. Explora cómo las herramientas de IA pueden acelerar el desarrollo de habilidades y ayudar a los ingenieros a mantenerse relevantes en un panorama que cambia rápidamente.",
+ talkTitle: "Ingenieros a prueba del futuro con AI-DLC",
+ talkDescription:
+ "La IA está transformando no solo lo que construyen los ingenieros, sino cómo aprenden y crecen. En este taller descubrirás AI-DLC (Currículo de Aprendizaje Impulsado por IA), un marco para crear rutas de aprendizaje personalizadas y adaptativas para ingenieros de software usando herramientas de IA. Exploraremos cómo diseñar currículos de aprendizaje que incorporen asistencia de IA, desarrollar habilidades que complementen en lugar de competir con la IA, y crear planes de desarrollo que mantendrán a los ingenieros relevantes y valiosos por años.",
+ },
+ "carlos-alberto-riveros-varela": {
+ title: "Ingeniero de Software @ EPAM Systems",
+ description:
+ "Carlos Alberto es Ingeniero de Software en EPAM Systems enfocado en el crecimiento de los desarrolladores y metodologías de aprendizaje modernas. Le apasiona combinar la IA con rutas de aprendizaje estructuradas para ayudar a los ingenieros a preparar sus carreras para el futuro y adaptarse a las demandas del sector en rápida evolución.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "felipe-sanchez": {
+ title: "Ingeniero de Datos @ Aimpoint Digital",
+ description:
+ "Felipe es Ingeniero de Datos en Aimpoint Digital con experiencia construyendo servidores de herramientas de IA e integraciones. Le gusta crear tutoriales prácticos que hacen accesibles y divertidos los conceptos complejos de desarrollo de IA, y cree firmemente en aprender construyendo proyectos reales y divertidos.",
+ talkTitle:
+ "Construye tu Primer Servidor de Herramientas de IA: Una Pokédex con FastMCP y Python",
+ talkDescription:
+ "¡Construye tu primer servidor de herramientas de IA desde cero usando FastMCP y Python, con la Pokédex como guía! En este taller práctico aprenderás el Protocolo de Contexto de Modelo (MCP), configurarás un servidor FastMCP, implementarás herramientas personalizadas que los agentes de IA pueden llamar y conectarás todo en un asistente de IA Pokédex funcional. No se necesita experiencia previa con MCP, solo conocimiento de Python y amor por Pokémon.",
+ },
+ "daniel-galvis": {
+ title: "Ingeniero de Datos @ Aimpoint Digital",
+ description:
+ "Daniel es Ingeniero de Datos en Aimpoint Digital enfocado en herramientas de IA y experiencia del desarrollador. Aporta experiencia práctica en la construcción de servicios de IA basados en Python e integraciones de herramientas, y disfruta colaborar en talleres que hacen el desarrollo de IA de vanguardia accesible para una audiencia amplia.",
+ talkTitle: "",
+ talkDescription: "",
+ },
+ "francisco-javier-moya-ortiz": {
+ title: "Analista de Datos @ Aimpoint Digital",
+ description:
+ "Francisco Javier es Analista de Datos en Aimpoint Digital especializado en inteligencia de negocios y analítica agéntica. Explora cómo los agentes de IA pueden integrarse con herramientas modernas de BI como Sigma para crear dashboards autónomos y auto-explicativos que van mucho más allá de los gráficos estáticos.",
+ talkTitle:
+ "Dashboards que piensan: construye analítica agéntica con Sigma",
+ talkDescription:
+ "Aprende a construir dashboards que no solo muestran datos, ¡sino que piensan! En este taller combinarás las capacidades de inteligencia de negocios de Sigma con agentes de IA basados en Python para crear dashboards de analítica agéntica. Cubriremos la integración de LLMs con Sigma, la construcción de narrativas de datos impulsadas por agentes, la automatización del descubrimiento de insights y la creación de dashboards que pueden responder preguntas de seguimiento y adaptarse dinámicamente al contexto del usuario.",
+ },
+ "andres-vasquez-restrepo": {
+ title: "Científico de Datos @ Cuesta Partners",
+ description:
+ "Andrés es Científico de Datos en Cuesta Partners aplicando machine learning e IA a la ciencia alimentaria y el diseño de productos nutricionales. Su trabajo interdisciplinario conecta la IA basada en Python con la experiencia en nutrición y formulación, demostrando el poder de la IA en dominios no tradicionales.",
+ talkTitle:
+ "PyBlend: Hacia un Científico Alimentario de IA para el Diseño de Productos Nutricionales",
+ talkDescription:
+ "Descubre cómo Python y la IA están transformando el diseño de productos nutricionales. En este taller serás introducido a PyBlend, un framework que modela el complejo problema de optimización del diseño de formulaciones nutricionales. Exploraremos cómo los algoritmos de machine learning pueden navegar vastos espacios de ingredientes, equilibrar restricciones nutricionales y generar formulaciones de productos novedosas. Los asistentes obtendrán experiencia práctica con el diseño de productos impulsado por IA y aprenderán cómo Python hace posibles las aplicaciones de IA interdisciplinarias.",
+ },
+ "cesar-mateo-gonzalez-rodriguez": {
+ title: "Científico de Datos @ GoDaddy",
+ description:
+ "César Mateo es Científico de Datos en GoDaddy especializado en detección de anomalías y aprendizaje no supervisado. Aplica técnicas de aprendizaje profundo, incluyendo autoencoders, para encontrar patrones raros pero críticos en conjuntos de datos a gran escala, combinando rigor teórico con ingeniería práctica para entregar soluciones listas para producción.",
+ talkTitle:
+ "Cómo encontrar perlas en el fondo del mar – Autoencoders como modelos de detección de anomalías",
+ talkDescription:
+ "Como encontrar perlas en el fondo del océano, detectar anomalías raras en grandes conjuntos de datos requiere técnicas sofisticadas. En este taller aprenderás la teoría y práctica de las arquitecturas de autoencoders, cómo entrenarlos para la detección de anomalías, cómo establecer límites de decisión y cómo evaluar su rendimiento. Trabajaremos con conjuntos de datos del mundo real y construiremos pipelines completos de detección de anomalías en Python.",
+ },
+ "juan-guillermo-gomez": {
+ title: "Fundador @ DevHack",
+ description:
+ "Juan Guillermo es el fundador de DevHack y reconocido speaker sobre Python, IA y arquitectura de software en toda América Latina. Tiene años de experiencia enseñando a desarrolladores sobre patrones prácticos de implementación de IA y diseño de sistemas multi-agente, y es un apasionado defensor de la comunidad Python.",
+ talkTitle: "Patrones, Protocolos y Tácticas para Sistemas Multi-Agente",
+ talkDescription:
+ "Domina los patrones esenciales, protocolos y tácticas para construir sistemas multi-agente robustos en Python. En este taller aprenderás patrones arquitectónicos probados para la colaboración multi-agente, protocolos de comunicación entre agentes, estrategias de manejo de errores y recuperación, y tácticas de implementación prácticas. Basándonos en experiencia del mundo real, construiremos múltiples arquitecturas de agentes y analizaremos sus trade-offs, dándote un conjunto de herramientas reutilizable para diseñar sistemas multi-agente.",
+ },
+ "mauricio-repetto-ferrero": {
+ title: "Ingeniero de IA @ Nortal",
+ description:
+ "Mauricio es Ingeniero de IA en Nortal con pasión por optimizar el consumo de tokens en LLMs. Desarrolló TOON, una herramienta para crear representaciones de datos compactas y semánticamente ricas que reducen el uso de tokens mientras mejoran la comprensión de la IA, ayudando a los equipos a recortar costos sin perder rendimiento del modelo.",
+ talkTitle:
+ "¡Es ahorra o nunca! Dieta de tokens con TOON para agrandar tu bolsillo y que la IA entienda más",
+ talkDescription:
+ "Los tokens cuestan dinero, y cada token innecesario que envías a un LLM es dinero desperdiciado. En este taller aprenderás cómo poner tus aplicaciones de IA a dieta de tokens usando TOON, una herramienta Python para crear representaciones de datos compactas y semánticamente ricas. Cubriremos la arquitectura de TOON, cómo serializar estructuras de datos complejas eficientemente, medir la reducción de tokens e integrar TOON en pipelines de IA existentes, sin perder la información que tus modelos necesitan.",
+ },
+ "dario-jesus-guzman-duran": {
+ title: "Ingeniero de Software @ Gudar Devs",
+ description:
+ "Darío Jesús es Ingeniero de Software en Gudar Devs especializado en procesamiento de datos de alto rendimiento y Python asíncrono. Construye pipelines escalables de procesamiento de video que aprovechan las capacidades asíncronas de Python para máximo rendimiento, y es apasionado por exprimir cada bit de rendimiento de las cargas de trabajo de I/O en Python.",
+ talkTitle: "Ingestión de video de alto rendimiento con Python asíncrono",
+ talkDescription:
+ "El video es uno de los tipos de datos más exigentes para procesar. En este taller aprenderás cómo construir pipelines de ingesta de video de alto rendimiento usando las capacidades asíncronas de Python. Cubriremos los fundamentos de asyncio para el procesamiento de video ligado a I/O, extracción y procesamiento concurrente de fotogramas, patrones de cola asíncrona para pipelines de datos, perfilado y optimización de rendimiento, y consideraciones de despliegue en el mundo real. Construye un sistema de ingesta de video asíncrono de nivel producción desde cero.",
+ },
+ "juan-jose-barrientos-salazar": {
+ title: "Ingeniero de IA @ The TRES Group",
+ description:
+ "Juan José es Ingeniero de IA en The TRES Group con sólidas bases en las matemáticas del aprendizaje profundo. Se especializa en entender e implementar arquitecturas transformer desde primeros principios usando PyTorch, haciendo que el funcionamiento interno de los LLMs sea accesible para ingenieros que quieren ir más allá de las llamadas a API.",
+ talkTitle:
+ "LLMs a profundidad: Cómo funciona matemáticamente un LLM (y su implementación con PyTorch)",
+ talkDescription:
+ "Desmitifica las matemáticas detrás de los Modelos de Lenguaje de Gran Escala e impleméntalas desde cero en PyTorch. Este taller avanzado te lleva a través de las bases matemáticas completas: mecanismos de atención, arquitectura transformer, codificaciones posicionales, normalización de capas y dinámica de entrenamiento. Para cada concepto matemático escribiremos la implementación correspondiente en PyTorch, dándote una comprensión profunda y práctica de cómo funcionan realmente los LLMs bajo el capó.",
+ },
+ "raul-rodriguez": {
+ title: "Ingeniero de IA @ Mercado Libre",
+ description:
+ "Raúl es Ingeniero de IA en Mercado Libre trabajando en aplicaciones innovadoras de copiloto con IA. Construyó NORTH, un sistema que usa Claude como verdadero copiloto de codificación y toma de decisiones para flujos de trabajo de ingeniería del mundo real, demostrando qué significa cuando la IA va más allá del autocompletado y se convierte en un auténtico socio de ingeniería.",
+ talkTitle: "NORTH: Claude como copiloto real",
+ talkDescription:
+ "Aprende cómo NORTH usa Claude como un verdadero copiloto de codificación, no solo un completador de código, sino un auténtico socio de ingeniería. En este taller explorarás la arquitectura de NORTH y aprenderás cómo construir integraciones de copiloto de IA similares usando la API de Claude y Python. Cubriremos la ingeniería de prompts para asistencia de codificación, el mantenimiento del contexto a lo largo de sesiones largas, la integración con flujos de trabajo de desarrollo y la construcción de los bucles de retroalimentación que hacen a los copilotos de IA genuinamente útiles.",
+ },
+ "jeronimo-lopez-gomez": {
+ title: "Investigador @ Universidad de Antioquia",
+ description:
+ "Jerónimo es investigador en la Universidad de Antioquia especializado en co-diseño hardware-software y aceleración de machine learning. Trabaja en el despliegue de modelos de ML en FPGAs y otras plataformas de hardware usando hls4ml y Python, uniendo la brecha entre el desarrollo de ML de alto nivel en Python y la implementación en hardware de bajo nivel.",
+ talkTitle: "hls4ml: De Modelos Python a Aceleración en Hardware",
+ talkDescription:
+ "Une la brecha entre el machine learning en Python y la implementación en hardware usando hls4ml. En este taller aprenderás cómo tomar modelos de ML entrenados en Python (TensorFlow, PyTorch, scikit-learn) y desplegarlos en FPGAs usando la librería hls4ml. Cubriremos la cuantización de modelos, el entrenamiento consciente del hardware, el flujo de síntesis HLS, el perfilado de rendimiento y las consideraciones prácticas para desplegar ML en el edge. No se requiere experiencia previa con FPGAs.",
+ },
+ "natalia-echeverri-duran": {
+ title: "Investigadora @ Universidad de Antioquia",
+ description:
+ "Natalia es investigadora en la Universidad de Antioquia enfocada en la aceleración hardware del machine learning. Explora técnicas para mapear eficientemente modelos de ML de Python a implementaciones FPGA para aplicaciones de computación en el borde, contribuyendo a la investigación en la frontera del co-diseño de hardware para IA.",
+ talkTitle: "hls4ml: De Modelos Python a Aceleración en Hardware",
+ talkDescription:
+ "Une la brecha entre el machine learning en Python y la implementación en hardware usando hls4ml. En este taller aprenderás cómo tomar modelos de ML entrenados en Python (TensorFlow, PyTorch, scikit-learn) y desplegarlos en FPGAs usando la librería hls4ml. Cubriremos la cuantización de modelos, el entrenamiento consciente del hardware, el flujo de síntesis HLS, el perfilado de rendimiento y las consideraciones prácticas para desplegar ML en el edge. No se requiere experiencia previa con FPGAs.",
+ },
+ },
+} satisfies Record;
diff --git a/src/assets/data/workshop-speakers.ts b/src/assets/data/workshop-speakers.ts
new file mode 100644
index 0000000..54f858c
--- /dev/null
+++ b/src/assets/data/workshop-speakers.ts
@@ -0,0 +1,437 @@
+import type { Speaker, SpeakerFormat, SpeakerTrack } from "./speakers";
+
+type SpeakerInput = Omit & { format?: SpeakerFormat };
+
+const workshopSpeakerImages: Record = {
+ "david-felipe-vanegas-ramirez":
+ "/images/speakers/david-felipe-vanegas-ramirez.jpg",
+ "felix-mino": "/images/speakers/felix-mino.png",
+ "roberto-bedoya-garcia": "/images/speakers/roberto-bedoya-garcia.jpg",
+ "hazel-saenz": "/images/speakers/hazel-saenz.jpg",
+ "emanuel-zapata-querubin": "/images/speakers/emanuel-zapata-querubin.png",
+ "santiago-suarez-sampayo": "/images/speakers/santiago-suarez-sampayo.png",
+ "johnny-montoya": "/images/speakers/johnny-montoya.jpg",
+ "nicolas-roldan-fajardo": "/images/speakers/nicolas-roldan-fajardo.jpg",
+ "maria-fernanda-rojas-castro":
+ "/images/speakers/maria-fernanda-rojas-castro.png",
+ "jonathan-vallejo-munoz": "/images/speakers/jonathan-vallejo-munoz.jpg",
+ "esneider-bravo-benitez": "/images/speakers/esneider-bravo-benitez.jpg",
+ "maris-botero": "/images/speakers/maris-botero.png",
+ "jose-hernan-ortiz-ocampo": "/images/speakers/jose-hernan-ortiz-ocampo.jpg",
+ "jose-hernan-ortiz-ocampo-2":
+ "/images/speakers/jose-hernan-ortiz-ocampo-2.jpg",
+ "isabel-mora": "/images/speakers/isabel-mora.jpg",
+ "isabel-mora-2": "/images/speakers/isabel-mora-2.jpg",
+ "daniel-sabogal": "/images/speakers/daniel-sabogal.jpg",
+ "jose-arturo-osorio-londono":
+ "/images/speakers/jose-arturo-osorio-londono.jpg",
+ "biviana-marcela-suarez-sierra":
+ "/images/speakers/biviana-marcela-suarez-sierra.png",
+ "dora-cecilia-alzate-gallo": "/images/speakers/dora-cecilia-alzate-gallo.jpg",
+ "jesus-alfredo-reyes-vargas":
+ "/images/speakers/jesus-alfredo-reyes-vargas.jpg",
+ "carlos-alberto-riveros-varela":
+ "/images/speakers/carlos-alberto-riveros-varela.jpg",
+ "felipe-sanchez": "/images/speakers/felipe-sanchez.jpg",
+ "daniel-galvis": "/images/speakers/daniel-galvis.jpg",
+ "francisco-javier-moya-ortiz":
+ "/images/speakers/francisco-javier-moya-ortiz.jpg",
+ "andres-vasquez-restrepo": "/images/speakers/andres-vasquez-restrepo.jpg",
+ "cesar-mateo-gonzalez-rodriguez":
+ "/images/speakers/cesar-mateo-gonzalez-rodriguez.jpg",
+ "juan-guillermo-gomez": "/images/speakers/juan-guillermo-gomez.jpg",
+ "mauricio-repetto-ferrero": "/images/speakers/mauricio-repetto-ferrero.jpg",
+ "dario-jesus-guzman-duran": "/images/speakers/dario-jesus-guzman-duran.png",
+ "juan-jose-barrientos-salazar":
+ "/images/speakers/juan-jose-barrientos-salazar.jpg",
+ "raul-rodriguez": "/images/speakers/raul-rodriguez.png",
+ "jeronimo-lopez-gomez": "/images/speakers/jeronimo-lopez-gomez.jpg",
+ "natalia-echeverri-duran": "/images/speakers/natalia-echeverri-duran.jpg",
+};
+
+const workshopSpeakerListBase: SpeakerInput[] = [
+ // 1. From S3 to AI Agent
+ {
+ slug: "david-felipe-vanegas-ramirez",
+ talkKey: "from-s3-to-ai-agent",
+ name: "David Felipe Vanegas Ramírez",
+ tracks: [
+ "artificial-intelligence",
+ "core-python",
+ "data-science",
+ ] as SpeakerTrack[],
+ github: "https://github.com/davidvanegas2",
+ linkedin: "https://www.linkedin.com/in/davidfvanegas",
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 2. Stop mocking, start containerizing
+ {
+ slug: "felix-mino",
+ talkKey: "stop-mocking-containerizing",
+ name: "Félix Miño",
+ tracks: ["web", "core-python"] as SpeakerTrack[],
+ github: "https://github.com/felixminom",
+ linkedin: "https://www.linkedin.com/in/felixminom",
+ country: "Ecuador",
+ language: "English / Inglés",
+ level: "Beginner / Principiante",
+ format: "workshop",
+ },
+ // 3. LLM Observability
+ {
+ slug: "roberto-bedoya-garcia",
+ talkKey: "llm-observability",
+ name: "Roberto Bedoya García",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 4. DJ con IA
+ {
+ slug: "hazel-saenz",
+ talkKey: "dj-ia-agentes",
+ name: "Hazel Sáenz",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Guatemala",
+ language: "Spanish / Español",
+ level: "Beginner / Principiante",
+ format: "workshop",
+ },
+ // 5. MLOps Databricks
+ {
+ slug: "emanuel-zapata-querubin",
+ talkKey: "mlops-databricks",
+ name: "Emanuel Zapata Querubín",
+ tracks: ["machine-learning", "devops"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 6. OpenClaw WhatsApp Assistant
+ {
+ slug: "santiago-suarez-sampayo",
+ talkKey: "openclaw-whatsapp-assistant",
+ name: "Santiago Suárez Sampayo",
+ tracks: ["artificial-intelligence", "web"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "English / Inglés",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 7. Company Brain Skills
+ {
+ slug: "johnny-montoya",
+ talkKey: "company-brain-skills",
+ name: "Johnny Montoya",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 8. Fellowship of Agentic Evaluations (primary + co-speaker)
+ {
+ slug: "nicolas-roldan-fajardo",
+ talkKey: "fellowship-agentic-evaluations",
+ name: "Nicolás Roldán Fajardo",
+ tracks: ["artificial-intelligence", "machine-learning"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ {
+ slug: "maria-fernanda-rojas-castro",
+ talkKey: "fellowship-agentic-evaluations",
+ name: "María Fernanda Rojas Castro",
+ tracks: ["artificial-intelligence", "machine-learning"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 9. Spec Driven Code Graphs (primary + co-speaker)
+ {
+ slug: "jonathan-vallejo-munoz",
+ talkKey: "spec-driven-code-graphs",
+ name: "Jonathan Vallejo Muñoz",
+ tracks: ["artificial-intelligence", "core-python"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ {
+ slug: "esneider-bravo-benitez",
+ talkKey: "spec-driven-code-graphs",
+ name: "Esneider Bravo Benítez",
+ tracks: ["artificial-intelligence", "core-python"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 10. Prompts to Agents
+ {
+ slug: "maris-botero",
+ talkKey: "prompts-to-agents",
+ name: "Maris Botero",
+ tracks: ["artificial-intelligence", "core-python"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Beginner / Principiante",
+ format: "workshop",
+ },
+ // 11. LangGraph and Strands Agents (primary + co-speaker with empty talk)
+ {
+ slug: "jose-hernan-ortiz-ocampo",
+ talkKey: "langgraph-strands-agents",
+ name: "José Hernán Ortiz Ocampo",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Advanced / Avanzado",
+ format: "workshop",
+ },
+ {
+ slug: "isabel-mora",
+ talkKey: "langgraph-strands-agents",
+ name: "Isabel Mora",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Advanced / Avanzado",
+ format: "workshop",
+ },
+ // 12. Multi-Agent Teams in AI-Assisted Development (same primary, new talk, two co-speakers)
+ {
+ slug: "jose-hernan-ortiz-ocampo-2",
+ talkKey: "multi-agent-teams-ai-dev",
+ name: "José Hernán Ortiz Ocampo",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "English / Inglés",
+ level: "All / Para todos los niveles",
+ format: "workshop",
+ },
+ {
+ slug: "daniel-sabogal",
+ talkKey: "multi-agent-teams-ai-dev",
+ name: "Daniel Sabogal",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "English / Inglés",
+ level: "All / Para todos los niveles",
+ format: "workshop",
+ },
+ {
+ slug: "isabel-mora-2",
+ talkKey: "multi-agent-teams-ai-dev",
+ name: "Isabel Mora",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "English / Inglés",
+ level: "All / Para todos los niveles",
+ format: "workshop",
+ },
+ // 13. ETL to Agentic Workflows
+ {
+ slug: "jose-arturo-osorio-londono",
+ talkKey: "etl-agentic-workflows",
+ name: "José Arturo Osorio Londoño",
+ tracks: ["artificial-intelligence", "data-science"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "All / Para todos los niveles",
+ format: "workshop",
+ },
+ // 14. NLP Corpus RAG (primary + co-speaker)
+ {
+ slug: "biviana-marcela-suarez-sierra",
+ talkKey: "nlp-corpus-rag",
+ name: "Biviana Marcela Suárez Sierra",
+ tracks: ["artificial-intelligence", "data-science"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ {
+ slug: "dora-cecilia-alzate-gallo",
+ talkKey: "nlp-corpus-rag",
+ name: "Dora Cecilia Alzate Gallo",
+ tracks: ["artificial-intelligence", "data-science"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 15. AI-DLC Future-proof Engineers (primary + co-speaker with empty talk)
+ {
+ slug: "jesus-alfredo-reyes-vargas",
+ talkKey: "ai-dlc-future-proof",
+ name: "Jesús Alfredo Reyes Vargas",
+ tracks: ["artificial-intelligence", "community"] as SpeakerTrack[],
+ github: "https://github.com/jesusareyesv",
+ linkedin: "https://www.linkedin.com/in/jesusareyesv",
+ country: "Venezuela",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ {
+ slug: "carlos-alberto-riveros-varela",
+ talkKey: "ai-dlc-future-proof",
+ name: "Carlos Alberto Riveros Varela",
+ tracks: ["artificial-intelligence", "community"] as SpeakerTrack[],
+ github: "http://github.com/carlosriverosv",
+ linkedin: "https://www.linkedin.com/in/carlos-alberto-riveros-varela",
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 16. FastMCP Pokédex (primary + co-speaker with empty talk)
+ {
+ slug: "felipe-sanchez",
+ talkKey: "fastmcp-pokedex",
+ name: "Felipe Sánchez",
+ tracks: ["artificial-intelligence", "core-python"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ {
+ slug: "daniel-galvis",
+ talkKey: "fastmcp-pokedex",
+ name: "Daniel Galvis",
+ tracks: ["artificial-intelligence", "core-python"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 17. Sigma Agentic Dashboards
+ {
+ slug: "francisco-javier-moya-ortiz",
+ talkKey: "sigma-agentic-dashboards",
+ name: "Francisco Javier Moya Ortiz",
+ tracks: ["artificial-intelligence", "data-science"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "All / Para todos los niveles",
+ format: "workshop",
+ },
+ // 18. PyBlend AI Food Scientist
+ {
+ slug: "andres-vasquez-restrepo",
+ talkKey: "pyblend-ai-food-scientist",
+ name: "Andrés Vásquez Restrepo",
+ tracks: ["artificial-intelligence", "data-science"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "English / Inglés",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 19. Autoencoders Anomaly Detection
+ {
+ slug: "cesar-mateo-gonzalez-rodriguez",
+ talkKey: "autoencoders-anomaly-detection",
+ name: "César Mateo González Rodríguez",
+ tracks: ["machine-learning", "data-science"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "English / Inglés",
+ level: "All / Para todos los niveles",
+ format: "workshop",
+ },
+ // 20. Multi-Agent Patterns Protocols
+ {
+ slug: "juan-guillermo-gomez",
+ talkKey: "multi-agent-patterns-protocols",
+ name: "Juan Guillermo Gómez",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 21. TOON Token Diet
+ {
+ slug: "mauricio-repetto-ferrero",
+ talkKey: "toon-token-diet",
+ name: "Mauricio Repetto Ferrero",
+ tracks: ["artificial-intelligence", "core-python"] as SpeakerTrack[],
+ country: "Uruguay",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 22. Async Video Ingestion
+ {
+ slug: "dario-jesus-guzman-duran",
+ talkKey: "async-video-ingestion",
+ name: "Darío Jesús Guzmán Durán",
+ tracks: ["core-python"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ // 23. LLMs Mathematics PyTorch
+ {
+ slug: "juan-jose-barrientos-salazar",
+ talkKey: "llms-mathematics-pytorch",
+ name: "Juan José Barrientos Salazar",
+ tracks: ["artificial-intelligence", "machine-learning"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Advanced / Avanzado",
+ format: "workshop",
+ },
+ // 24. NORTH Claude Copilot
+ {
+ slug: "raul-rodriguez",
+ talkKey: "north-claude-copilot",
+ name: "Raúl Rodríguez",
+ tracks: ["artificial-intelligence"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "All / Para todos los niveles",
+ format: "workshop",
+ },
+ // 25. hls4ml Hardware Acceleration (primary + co-speaker)
+ {
+ slug: "jeronimo-lopez-gomez",
+ talkKey: "hls4ml-hardware",
+ name: "Jerónimo López Gómez",
+ tracks: ["machine-learning", "scientific-computing"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+ {
+ slug: "natalia-echeverri-duran",
+ talkKey: "hls4ml-hardware",
+ name: "Natalia Echeverri Durán",
+ tracks: ["machine-learning", "scientific-computing"] as SpeakerTrack[],
+ country: "Colombia",
+ language: "Spanish / Español",
+ level: "Intermediate / Intermedio",
+ format: "workshop",
+ },
+];
+
+export const workshopSpeakerList: SpeakerInput[] = workshopSpeakerListBase.map(
+ (speaker) => ({
+ ...speaker,
+ image: workshopSpeakerImages[speaker.slug],
+ }),
+);
diff --git a/src/components/blocks/benefits/benefits.tsx b/src/components/blocks/benefits/benefits.tsx
index 9f86d78..4667b37 100644
--- a/src/components/blocks/benefits/benefits.tsx
+++ b/src/components/blocks/benefits/benefits.tsx
@@ -15,6 +15,7 @@ import {
useTransform,
} from "motion/react";
import Image from "next/image";
+import Link from "next/link";
import { type ReactNode, useMemo, useRef } from "react";
import { getBenefitsFeatures } from "@/assets/data/benefits";
@@ -24,6 +25,7 @@ import { assetPath, cn } from "@/lib/utils";
export type Features = {
icon?: ReactNode;
+ slug?: string;
title: string;
role?: string;
country?: string;
@@ -53,7 +55,19 @@ const SpeakerTitle = ({
return (