Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6fb0c8480d | ||
|
|
8d6db09648 | ||
|
|
45b3089ecd | ||
|
|
7803518264 | ||
|
|
5e2de1556a | ||
|
|
392393a4e7 |
No files matched your search
@@ -1,73 +1,77 @@
|
||||
# Evandro Fonseca Junior
|
||||
<div align="center">
|
||||
<img src="assets/readme/hero.svg" width="100%" alt="Evandro Fonseca Junior, backend engineer: APIs and integrations for IoT devices, web and mobile apps, in TypeScript, Python, NestJS and PostgreSQL. Code self-hosted at git.evandro.dev.br.">
|
||||
<p>
|
||||
<a href="https://evandro.dev.br/?utm_source=profile-readme">Portfolio</a> ·
|
||||
<a href="https://git.evandro.dev.br/evandro">Gitea</a> ·
|
||||
<a href="mailto:evandrofonsecajunior@gmail.com">Email</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
**Software engineer building custom systems, apps and integrations.** Backend-focused with Node.js, NestJS, TypeScript, Python and PostgreSQL, and hands-on work with AI agents and MCP tooling.
|
||||
Software engineer at Apolo Energia since 2022: APIs, IoT integrations and web and mobile apps, in TypeScript and Python.
|
||||
|
||||
[Portfolio](https://evandro.dev.br) · [LinkedIn](https://www.linkedin.com/in/evandrodevbr/) · [Email](mailto:evandro[email protected]) · [WhatsApp](https://wa.me/5547992742365)
|
||||
Garuva, Santa Catarina, Brazil (UTC-3), working remotely. Open to backend roles and technical collaborations as of October 2026.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
> [!NOTE]
|
||||
> My GitHub account, [edevbr](https://github.com/edevbr), is only an entry point: it is where people can find me and how I contribute to projects I believe in. My own work runs locally and on my self-hosted Gitea at [git.evandro.dev.br](https://git.evandro.dev.br/evandro), since GitHub suspended my previous account. [What happened](#what-happened-to-my-previous-account).
|
||||
|
||||
## What I do
|
||||
## Work you can check
|
||||
|
||||
I build software end to end: understanding the problem, choosing the trade-offs, modeling the data, writing the APIs and the interfaces, testing, deploying and following it in production.
|
||||
Live client projects, each with a public case study on my portfolio.
|
||||
|
||||
- **Custom systems and apps**: web applications, mobile apps and internal tools, from discovery to production.
|
||||
- **Integrations**: REST APIs, third-party services and IoT devices talking to the rest of the stack.
|
||||
- **Backend engineering**: API design, data modeling, authentication and authorization, automated tests, CI/CD.
|
||||
- **AI and agents**: MCP servers and agent tooling, mostly local-first and self-hosted.
|
||||
- **Diagnostics**: performance, security and maintainability reviews of existing systems.
|
||||
- **[SEV Moda Íntima](https://evandro.dev.br/cases/sev-modaintima)**: catalog, online store and an operations panel for products, orders and stock by size. Live at [sevmodaintima.com.br](https://sevmodaintima.com.br).
|
||||
- **[Lavação 047](https://evandro.dev.br/cases/lavacao-047)**: site and admin panel for a car wash. Customers pick a service and the order arrives on WhatsApp; the owner edits prices, text and photos without asking anyone.
|
||||
- **[Julia Beauty](https://evandro.dev.br/cases/julia-beauty)**: static site for a lash studio in Camboriú, with an eye-effect simulator, local SEO with JSON-LD and WhatsApp booking. Live at [juliabeauty.com.br](https://juliabeauty.com.br).
|
||||
- **[AS Serviços](https://evandro.dev.br/cases/as-servicos)**: institutional site for an engineering company, with a procedural Three.js scene that follows the page scroll (Next.js 16, React 19).
|
||||
- **[SC Plus Aquicultura](https://evandro.dev.br/cases/sc-plus)**: institutional site with service areas, projects and contact for an aquaculture company.
|
||||
|
||||
Five years of software work, with a longer background in hardware and infrastructure, which helps when a problem leaves the application layer. Based in Garuva, Santa Catarina, Brazil (UTC-3), working remotely. Open to backend engineering roles and to technical collaborations.
|
||||
## At Apolo Energia and before
|
||||
|
||||
## Selected projects
|
||||
This work lives in private repositories, so here is the scope without the code.
|
||||
|
||||
### AI and agent tooling
|
||||
- Web and mobile apps, APIs and IoT device integrations for Apolo Energia's internal routines and renewable energy operations, including operations dashboards.
|
||||
- A NestJS platform (TypeScript, PostgreSQL, Drizzle ORM) split into isolated domains, with OpenAPI docs, S3-compatible storage, health checks and test coverage thresholds of 80% of lines and 70% of branches.
|
||||
- An offline-first TypeScript SDK with auth, sync and media modules, retry with backoff, dead-letter handling and SHA-256 deduplication.
|
||||
- At Innovo, from December 2024 to February 2025: Angular components and Node.js back-end logic over PostgreSQL and MySQL, plus maintenance of legacy systems.
|
||||
|
||||
- **[PiAgentUI](https://github.com/evandrodevbr/PiAgentUI)**: desktop and web workspace for AI coding agents, with streaming sessions, MCP and skills panels, terminal and file explorer (React 19, TypeScript, Vite, Tauri 2, GPL-3.0).
|
||||
- **[GeminiNexus](https://github.com/evandrodevbr/GeminiNexus)**: multi-account gateway for Gemini and Claude that exposes OpenAI- and Anthropic-compatible endpoints, with SSE streaming, usage analytics and credentials kept in the OS keychain (Electron, React 19).
|
||||
- **[orelhIA](https://github.com/evandrodevbr/orelhIA)**: local PT-BR audio transcription MCP server on Parakeet TDT, with LRU cache, VAD, metrics, SSRF protection and automated tests (Python, Docker, MIT).
|
||||
- **[latebra](https://github.com/evandrodevbr/latebra)**: self-hosted MCP server for private web access, search and extraction, with a three-layer anti-bot evasion pipeline, TLS impersonation, proxy rotation and a pytest suite covering the pipeline, proxy manager and stealth layers (Python, MIT).
|
||||
- **[dev-workflows](https://github.com/evandrodevbr/dev-workflows)**: code review workflows shipped as agent skills, covering frontend, backend, architecture and security with explicit verification steps (MIT).
|
||||
- **[oh-my-pi-telegram](https://github.com/evandrodevbr/oh-my-pi-telegram)**: Telegram adapter for the Oh My Pi coding agent, so a live terminal session can be driven from a private chat (TypeScript, Node 22).
|
||||
- **[LocalMind](https://github.com/evandrodevbr/LocalMind)**: mobile chat client for models served by LM Studio on the local network, with no cloud and no API key (React Native, Expo).
|
||||
## Tools I build for myself
|
||||
|
||||
### Web apps and developer tools
|
||||
These are private and not published as open-source packages. I can walk you through any of them on a call.
|
||||
|
||||
- **[nutriscan](https://github.com/evandrodevbr/nutriscan)**: nutrition platform over Open Food Facts (2M+ products), with barcode search, Nutri-Score and NOVA filters, multi-layer cache and offline support (Next.js, TypeScript, Prisma). [Live demo](https://nutriscan.evandro.dev.br)
|
||||
- **[as-servicos](https://github.com/evandrodevbr/as-servicos)**: institutional site for an engineering company, with a procedural Three.js scene that follows the page scroll (Next.js 16, React 19, TypeScript).
|
||||
- **[Downloader](https://github.com/evandrodevbr/Downloader)**: ephemeral download proxy that fetches files on a VPS into short-lived sessions and serves them to the browser, with SSRF protection (Fastify, React).
|
||||
- **[cursorAI_install.sh](https://github.com/evandrodevbr/cursorAI_install.sh)**: Bash script that installs, repairs and removes the Cursor IDE on Linux, choosing AppImage, DEB or RPM from the detected distribution and architecture (MIT).
|
||||
- **[bthaven](https://github.com/evandrodevbr/bthaven)**: native Windows 11 Bluetooth device and audio hub in C#, developed probe-first, so features land only after the underlying Windows behavior is demonstrated with code (MIT).
|
||||
|
||||
## Professional work
|
||||
|
||||
Part of my work lives in private repositories. The scope, without the code:
|
||||
|
||||
- Backend and integrations for the web and mobile applications that support Apolo Energia's internal routines, including IoT device integration and operations dashboards for renewable energy processes.
|
||||
- A modular NestJS platform (TypeScript, PostgreSQL, Drizzle ORM) split into 8+ isolated domains, with OpenAPI documentation, S3-compatible storage, health checks and automated tests with coverage thresholds of 80% of lines and 70% of branches.
|
||||
- An offline-first TypeScript SDK with auth, sync, media and transaction modules, including retry with backoff, dead-letter handling and SHA-256 deduplication.
|
||||
- E-commerce systems with ACID inventory transactions, separate customer and admin authentication and relevance-ranked product search.
|
||||
- At Innovo (December 2024 to February 2025): Angular front-end components and Node.js back-end logic over PostgreSQL and MySQL, internal libraries and maintenance of legacy systems.
|
||||
- **orelhIA**: MCP server for local PT-BR audio transcription on Parakeet TDT, with an LRU cache, voice activity detection and SSRF protection.
|
||||
- **latebra**: self-hosted MCP server for private web search and extraction, with TLS impersonation and proxy rotation.
|
||||
- **PiAgentUI**: desktop and web workspace for AI coding agents, built with Tauri 2 and React 19.
|
||||
- **gemini-nexus**: multi-account gateway that exposes OpenAI- and Anthropic-compatible endpoints for Gemini and Claude.
|
||||
- **bthaven**: native Windows 11 Bluetooth device and audio hub in C#.
|
||||
|
||||
## Stack
|
||||
|
||||
| Area | Technologies |
|
||||
| --- | --- |
|
||||
| Languages | TypeScript, JavaScript, Python, SQL, Bash, C# |
|
||||
| Backend | Node.js, NestJS, Fastify, Express, REST APIs, OpenAPI, PHP, Laravel |
|
||||
| Backend | Node.js, NestJS, Fastify, Express, PHP, Laravel, REST, OpenAPI |
|
||||
| Frontend and mobile | React, Next.js, Astro, React Native, Expo, Tailwind CSS |
|
||||
| Data | PostgreSQL, MySQL, SQLite, MongoDB, Prisma, Drizzle ORM |
|
||||
| Infrastructure | Docker, Linux, S3-compatible storage, CI/CD, Firebase |
|
||||
| Infrastructure | Docker, Linux, S3-compatible storage, CI/CD, Firebase, self-hosted Gitea |
|
||||
| Quality and security | Jest, Vitest, pytest, Playwright, OAuth2, JWT, RBAC, Zod |
|
||||
|
||||
## What happened to my previous account
|
||||
|
||||
My previous GitHub account, evandrodevbr, was suspended after one of my repositories was flagged. That repository was my mistake, made without bad intent, and I offered to delete it right away so it could not affect anyone.
|
||||
|
||||
The offer changed nothing. There was no way to remove that one repository and keep the account, and the suspension made no distinction between it and years of unrelated work. I lost my personal repositories and the ones I maintained for companies I worked for, along with their issues, reviews and history.
|
||||
|
||||
I had backups, so the code survived. Since then my development setup runs on my own machines and my own server, where a decision I have no say in cannot take years of work offline.
|
||||
|
||||
## Contact
|
||||
|
||||
Open to backend engineering roles, technical collaborations and conversations about architecture, APIs and reliable systems. The fastest way to reach me is [email](mailto:[email protected]) or [LinkedIn](https://www.linkedin.com/in/evandrodevbr/).
|
||||
**Best way to reach me: [[email protected]](mailto:[email protected]).** I answer in Portuguese or English.
|
||||
|
||||
Elsewhere: [WhatsApp](https://wa.me/5547992742365) · [portfolio](https://evandro.dev.br/?utm_source=profile-readme) · [LinkedIn](https://www.linkedin.com/in/evandrodevbr/) · [Gitea](https://git.evandro.dev.br/evandro)
|
||||
|
||||
If you maintain a project you think I should contribute to, send me the link.
|
||||
|
||||
<div align="center">
|
||||
<img src="https://github-profile-summary-cards.vercel.app/api/cards/profile-details?username=evandrodevbr&theme=transparent" alt="Evandro's GitHub activity overview" />
|
||||
<sub>Made by <a href="https://evandro.dev.br">Evandro Fonseca Junior</a> · <a href="https://git.evandro.dev.br/evandro">git.evandro.dev.br</a></sub>
|
||||
</div>
|
||||
|
||||
<!-- Owner: Evandro. Review this page when the role changes, a project goes public, a job search starts or the portfolio changes. Last reviewed: 2026-10-24. -->
|
||||
@@ -0,0 +1,52 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="420" viewBox="0 0 1200 420" role="img" aria-labelledby="title desc">
|
||||
<title id="title">Evandro Fonseca Junior</title>
|
||||
<desc id="desc">Backend engineer who builds APIs and the integrations that connect IoT devices, web apps and mobile apps to a PostgreSQL database. His code is hosted on his own Gitea server at git.evandro.dev.br.</desc>
|
||||
|
||||
<rect width="1200" height="420" rx="24" fill="#0a0a0a"/>
|
||||
|
||||
<g id="title-block" font-family="system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif">
|
||||
<text x="64" y="132" font-size="68" font-weight="700" fill="#f4f2ed">Evandro Fonseca</text>
|
||||
<text x="64" y="208" font-size="68" font-weight="700" fill="#f4f2ed">Junior</text>
|
||||
<text x="64" y="268" font-size="28" fill="#f4f2ed">Backend engineer: APIs and integrations</text>
|
||||
<text x="64" y="306" font-size="28" fill="#f4f2ed">for IoT devices, web and mobile apps.</text>
|
||||
<text x="64" y="360" font-size="20" fill="#ccff00" font-family="ui-monospace, "SF Mono", Consolas, monospace">TypeScript · Python · NestJS · PostgreSQL</text>
|
||||
</g>
|
||||
|
||||
<g id="integration-map" font-family="system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif" font-size="20">
|
||||
<g id="sources" fill="#161616" stroke="#3a3a38" stroke-width="2">
|
||||
<rect x="712" y="72" width="148" height="48" rx="10"/>
|
||||
<rect x="712" y="138" width="148" height="48" rx="10"/>
|
||||
<rect x="712" y="204" width="148" height="48" rx="10"/>
|
||||
</g>
|
||||
<g fill="#f4f2ed" text-anchor="middle">
|
||||
<text x="786" y="103">IoT devices</text>
|
||||
<text x="786" y="169">web apps</text>
|
||||
<text x="786" y="235">mobile apps</text>
|
||||
</g>
|
||||
|
||||
<g id="links" fill="none" stroke="#ccff00" stroke-width="3" stroke-linecap="round">
|
||||
<path d="M860 96 C 892 96, 892 146, 920 146"/>
|
||||
<path d="M860 162 L 920 162"/>
|
||||
<path d="M860 228 C 892 228, 892 178, 920 178"/>
|
||||
<path d="M1022 162 L 1046 162"/>
|
||||
</g>
|
||||
|
||||
<g id="api">
|
||||
<rect x="920" y="118" width="102" height="88" rx="12" fill="#ccff00"/>
|
||||
<text x="971" y="171" text-anchor="middle" font-size="28" font-weight="700" fill="#0a0a0a">API</text>
|
||||
</g>
|
||||
|
||||
<g id="database" stroke="#f4f2ed" stroke-width="2" fill="#161616">
|
||||
<path d="M1046 132 L1046 192 A50 13 0 0 0 1146 192 L1146 132"/>
|
||||
<ellipse cx="1096" cy="132" rx="50" ry="13"/>
|
||||
</g>
|
||||
<text x="1096" y="236" text-anchor="middle" font-size="18" fill="#a6a59f">PostgreSQL</text>
|
||||
|
||||
<g id="own-server">
|
||||
<rect x="712" y="290" width="434" height="62" rx="12" fill="#161616" stroke="#3a3a38" stroke-width="2"/>
|
||||
<circle cx="740" cy="321" r="6" fill="#ccff00"/>
|
||||
<text x="760" y="328" fill="#f4f2ed" font-family="ui-monospace, "SF Mono", Consolas, monospace">git.evandro.dev.br</text>
|
||||
<text x="1126" y="327" text-anchor="end" font-size="18" fill="#a6a59f">self-hosted</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
Reference in new issue
Block a user