{"site":"https://www.zanoni.dev.br","name":"Felipe Zanoni da Rosa","generated_at":"2026-08-22T04:51:52.764Z","headline":"Felipe Zanoni da Rosa","subtitle":"Software Engineer","about":"I'm Felipe Zanoni, a Software Engineer with experience in backend development, automation, and systems integration. I've worked in Industry 4.0 corporate environments (TMD Friction) and in full stack development (Sage Networks), consistently focused on Python, Linux, Docker, and solid software engineering practices.\r\n\r\nI'm currently studying Computer Science at UNIFEI and working as a Software Engineer on the Black Bee Drones team, building software for autonomous drones using ROS and computer vision. I enjoy projects that combine well-structured code with real-world problems — from industrial process automation to mission-critical embedded systems.\r\n\r\nI'm originally from Salto, SP, and currently live in Itajubá, MG, where I study. Outside of code, I enjoy playing video games, cooking in my free time, collecting perfumes, and playing card games like truco and poker.","services":"Web Development\r\nCustom websites and web applications built from planning to deployment.\r\n\r\nProcess Automation\r\nScripts and systems to automate repetitive tasks, reducing manual work and errors.\r\n\r\nBackend & APIs\r\nREST API and backend system development in Python, focused on performance and best practices.\r\n\r\nInfrastructure Consulting\r\nLinux and Docker environment setup, from development to production deployment.","availability":"available for new projects","contact":{"email":"fezarosa@gmail.com","phone":"+55 (11) 94377-2412","github":"https://github.com/fezarosa-dev","linkedin":"https://www.linkedin.com/in/felipe-zanoni/","other_links":[{"label":"Linkedin","url":"www.linkedin.com/in/felipe-zanoni"},{"label":"WhatsApp","url":"https://wa.me/5511943772412"},{"label":"fezarosa@gmail.com","url":"mailto:fezarosa@gmail.com"},{"label":"+55 (11) 94377-2412","url":"tel:+5511943772412"}],"page":"https://www.zanoni.dev.br/en/contato"},"resume":{"content_md":"# Resume\r\n\r\n\r\n**PROFESSIONAL SUMMARY:**  \r\nInformation Technology professional with hands-on experience in software development, automation, and system integration. Strong background in Python backend development and Linux environments, with experience in Industry 4.0 projects and data-driven solutions. Skilled in Docker, Git version control, technical documentation, and collaborative development in multidisciplinary teams. Focused on building scalable software solutions with emphasis on code quality, automation, and continuous improvement.\r\n\r\n**PROFESSIONAL EXPERIENCE:**\r\n\r\n* **Full Stack Developer – Sage Networks – Nov 2025 to Mar 2026:**  \r\n  * Backend Application Development using Python;  \r\n  * Development of REST APIs;  \r\n  * Development and maintenance of scripts and services in Linux environments;  \r\n  * Code versioning with Git and containerization using Docker;  \r\n  * Support in bug fixing and maintenance of existing systems;  \r\n  * Software optimization and performance tuning;  \r\n  * Technical documentation of features and processes.  \r\n* **Industry 4.0 Project Trainee – TMD Friction – Jul 2025 to Nov 2025:**  \r\n  * Development of automation solutions and system integrations;  \r\n  * Analysis of operational and business data;  \r\n  * Processing, formatting, and analysis of high-volume data;  \r\n  * Root cause analysis and troubleshooting of issues;  \r\n  * Preparation of technical project documentation and presentations;  \r\n  * Advanced use of ERP, MES, and PCS systems.  \r\n* **Foreign Trade Apprentice – TMD Friction – Aug 2024 to Jul 2025:**  \r\n  * Freight analysis and quotation management;  \r\n  * Special tariff regimes;  \r\n  * Import procurement and negotiation;  \r\n  * Email automation, invoice processing for financial approval and payment, and spreadsheet automation using VBA.  \r\n      \r\n* **Web Developer and Automation Engineer (Freelancer) – 2023 to 2024:**  \r\n  * Web application development;  \r\n  * Automation development;  \r\n  * Development of end-to-end solutions following software engineering best practices.\r\n\r\n**PROJECTS:**\r\n\r\n* **Software Engineer – Black Bee Drones – May 2026 – Present**  \r\n  * Development of software systems for autonomous drones in competitive applications, using ROS and Python in Linux environments;  \r\n  * Collaboration with multidisciplinary engineering teams to research, implement, and document software solutions for competitions and technical presentations;  \r\n  * Use of Git for version control and software project management in a collaborative development environment.\r\n\r\n**EDUCATION:**\r\n\r\n* **Bachelor of Science in Computer Science** – Federal University of Itajubá (UNIFEI), Prof. José Rodrigues Seabra Campus – 2026 – Expected Graduation: 2029;  \r\n* **Technical Diploma in Internet Informatics (Integrated with High School)** – Federal Institute of Education, Science and Technology of São Paulo (IFSP) – 2023 to 2025\\.\r\n\r\n**LANGUAGES:**\r\n\r\n* English – Advanced;  \r\n* Portuguese – Native.\r\n\r\n**SKILLS:**\r\n\r\n* **Programming Languages & Scripting:**  \r\n  * Python;  \r\n  * Bash Script;  \r\n  * Rust;  \r\n  * JavaScript, TypeScript (Angular);  \r\n  * Java;  \r\n  * SQL;  \r\n  * HTML/CSS/SCSS;  \r\n  * VBA.\r\n  * C#\r\n* **Systems & Infrastructure:**  \r\n  * Linux (server environments);  \r\n  * Docker e Docker Swarm;  \r\n  * Nginx;  \r\n  * ROS.  \r\n* **Software Development:**  \r\n  * Git / GitHub;  \r\n  * Data structures;  \r\n  * Fundamentals of unit testing;  \r\n  * Software development lifecycle (SDLC).  \r\n* **Automation & Applied AI:**  \r\n  * Python-based automation using locally hosted language models;  \r\n  * LLM integration with offline files;  \r\n  * Use of AI for financial data analysis and process automation support;  \r\n  * Computer Vision.  \r\n* **Data & BI:**  \r\n  * Power BI;  \r\n  * Advanced Excel (Power Query and Power Pivot).  \r\n* **Networking:**  \r\n  * Computer networking fundamentals;  \r\n  * Network infrastructure and services.  \r\n* **Methodologies & Tools:**  \r\n  * Agile Methodologies;  \r\n  * Clean Code.\r\n\r\n**ADDITIONAL TRAINING / CERTIFICATIONS:**\r\n\r\n* **Dev & Tools:**  \r\n  * Docker Complete – Jan 2025;  \r\n  * Git and GitHub – Jun 2023\\.  \r\n* Programming:  \r\n  * Python Essentials 1 & 2 – 2023 / 2025;  \r\n  * Python 3 – 2022–2023.  \r\n* Systems:  \r\n  * Network Defense – Apr 2025;  \r\n  * Advanced Excel – Apr 2025\\.","links":[{"label":"download","url":"https://docs.google.com/document/d/1V5VVyhIEZYnDdm7xd5yWKtSBif2VD4-RX-5hzcV0TTo/edit?usp=sharing"}],"page":"https://www.zanoni.dev.br/en/curriculo"},"projects":[{"title":"IXSonar — BGP Visibility Analysis Across Internet Exchanges","summary":"Rust data pipeline that audits, at scale, connectivity redundancy across Brazilian and international Internet Exchange Points (IXs), using historical BGP route snapshots collected by RouteViews. The goal was to answer a practical question: is it worth a provider investing in long-distance physical connectivity to a major IX, such as São Paulo, or is most of the prefix data already replicated at closer, regional IXs? Handling a massive volume of incomplete and inconsistent data, with the real bottleneck being disk I/O rather than CPU, the pipeline combines Rust, Parquet, Arrow, and DuckDB to process everything with minimal reads/writes, delivering a historical dashboard that grounds that decision in real data.","description":"### What it is\r\nA network analysis tool that compares BGP route visibility across multiple Internet Exchange Points (IXs) — including different IX.br locations in Brazil, plus a few international IXs for comparison. It answers questions like: which prefixes announced at one IX also appear at another? How many keep the same AS path at both locations? How does that coverage vary across CDNs, access providers, banks, and government networks?\r\n\r\nThe practical goal behind the analysis is to show that, in most cases, it isn't worth a provider investing in long-distance physical connectivity to a far-away IX (e.g., running a link all the way to the São Paulo IX from Fortaleza) because most of the prefixes and networks available at a major IX are already replicated at regional IXs. The result is a historical dashboard that helps network teams make that decision with real data, understanding connectivity redundancy across locations.\r\n\r\n### Challenge\r\nData comes from RouteViews (University of Oregon), which collects route snapshots (RIBs) from routers around the world — but not every IX has full coverage: certain dates and times have capture gaps depending on the source router. Files came with missing data, inconsistent formatting between snapshots, and an enormous volume of information to process. The biggest technical challenge was finding a way to process that volume with minimal disk I/O and maximum speed, since the real bottleneck wasn't CPU — it was read/write throughput.\r\n\r\n### Solution\r\n- A **Rust** binary that automatically downloads RIB snapshots from RouteViews, testing multiple days in parallel until a valid file is found, and applies configurable include/exclude filters over AS-PATH and BGP communities.\r\n- **Apache Parquet** as the intermediate format — columnar, immutable files with built-in statistical summaries, chosen for drastically reducing disk I/O compared to alternatives like SQLite.\r\n- **Apache Arrow** to move data directly in memory (RAM) between pipeline stages, avoiding unnecessary disk serialization/deserialization.\r\n- Embedded **DuckDB** to compare IX pairs — prefix overlap, AS path consistency, and per-category network metrics — processing global, IPv4, and IPv6 dimensions in parallel, all via direct SQL over the Parquet files.\r\n- **Python** scripts that read the final results and generate a self-contained HTML dashboard with interactive charts, served by a small Flask server.\r\n\r\n### Result\r\nA complete pipeline — from raw data collection to final visualization — capable of efficiently processing large volumes of BGP data on both disk and memory, delivering historical visibility into connectivity redundancy across Brazilian and international IXs.\r\n\r\n### Tech Stack\r\n- Rust (tokio, reqwest, rayon, embedded DuckDB)\r\n- Python (pandas, matplotlib, Flask)\r\n- Apache Parquet as intermediate format\r\n- Apache Arrow for in-memory data transport\r\n- Google Charts for the dashboard\r\n\r\n### Technical Highlights\r\n- Automatic, resilient download of historical BGP RIBs from RouteViews, testing multiple days until a valid snapshot is found\r\n- Handling of incomplete data and inconsistent formatting across different collections/routers\r\n- Use of Parquet + Arrow to minimize disk I/O and maximize processing speed at scale\r\n- Configurable filter engine with AND/OR logic over BGP communities and AS-PATH\r\n- Route overlap comparison done entirely in SQL over Parquet files, via embedded DuckDB\r\n- Native Rust parallel processing across the three analysis dimensions (global, IPv4, IPv6)\r\n- Network classification by business category (CDN, ISP, financial, government) to segment the analysis","technologies":["Python","Rust","Git","DuckDB"],"coauthors":[],"company":"Sage Networks","repo_url":null,"site_url":null,"page":"https://www.zanoni.dev.br/en/projetos/3b81dfff-356b-4d47-84c2-9fc4516b4286"},{"title":"Personal Portfolio — Website & Admin Panel","summary":"This is the site you're looking at right now: a Next.js application built from scratch to showcase projects, articles, a résumé, and contact options — with one key difference: all content is managed through a custom admin panel, with no external CMS involved. Projects, text, images, technologies, and incoming messages are all edited straight from the browser, without touching code or triggering a new deploy.","description":"# Personal Portfolio — Website & Admin Panel\r\n\r\n**A portfolio site that's also a complete full-stack application, with its own CMS, authentication, and bilingual support.**\r\n\r\n## What it is\r\n\r\nThis is the site you're looking at right now: a Next.js application built from scratch to showcase projects, articles, a résumé, and contact options — with one key difference: all content is managed through a custom admin panel, with no external CMS involved. Projects, text, images, technologies, and incoming messages are all edited straight from the browser, without touching code or triggering a new deploy.\r\n\r\n## How it works\r\n\r\nThe app uses Next.js App Router with two main areas: the public-facing site and an authentication-protected `/admin` section where content is created and edited. Data lives in Supabase (Postgres), with a schema versioned through incremental SQL migrations. A custom middleware handles two things at once: guarding the admin routes and automatically detecting the visitor's language (Portuguese or English) via browser header and cookie, serving already-translated content. Site images are hosted on Google Drive and served through dedicated endpoints, keeping the API key off the client entirely.\r\n\r\n## Tech stack\r\n\r\n- Next.js 16 (App Router) + React 19 + TypeScript\r\n- Tailwind CSS 4 + shadcn/ui + Framer Motion\r\n- Supabase (Postgres + Auth)\r\n- Google Drive API as an image gallery\r\n- react-markdown for blog articles\r\n\r\n## Technical highlights\r\n\r\n- A custom CMS built into the admin panel, covering projects, articles, résumé, contact messages, and the site's visual customization\r\n- Purpose-built bilingual support: automatic language detection plus mirrored content fields (e.g. `hero_title` / `hero_title_en`)\r\n- SEO handled from day one: structured JSON-LD, sitemap, robots.txt, and dynamic Open Graph images\r\n- Unit tests covering the most sensitive parts of the system: authentication, locale detection, and markdown processing","technologies":["JavaScript","Git","TypeScript","Supabase","PostgreSQL","Vercel","React"],"coauthors":[],"company":"Personal project","repo_url":"https://github.com/fezarosa-dev/Portifolio","site_url":"www.zanoni.dev.br","page":"https://www.zanoni.dev.br/en/projetos/df1c0c03-1ebd-4bbd-ac69-6388c2f96fd3"},{"title":"Drone Simulator — ROS2 Flight Simulator","summary":"A drone (quadcopter) flight simulator built to test navigation and obstacle-avoidance algorithms without the risk or cost of physical hardware. The virtual drone takes off, flies a slalom course avoiding obstacles, can perform maneuvers (like a flip), and automatically returns to its origin point to land — all rendered in real-time 3D.","description":"# Drone Simulator — ROS2 Flight Simulator\r\n\r\n**A full virtual quadcopter, with its own physics and simulated sensors, for testing autopilot logic without a real drone.**\r\n\r\n## What it is\r\n\r\nA drone (quadcopter) flight simulator built to test navigation and obstacle-avoidance algorithms without the risk or cost of physical hardware. The virtual drone takes off, flies a slalom course avoiding obstacles, can perform maneuvers (like a flip), and automatically returns to its origin point to land — all rendered in real-time 3D.\r\n\r\n## How it works\r\n\r\nThe core is a ROS2 node running at 60 frames per second. On every frame, an autopilot (implemented as a state machine) decides the flight commands — takeoff, navigation, maneuver, return, and landing — which drive a simplified physics model of an X-configuration quadcopter with individual per-motor mixing. The simulator publishes GPS, IMU, and LIDAR data in the same formats real hardware would use over ROS2, letting any external system consume these sensors as if it were controlling an actual drone. The scene is rendered in 3D with VPython, showing the drone, the environment, and its flight trail.\r\n\r\n## Tech stack\r\n\r\n- Python 3 + ROS2 (rclpy)\r\n- VPython for 3D visualization\r\n- NumPy for physics and vector math\r\n\r\n## Technical highlights\r\n\r\n- A complete flight state machine: takeoff, obstacle-avoiding navigation, maneuver, return-to-launch, and landing\r\n- Quadcopter physics model with individual motor mixing (throttle, roll, pitch, yaw)\r\n- Simulated sensors (GPS, IMU, LIDAR) published as standard ROS2 topics, ready to be consumed by any external node\r\n- Collision detection against obstacles and arena boundaries, ending the mission on a crash\r\n- Real-time 3D visualization with a flight trail","technologies":["Python","ROS","Git"],"coauthors":[],"company":"Black Bee Drones","repo_url":"https://github.com/fezarosa-dev/droneSimulator","site_url":null,"page":"https://www.zanoni.dev.br/en/projetos/f19e16c4-57e1-43c4-b9da-2c07a9a86ee0"},{"title":"BlackBee Challenge - 2026 - Mission 1 - Mapping","summary":"Built for Mission 1 of the Black Bee Challenge, an autonomous aerial robotics competition. The goal: a drone takes off with no human intervention from the center of a 14x14 meter arena, sweeps the entire area following a grid flight plan, locates up to 5 ground \"bases\" (targets marked with shapes and numbers), photographs each one making sure it's fully framed, computes its GPS coordinate, and generates a report with the photos as proof — exactly as required by the competition's official rules.","description":"# Black Bee Challenge 2026 — Autonomous Aerial Mapping\r\n\r\n**A drone that takes off on its own, maps 100% of a competition arena, and identifies targets by itself.**\r\n\r\n## What it is\r\n\r\nBuilt for Mission 1 of the Black Bee Challenge, an autonomous aerial robotics competition. The goal: a drone takes off with no human intervention from the center of a 14x14 meter arena, sweeps the entire area following a grid flight plan, locates up to 5 ground \"bases\" (targets marked with shapes and numbers), photographs each one making sure it's fully framed, computes its GPS coordinate, and generates a report with the photos as proof — exactly as required by the competition's official rules.\r\n\r\n## How it works\r\n\r\nThe system is a finite state machine running on ROS2: takeoff, coverage planning, photo capture at each waypoint, base detection, and landing. All the camera-geometry and computer-vision math (field-of-view calculation, ground footprint size, coverage grid, pixel-to-GPS conversion) lives in modules completely independent from ROS, so they can be tested without a real drone. Base detection can run either through classic image processing (OpenCV) or a YOLO model trained specifically for the target, interchangeable without touching the rest of the pipeline.\r\n\r\n## Tech stack\r\n\r\n- Python + ROS2 (rclpy)\r\n- YASMIN (finite state machine)\r\n- OpenCV and YOLO/Ultralytics for detection\r\n- MAVROS/MAVLink for real drone control\r\n- Gazebo for simulation\r\n\r\n## Technical highlights\r\n\r\n- Fixed a real optics bug: the camera's field of view is diagonal, not horizontal — the correct trigonometric conversion changed the number of required waypoints from 6 to 8\r\n- Coverage algorithm verified numerically by sweeping a fine grid of points to confirm 100% arena coverage\r\n- Two-stage pixel-to-GPS projection pipeline, with optional tilt compensation (roll/pitch) for the drone\r\n- Deduplication of targets detected across overlapping photos, with mosaic composition when no single photo shows the whole target\r\n- Entire mission configuration centralized in one file, with profiles that switch between simulation and real flight","technologies":["Python","ROS","Git"],"coauthors":[{"name":"Felipe Barros","url":null}],"company":"Black Bee Drones","repo_url":"https://github.com/Black-Bee-Drones/black-bee-challenge-2026/tree/mapping","site_url":null,"page":"https://www.zanoni.dev.br/en/projetos/1a0160ad-64ab-440c-a10b-fdc1b4944fbe"},{"title":"Moodle Chat Bot — C Programming Assistant in Moodle Chat","summary":"A browser extension (Chrome/Firefox) that watches the Moodle chat and turns it into an academic C programming assistant. Right from the course chat, students can compile and run C code, interact with the running program (including feeding input via `scanf`), ask an AI to explain errors or fix bugs, and keep a history of past conversations and runs — all without leaving the course interface.","description":"# Moodle Chat Bot — C Programming Assistant in Moodle Chat\r\n\r\n**A browser extension that turns Moodle's chat into a C compiler and AI tutor.**\r\n\r\n## What it is\r\n\r\nA browser extension (Chrome/Firefox) that watches the Moodle chat and turns it into an academic C programming assistant. Right from the course chat, students can compile and run C code, interact with the running program (including feeding input via `scanf`), ask an AI to explain errors or fix bugs, and keep a history of past conversations and runs — all without leaving the course interface.\r\n\r\n## How it works\r\n\r\nA content script injected into the Moodle page watches the chat for commands starting with `!`, sent by an authorized user. Each command is forwarded to a local Flask backend, which routes the message: if it's C code, it's compiled with GCC and run in a subprocess, using queues and threads to capture output in real time and detect when the program is waiting for user input. If it's a question, the message — together with whatever previous-run context the user chose to include — is sent to Google's Gemini AI, with automatic fallback across models when quota limits are hit. All message history, AI responses, and run logs are stored in a local DuckDB database.\r\n\r\n## Tech stack\r\n\r\n- JavaScript (browser extension, Manifest V3)\r\n- Python + Flask (local backend)\r\n- Google Gemini API\r\n- DuckDB for persistence\r\n- GCC for compiling and running C\r\n\r\n## Technical highlights\r\n\r\n- Interactive C runner with real-time `scanf` support through a \"silence timer\" that decides when to hand output back to the user\r\n- Automatic `#include` inference: when Moodle's chat strips symbols like `#`, the bot recognizes the functions used (`printf`, `malloc`, `sqrt`...) and injects the correct headers\r\n- Fine-grained AI context system — from \"last run\" to a specific conversation ID, with rules to include only the question, only the answer, or both\r\n- Cascading fallback across Gemini models to work around free-tier quota limits\r\n- Layered backend architecture (routing, execution, AI, header inference, database), keeping each responsibility isolated","technologies":["Python","JavaScript","Git"],"coauthors":[],"company":"Personal project","repo_url":"https://github.com/fezarosa-dev/moodleChat","site_url":null,"page":"https://www.zanoni.dev.br/en/projetos/1ce7c3e7-f04a-414f-bc8b-d3f0877d7468"},{"title":"Electrolysis App — PEM Electrolyzer Simulator","summary":"A desktop application that simulates a PEM electrolyzer (hydrogen production via water electrolysis) over a 24-hour period, letting engineers and students interactively see how much H2 and O2 is produced, how much water is consumed, how much heat is generated, and how much electrical power is required — all driven by a configurable load profile, built with intermittent solar power scenarios in mind.","description":"# Electrolysis App — PEM Electrolyzer Simulator\r\n\r\n**A desktop app that shows, hour by hour, how much hydrogen an electrolyzer produces from a solar power profile.**\r\n\r\n## What it is\r\n\r\nA desktop application that simulates a PEM electrolyzer (hydrogen production via water electrolysis) over a 24-hour period, letting engineers and students interactively see how much H2 and O2 is produced, how much water is consumed, how much heat is generated, and how much electrical power is required — all driven by a configurable load profile, built with intermittent solar power scenarios in mind.\r\n\r\n## How it works\r\n\r\nThe user draws the available hourly power profile by dragging bars directly on a chart (or typing an exact value), with shortcuts for typical profiles like a continuous 24-hour run or just daylight hours. On every change, the app recalculates hourly production using the electrolyzer's physical model (Faraday's law, cell efficiency, thermal losses) and updates the charts and the daily, monthly, and annual totals in real time. Results can be exported as a package containing chart images, hourly data in CSV, and the parameters used in the simulation.\r\n\r\n## Tech stack\r\n\r\n- C# / .NET with Avalonia UI (cross-platform desktop)\r\n- LiveChartsCore + SkiaSharp for charting\r\n- CSV and image report export","technologies":["C#","Git"],"coauthors":[{"name":"Juan Felipe Vásquez Uribe","url":"https://www.linkedin.com/in/juan-felipe-vasquez-u/"}],"company":"Freelancer","repo_url":null,"site_url":null,"page":"https://www.zanoni.dev.br/en/projetos/0fa1047e-d953-4abe-8036-01b6f2b2546f"},{"title":"SOVA — Large-Scale Traffic Geolocation Pipeline","summary":"Hybrid Python and Cython pipeline that processes millions of network traffic records in real time, resolving IP geolocation to feed a DDoS detection and mitigation system.","description":"### What it is\r\nA large-scale network traffic (NetFlow dump) processing pipeline, used as input for a DDoS detection and mitigation system. For each traffic record, the system resolves source and destination IP geolocation and delivers clean, structured data for downstream consumption.\r\n\r\n### Challenge\r\nProcess millions of rows of traffic data within a 5-minute window, under strict time and memory constraints. Beyond the volume, each row required an IP geolocation lookup, which made pure Python processing unfeasible within the required SLA.\r\n\r\n### Solution\r\n- Hybrid architecture with **Python** as the orchestrator (flow control, aggregation, and output formatting) and **Cython** to accelerate the critical paths — both in NetFlow dump parsing and geolocation lookups.\r\n- Used the **MaxMind GeoIP** database to resolve source and destination IP geolocation at scale.\r\n- Parallel processing to handle the data volume within the available time window while keeping memory usage under control.\r\n- Cleaned and standardized output data, producing structured datasets later used to feed presets for the anti-DDoS system.\r\n\r\n### Result\r\nA pipeline capable of processing large volumes of network traffic within the required time SLA, delivering clean, geolocated data as the foundation for automated attack mitigation decisions.\r\n\r\n### Tech Stack\r\n- Python\r\n- Cython\r\n- MaxMind GeoIP\r\n- SQLite\r\n- Parallel processing / multiprocessing\r\n\r\n### Technical Highlights\r\n- Optimized critical code paths with Cython to reach near-C performance in Python\r\n- IP geolocation lookups at scale (millions of records) within a tight time window\r\n- Parallel processing to balance speed and memory usage\r\n- Data cleaning and standardization pipeline for downstream security systems","technologies":["Python","Docker","Git","SQLite","Cython"],"coauthors":[],"company":"Sage Networks","repo_url":null,"site_url":null,"page":"https://www.zanoni.dev.br/en/projetos/3e78caa9-23f7-4c2e-8e93-8ff7a22d3ace"},{"title":"Asgard — Client Dashboard","summary":"The company's client-facing dashboard, built in Angular, where I developed a new support tab — showing clients their contracted plan usage, ticket status (open, closed, awaiting response from either side), and average response times for both the client and the support team. I also led an effort to standardize and modularize components and the color system, reducing rework for the team and improving both performance and maintainability. The application runs in containers with an automated deployment pipeline.","description":"### What it is\r\nAsgard is the company's client-facing dashboard — the interface where clients track their account information and statistics. It's a full Angular application, running in containers with an automated deployment pipeline.\r\n\r\n### My role\r\nI didn't build the application from scratch; I joined an existing project and worked on specific fronts:\r\n- Developed a new support tab in the dashboard, giving clients visibility into:\r\n  - Usage of their contracted support plan (how much of the available quota had been used);\r\n  - Number of open and closed tickets;\r\n  - Tickets awaiting a response from the client and tickets awaiting a response from the team;\r\n  - Average response time for the client and average response time for the team.\r\n- Standardized the project: I noticed developers were manually repeating the same code patterns across different screens, so I created a standardized structure to eliminate that rework.\r\n- Modularized pages and components, making the code more reusable and easier to maintain.\r\n- Restructured the color system, unifying its use across the entire project.\r\n- Delivered frontend performance improvements as a result of these structural changes.\r\n\r\n### Tech Stack\r\n- Angular\r\n- TypeScript\r\n- Containers (deployment)\r\n- Automated deployment pipeline\r\n\r\n### Technical Highlights\r\n- Modularized components and pages to reduce code duplication\r\n- Standardized color system and styles across the application\r\n- Frontend performance gains from the restructuring\r\n- Worked on top of an existing codebase without breaking active functionality","technologies":["Docker","Git","TypeScript","Nginx","MySQL","Angular"],"coauthors":[],"company":"Sage Networks","repo_url":null,"site_url":"https://cliente.sagenetworks.com.br/","page":"https://www.zanoni.dev.br/en/projetos/822b693d-3157-4126-9421-567cb6fd9fd5"},{"title":"Pokedex — Productivity Analysis and Support Technician Allocation","summary":"Python system built to give visibility into the operation of a team of infrastructure and network technicians, who handled customer tickets through a third-party support platform. The biggest challenge wasn't the business logic, but data access: there was no API available, only direct database access, with no documentation on how the tables related to each other — it took reverse engineering the schema and handling incomplete, inconsistently formatted data. Once that data was cleaned, the system calculates per-technician productivity, tracks ticket distribution, and cross-references those numbers with the team's real availability to flag workload imbalances. Everything is presented through visual dashboards, running in production on a Docker Swarm cluster with Nginx as reverse proxy.","description":"### What it is\r\nA Python-based system that accessed a third-party customer support platform's database directly, used by infrastructure and network technicians (contracted to handle and resolve customer tickets). With no API or documentation available, the goal was to turn that raw data into productivity insights and support team management decisions.\r\n\r\n### Challenge\r\nThere was no API or any structured way to access the data — only direct server and database access. The schema was inconsistent, with dirty, incomplete data and no documentation on how the tables related to each other. Reverse-engineering the database schema was a prerequisite before any reliable productivity or allocation metric could even be calculated.\r\n\r\n### Solution\r\n- Reverse-engineered the support platform's database structure, mapping tables and relationships with no available documentation.\r\n- Direct SQL connection and queries to the database to extract ticket and support data.\r\n- Cleaned and handled inconsistent/incomplete data in Python before calculating any metrics.\r\n- Processing to calculate per-technician productivity metrics (ticket volume, resolution time, estimated effort).\r\n- Visual reports and dashboards to track task distribution across the team.\r\n- Allocation-support logic, cross-referencing workload with each technician's availability to flag imbalances.\r\n\r\n### Result\r\nA tool that gave management real visibility into the support team's productivity and helped balance ticket distribution across technicians, accounting for each one's capacity and availability — built on top of a data source with no clear structure or documentation.\r\n\r\n### Tech Stack\r\n- Python\r\n- SQL (direct database access)\r\n- Data processing and cleaning\r\n- Dashboard/report generation\r\n- Docker Swarm\r\n- Nginx\r\n\r\n### Technical Highlights\r\n- Reverse-engineered an undocumented database schema\r\n- Direct SQL data extraction with no API available\r\n- Handling inconsistent and incomplete data as a core part of the pipeline\r\n- Productivity and effort metrics calculated from raw support data\r\n- Visual dashboard for team tracking\r\n- Allocation logic accounting for individual technician availability\r\n- Deployed on a Docker Swarm cluster with Nginx as reverse proxy","technologies":["Python","Docker","Git","Nginx","MySQL"],"coauthors":[],"company":"Sage Networks","repo_url":null,"site_url":null,"page":"https://www.zanoni.dev.br/en/projetos/1b00586d-3ba9-402a-8bda-b064ec9ca84c"}],"articles":[]}