Saltar al contenido
Iván López Villegas

Atajos de teclado

1
PaleoSharp
2
Experiencia
3
Herramientas
4
Contáctame
?
Mostrar u ocultar esta lista

Iván López Villegas

Ingeniero de software en Ciudad de México

Más de ocho años desarrollando software. Mi último puesto fue en Solera, donde trabajé en una plataforma de CRM usada por ~3,200 agencias automotrices: backend en C#/.NET, SQL Server y CI/CD. He sido el punto de escalación cuando algo falla en producción, he migrado sistemas legacy a la web y fundé el equipo local de CRM en México, como desarrollador y Scrum Master.

Busco un puesto de Software Engineer III en .NET.

Cuando no programo, hago cerámica. También me apasionan los dinosaurios y los videojuegos.

Fig. 1. Jarra torneada, corte y exterior.

PaleoSharp

Un juego para aprender C# programando a EXC-1, un robot paleontólogo. Empieza con tu primera línea de código y termina en retos de entrevista de nivel SE II y SE III. Lo construí para entrenar mis propias entrevistas y corre completo en tu navegador. Desde joven, los videojuegos y el mundo competitivo han sido parte de mi aprendizaje; PaleoSharp junta eso con mi oficio.

30 niveles de excavación, 52 retos tipo entrevista y 38 lecciones con repaso.

Se juega mejor en una computadora con teclado.

Nivel de PaleoSharp: una cuadrícula de excavación de 13 por 5 casillas con EXC-1, dos raptores y una bandera.
  1. Raptoren la cuadrícula de excavación
  2. EXC-1el robot que programas en C#
  3. Banderacoordenadas (11, 2)
Fig. 2. Un nivel de excavación de PaleoSharp. EXC-1 se mueve por la cuadrícula con el C# que escribes.

Cómo está hecho

  • Roslyn, el compilador de C#, corre dentro del navegador en WebAssembly y en un Web Worker. No hay servidor: la página es estática.
  • Antes de ejecutar, un analizador revisa qué APIs usa el programa y un reescritor de sintaxis inserta guardas contra ciclos infinitos y recursión sin fin.
  • Los retos se califican con casos ocultos y límites de tiempo relativos a la solución de referencia, medidos en la misma computadora. Una solución O(n²) sigue fallando aunque el código corra interpretado.
  • La misma lógica corre en escritorio (Godot) y en web, cubierta por 366 pruebas automatizadas.

Tecnologías: C#, .NET 8, Roslyn, WebAssembly, React, TypeScript, Godot

Experiencia

Lo que hago bien

  • Resolver incidentes en producción como punto de escalación técnico, del error genérico a la causa raíz.
  • Migrar sistemas legacy: de Visual FoxPro a la web, de un framework y una base de datos a sus versiones nuevas.
  • Liderar sin cargo formal: fundé el equipo local de CRM, mentoré a compañeros y facilité al equipo como Scrum Master mientras desarrollaba.
  • Colaborar con equipos en México, India, EE. UU. y China.
  • Entregar con CI/CD (GitHub Actions, Jenkins, TeamCity, Octopus Deploy), observar con ELK y orquestar IA dentro del pipeline.
Fig. 3. La trayectoria como vasija de rollos: un rollo por puesto, el más antiguo en la base. La altura de cada rollo sigue el tiempo en el puesto.

Herramientas y formación

Backend
  • C#
  • .NET
  • ASP.NET
  • Entity Framework Core
Datos
  • SQL Server
  • PostgreSQL
  • stored procedures
  • ETL
  • SSRS
Frontend
  • React
  • TypeScript
  • AngularJS
  • Blazor
Entrega y operación
  • Docker
  • GitHub Actions
  • Jenkins
  • TeamCity
  • Octopus Deploy
  • ELK
  • Jira
También he usado
  • Java
  • PHP
  • Laravel
  • Python
  • Django
Formación
  • Licenciatura en Ingeniería en Sistemas Computacionales, Universidad del Valle de México (2015–2020)
Cursos
  • Scrum Master Training (Solera, 2023)
  • Git y GitHub (Platzi, 2021)
  • CCNA (UVM, 2018)
Idiomas
  • Español nativo
  • Inglés C1
  • Francés A1

Contáctame

Si tienes un puesto de backend o full stack con .NET, me interesa platicarlo. Disponible en híbrido en CDMX o remoto. Escríbeme aquí y te respondo a tu correo.

También me encuentras en

El puesto, la empresa o lo que quieras contarme.