Skip to content
View nicolasgutierrezdev's full-sized avatar
💭
🐧 I use arch BTW
💭
🐧 I use arch BTW

Highlights

  • Pro

Block or report nicolasgutierrezdev

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse

Hi, I'm Nicolás 👋

Software engineer from Maldonado, Uruguay. I build systems end to end, from the backend and the cloud infrastructure down to the NFC reader on the table. Most of my work lives where software meets physical things: wristbands, smart cards, kiosks and installations that real people touch at events.

These days I spend most of my open-source time on smart cards, especially getting the Uruguayan eID to work with open tooling.

Smart cards and the Uruguayan eID

I contribute to OpenSC, the open-source smart card middleware, where I work on support for the Uruguayan cédula de identidad:

  • Contactless (PACE) support for the cedulauy driver, so the cédula works over NFC with a standard reader.
  • A fix in sm-iso for response buffer sizing and Le in Secure Messaging, which truncated chained responses like RSA signatures read over NFC.
  • Multi-batch testing and card identification (ATR mask) for the original driver by Carlos Planchon, validated end to end with a PAdES signature.
  • Smaller fixes to the tools and documentation in the wiki on the MRZ requirement for PACE.

Around that work:

  • cedulauy-mrz-scan reads the MRZ of a cédula from a photo or a live webcam feed. That's the input PACE needs to open a contactless session. On PyPI.
  • On FirmaUY, a CLI to sign and verify PDF, XML and other files with the cédula, I added the fetch-identity and list-readers commands, a native PKCS#11-free signing backend and Windows support, which I also brought to firmauy-desktop and firmauy-mcp-inspect.

NFC and events

As a tech lead I designed a dynamic NFC wristband system (backend and Android app) that handled real-time, queue-free check-in for events with 500+ people at once. Any wristband could be linked to any guest live, which removed a third-party dependency.

simple-nfc-tag is the library that came out of it: tag-agnostic data storage over PC/SC that hides reader, tag and protocol details. Tested on real hardware (ACR122U, NTAG213, MIFARE Classic 1K). On PyPI.

I've also built Raspberry Pi installations, like personalized welcome holograms and photo booths that send pictures straight to the event app, plus interactive experiences for BMW, Campus Party and Burger King.

Python and FastAPI

I work mostly in the Python and FastAPI ecosystem. I contribute to FastAPI Boilerplate, an extendable starting point for async APIs built on FastAPI, Pydantic v2, SQLAlchemy 2.0, PostgreSQL and Redis.

I also contributed to UruAPI, an API for Uruguay's daily economic indicators, through LibreCourseUY.

And then there's this

moanpoint makes every interaction with your ThinkPad TrackPoint awkward. It plays moaning sounds whose volume scales with how hard you push. It's also my most-starred repo, and I've made peace with that.


Stack: Python · FastAPI · PostgreSQL · Redis · AWS · Docker · Linux · C · Android · PC/SC, APDU, PKCS#11

🌐 nicolasgutierrez.uy · 📫 contacto@nicolasgutierrez.uy

Pinned Loading

  1. OpenSC/OpenSC OpenSC/OpenSC Public

    Open source smart card tools and middleware. PKCS#11/MiniDriver

    C 3.1k 879

  2. carlosplanchon/firmauy carlosplanchon/firmauy Public

    Sign and verify PDF (PAdES), XML (XAdES) and arbitrary files (CAdES/.p7s) with the Uruguayan cédula via PKCS#11.

    Python 8 2

  3. simple-nfc-tag simple-nfc-tag Public

    A tag-agnostic NFC data storage library built on PC/SC, abstracting away reader, tag and protocol details.

    Python 1

  4. cedulauy-mrz-scan cedulauy-mrz-scan Public

    Scan and parse the Machine Readable Zone (MRZ) from Uruguayan eID (Cédula de Identidad) card images or live webcam feeds.

    Python 1