Hi, I'm Odell Hola, soy Odell

I don't just consume APIs; I reverse engineer them No solo consumo APIs; hago ingeniería inversa

Self-taught since 2018. I build automation, integrations and desktop tools — and I read the protocol underneath before I trust it. Autodidacta desde 2018. Construyo automatizaciones, integraciones y herramientas de escritorio, y leo el protocolo que hay debajo antes de confiar en él.

Primary languages Lenguajes principales

  • Python
  • C#
  • C++
  • Java
  • Kotlin
  • JavaScript
$ whoami
Self-taught software developer since 2018.

$ cat focus.txt
Automation, systems integration, reverse engineering.
Python, C#, C++.

$ ls projects/
account-manager  custom-gui-sfx  turnstile-solver
image-in-terminal  workflow-automation
Type help and press Enter for available commands. Escribe help y pulsa Enter para ver los comandos disponibles.

Selected Work Trabajo seleccionado

Four things I've built and shipped have verifiable links. Cuatro cosas que he construido y publicado tienen enlaces verificables.

Custom GUI SFX

A Windows desktop tool that packages an archive, custom info, links and images into a single self-extracting .exe that runs on a machine with no unzip utility installed. Structured as MVVM over .NET 6 and WPF. Una herramienta de escritorio para Windows que empaqueta un archivo comprimido, información personalizada, enlaces e imágenes en un único .exe autoextraíble que funciona en una máquina sin descompresor instalado. Estructurada como MVVM sobre .NET 6 y WPF.

  • 334 release downloadsdescargas totales
  • C# · .NET 6 · WPF
  • Windows x64

The finished executable has to stay under 4 GB. The limit is in the Win64 format itself: the in-memory image is capped at 2 GB because AMD64 relative addressing keeps its offsets in a dword, and everything merged onto the binary pushes the file toward that ceiling. The constraint applies to the output binary, not the archive going in. El ejecutable final debe quedarse por debajo de 4 GB. El límite está en el propio formato Win64: la imagen en memoria está topada en 2 GB porque el direccionamiento relativo de AMD64 guarda los desplazamientos en un dword, y todo lo que se fusiona sobre el binario acerca el archivo a ese techo. La restricción aplica al binario de salida, no al archivo que se introduce.

Turnstile Solver

An async Python server that solves Cloudflare Turnstile challenges in a real browser and returns the token over a local REST endpoint. Proxy handling is first-class — global, via environment, or rotated per browser context. Un servidor asíncrono en Python que resuelve retos de Cloudflare Turnstile en un navegador real y devuelve el token a través de un endpoint REST local. El manejo de proxies es de primera clase — global, por variables de entorno o rotado por contexto de navegador.

  • 52 ★ · 15 forksbifurcaciones
  • Python · Quart · patchright
  • GPL-3.0
  • Docker + pytest

image-in-terminal

A Python package and CLI that renders images as coloured Unicode text in the terminal. Takes local files, HTTP/HTTPS URLs, or a whole directory. Two tuning thresholds decide which pixels get inverted, so images stay legible against either a light or a dark terminal. Un paquete y CLI de Python que renderiza imágenes como texto Unicode en color dentro de la terminal. Acepta archivos locales, URLs HTTP/HTTPS o un directorio completo. Dos umbrales de ajuste deciden qué píxeles se invierten, para que las imágenes sigan siendo legibles tanto en una terminal clara como oscura.

  • 205 downloads a monthdescargas al mes
  • Published on PyPIPublicado en PyPI · v1.32
  • MIT
  • CLI + importable libraryCLI + librería importable

Workflow Automation Automatización de flujos de trabajo

Private / NDA Confidencial / NDA

Private client work under NDA. I designed and implemented automations to reduce repetitive manual tasks: API integrations, data processing, error handling, and report generation. The code and client details are confidential, but I can explain the technical approach in a call. Trabajo privado para cliente bajo NDA. Diseñé e implementé automatizaciones para reducir tareas manuales repetitivas: integración de APIs, procesamiento de datos, manejo de errores y generación de reportes. El código y los detalles del cliente son confidenciales, pero puedo explicar el enfoque técnico en una llamada.

  • API integrationsIntegración de APIs
  • Data processingProcesamiento de datos
  • Error handlingManejo de errores
  • Report generationGeneración de reportes

Figures for linked projects only · verified Cifras solo de proyectos con enlace · verificadas el

Capabilities Capacidades técnicas

Every bar names the work behind it — public where it can be shown, private where it can't. Cada barra nombra el trabajo que tiene detrás — público cuando puede mostrarse, privado cuando no.

Languages Lenguajes

  • Python turnstile_solver · image-in-terminal · private client worktrabajo privado con clientes
  • C# custom-gui-sfx · Account Manager
  • Java / Kotlin private client worktrabajo privado con clientes
  • C / C++ private client worktrabajo privado con clientes
  • JavaScript private client worktrabajo privado con clientes

Bars show relative strength, not a measured score. Two name repositories you can open; the rest is client work I can't publish. Las barras muestran fuerza relativa, no una puntuación medida. Dos nombran repositorios que puedes abrir; el resto es trabajo de cliente que no puedo publicar.

Platforms & tools Plataformas y herramientas

  • .NET 6 / WPF / WinUI 3
  • MVVM
  • Visual Studio
  • Unity
  • Android
  • Jetpack Compose
  • Java / Kotlin
  • HTML / CSS
  • JavaScript
  • Docker
  • Docker Compose
  • Git
  • GitHub
  • Linux
  • PostgreSQL
  • SQL
  • REST APIs
  • SSH
  • TLS / HTTPS
  • Flask
  • FastAPI
  • Django
  • SQLAlchemy
  • Quart (async HTTP)
  • patchright
  • Playwright
  • Selenium
  • Scrapy
  • BeautifulSoup
  • aiohttp / httpx
  • requests
  • asyncio
  • NumPy
  • Pandas
  • Matplotlib
  • OpenCV
  • Pillow
  • Tkinter
  • PyQt / PySide
  • PyInstaller
  • Rich
  • rich-argparse
  • argparse
  • python-dotenv
  • Faker
  • pyngrok
  • pytest
  • Ruff / Black / mypy
  • setuptools
  • PyPI
  • IDA Pro
  • x64dbg
  • and morey más

Specialties Especialidades

  • Reverse engineering & protocol analysisIngeniería inversa y análisis de protocolos

    Reading undocumented formats, binaries and APIs directly, instead of guessing at the wrapper.Leer formatos, binarios y APIs no documentados directamente, en lugar de adivinar sobre el envoltorio.

  • Network & securityRedes y seguridad

    Network and protocol analysis, TLS/HTTPS and certificate chains, SSH keys and tunnelling, and wireless (WiFi) security — together with the proxy rotation and authenticated-session handling that automating on top of them demands.Análisis de redes y protocolos, TLS/HTTPS y cadenas de certificados, claves y túneles SSH y seguridad inalámbrica (WiFi) — junto con el manejo de proxies y sesiones autenticadas que exige automatizar por encima de ellas.

  • Automation & integrationAutomatización e integración

    Systems that keep running unwatched: session handling, scheduling, and retry logic that survives the failure cases.Sistemas que siguen funcionando sin supervisión: gestión de sesiones, planificación y lógica de reintentos que sobrevive a los casos de fallo.

  • Desktop & cross-platform applicationsAplicaciones de escritorio y multiplataforma

    Windows tooling in C# and .NET, Android in Kotlin and Jetpack Compose, and Unity builds that target both.Herramientas Windows en C# y .NET, Android en Kotlin y Jetpack Compose, y builds de Unity para ambas.

How I Work Cómo trabajo

Fundamentals first Los fundamentos primero

I started in 2018, and I shipped Account Manager in March 2023 — nearly two years before the term vibe coding was coined, and with no AI writing any of it. That background is in memory management, protocol analysis and system architecture: the parts of software that don't have a shortcut. I use modern tooling deliberately, and I can tell you exactly what I would do without it. Empecé en 2018, y publiqué Account Manager en marzo de 2023 — casi dos años antes de que se acuñara el término vibe coding, y sin que ninguna IA escribiera nada de él. Esa base está en gestión de memoria, análisis de protocolos y arquitectura de sistemas: las partes del software que no tienen atajo. Uso herramientas modernas de forma deliberada, y puedo decirte exactamente qué haría sin ellas.

  1. Understand it before I use itEntenderlo antes de usarlo

    I read the protocol, the binary or the schema before building on top of it. Most of my hardest bugs were assumptions I hadn't checked.Leo el protocolo, el binario o el esquema antes de construir encima. La mayoría de mis bugs más difíciles fueron suposiciones que no había comprobado.

  2. Depth over speedProfundidad antes que velocidad

    I learn things all the way down, which is why I can take on whatever a project needs — not only what I already know. Quality and reputation come before the money.Aprendo las cosas hasta el fondo, y por eso puedo asumir lo que un proyecto necesite — no solo lo que ya sé. La calidad y la reputación van antes que el dinero.

  3. The code has to explain itselfEl código tiene que explicarse solo

    Naming, structure and comments that let someone else — or me in a year — pick it up without a guided tour.Nombres, estructura y comentarios que permitan a otra persona — o a mí dentro de un año — retomarlo sin una visita guiada.

  4. Ship something that runsEntregar algo que funcione

    A smaller thing that works beats a bigger thing that nearly does. I'd rather hand over one finished module than three half-finished ones.Algo más pequeño que funciona vale más que algo más grande que casi funciona. Prefiero entregar un módulo terminado que tres a medias.

  5. Say what I don't knowDecir lo que no sé

    If I haven't worked with a technology, I'll tell you — then tell you how long I need to learn it. You get a real estimate instead of an optimistic one.Si no he trabajado con una tecnología, te lo digo — y después te digo cuánto necesito para aprenderla. Recibes una estimación real en lugar de una optimista.

About Sobre mí

I'm a self-taught developer. I started in 2018 and never really stopped — courses and technical books gave me the theory, building things put it into practice, and taking apart software that already worked is how I check I actually understood it. Soy desarrollador autodidacta. Empecé en 2018 y nunca he parado del todo — los cursos y los libros técnicos me dieron la teoría, construir cosas la puso en práctica, y desarmar software que ya funcionaba es mi forma de comprobar que la entendí de verdad.

I work mainly in Python and C#, with C and C++ where the problem calls for them. My projects tend to be tools: something that automates a process, packages a build, or reaches data that isn't exposed cleanly. Trabajo principalmente en Python y C#, con C y C++ cuando el problema lo pide. Mis proyectos suelen ser herramientas: algo que automatiza un proceso, empaqueta una build u obtiene datos que no están expuestos de forma limpia.

Rate This Page Califica Esta Página

No account, no name, no email. One click and it counts. Sin cuenta, sin nombre, sin correo. Un clic y queda contado.

Thanks — recorded. Gracias — registrado. Updated — your rating replaced the last one. Actualizado — tu valoración reemplazó la anterior. That did not reach the server. Nothing was recorded. No llegó al servidor. No se registró nada.

/dev