Construye tu propio grep
Construye tu propio grep desde cero. Lee stdin, filtra texto por patrones y maneja códigos de salida mientras aprendes los fundamentos de las herramientas Unix.
Go · Python · Zig
Construye tu propio Git desde cero. Guarda blobs, trees y commits para entender los objetos direccionados por contenido y el control de versiones.
Constrúyelo en tu lenguaje
El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.
Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.
Git tiene fama de complicado, pero su modelo de datos cabe en una pizarra: cuatro tipos de objeto, un hash y un grafo. Todo lo confuso está en la interfaz, no en el fondo.
En este reto implementas ese fondo. Crearás objetos, los escribirás comprimidos en .git/objects, construirás árboles a partir del directorio de trabajo, harás commits y recorrerás el historial. Y lo mejor: el Git de verdad podrá leer tu repositorio.
12 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.
init, escritura de blobs comprimidos con zlib y lectura por hash.
Representa directorios, escribe el árbol del working tree y vuelve a leerlo.
Commits con padres, refs, HEAD y un log que recorre el grafo.
Checkout de un commit y reconstrucción del directorio de trabajo.
Construye tu propio grep desde cero. Lee stdin, filtra texto por patrones y maneja códigos de salida mientras aprendes los fundamentos de las herramientas Unix.
Go · Python · Zig
Construye un agente de código desde cero. Conecta modelos con OpenRouter, protege API keys, define herramientas e implementa el ciclo autónomo ReAct.
Python · TypeScript
Construye funciones SHA-256 y HMAC desde cero. Implementa rotaciones, padding y bloques de compresión, y firma mensajes sin una biblioteca criptográfica.
C · Python · Go