Acerca del servicio
TraducidoSoy un desarrollador de Clojure y creo servicios backend funcionales y aplicaciones de procesamiento de datos que se ejecutan en la JVM. En el núcleo de mi trabajo se encuentran estructuras de datos inmutables, funciones puras y un estilo composicional donde un programa se construye a partir de piezas pequeñas y claramente nombradas sobre las que realmente puedes razonar. Dado que Clojure es un Lisp, mi herramienta principal es el REPL: hago crecer un programa de forma interactiva, evalúo expresiones directamente sobre datos en vivo y refino el diseño a medida que avanzo, en lugar de adivinar todo de antemano y depurar después. Es una disciplina distinta, a diferencia de trabajar con Java, Scala o Elixir, y lo abordo como un oficio propio, no como Java con paréntesis.
En multihilo, utilizo honestamente las herramientas que el lenguaje ofrece: átomos, refs, agentes y canales core.async — por tarea, no por moda. He construido servicios HTTP REST y de streaming en Ring y reitit, descrito datos a través de spec y Malli, trabajado con Postgres a través de next.jdbc y HoneySQL, procesado grandes volúmenes con transductores y secuencias perezosas para que la memoria se mantenga plana. Me importa la integración cuidadosa con el ecosistema JVM circundante, el manejo de errores sensato y despliegues aburridos-de-una-buena-manera. Si el código se ha enredado en un estado complicado, lo devuelvo a un núcleo limpio y bordes delgados con efectos.
Si tienes un servicio que debe ser correcto bajo carga, un pipeline de datos que debe mantenerse mantenible, o un proyecto de Clojure atascado a mitad de camino, lo recogeré y lo haré avanzar. Escribo pruebas que corrigen el comportamiento, documento puntos complejos y dejo un proceso REPL saludable para que la próxima persona sea productiva desde el primer día.
— Servicios backend en Clojure y ClojureScript para JVM
— APIs REST y de streaming en Ring, reitit y core.async
— Modelado y validación de datos a través de clojure.spec y Malli
— Trabajando con Postgres a través de next.jdbc, HoneySQL y agrupamiento de conexiones
— Multihilo con átomos, refs, agentes y canales
— Transductores, secuencias perezosas, procesamiento de grandes volúmenes
— Desarrollo impulsado por REPL, pruebas y refactorización a funciones puras
En multihilo, utilizo honestamente las herramientas que el lenguaje ofrece: átomos, refs, agentes y canales core.async — por tarea, no por moda. He construido servicios HTTP REST y de streaming en Ring y reitit, descrito datos a través de spec y Malli, trabajado con Postgres a través de next.jdbc y HoneySQL, procesado grandes volúmenes con transductores y secuencias perezosas para que la memoria se mantenga plana. Me importa la integración cuidadosa con el ecosistema JVM circundante, el manejo de errores sensato y despliegues aburridos-de-una-buena-manera. Si el código se ha enredado en un estado complicado, lo devuelvo a un núcleo limpio y bordes delgados con efectos.
Si tienes un servicio que debe ser correcto bajo carga, un pipeline de datos que debe mantenerse mantenible, o un proyecto de Clojure atascado a mitad de camino, lo recogeré y lo haré avanzar. Escribo pruebas que corrigen el comportamiento, documento puntos complejos y dejo un proceso REPL saludable para que la próxima persona sea productiva desde el primer día.
— Servicios backend en Clojure y ClojureScript para JVM
— APIs REST y de streaming en Ring, reitit y core.async
— Modelado y validación de datos a través de clojure.spec y Malli
— Trabajando con Postgres a través de next.jdbc, HoneySQL y agrupamiento de conexiones
— Multihilo con átomos, refs, agentes y canales
— Transductores, secuencias perezosas, procesamiento de grandes volúmenes
— Desarrollo impulsado por REPL, pruebas y refactorización a funciones puras