Hey there, I'm
Giovanni Aguirre
I’m a frontend engineer from El Salvador. Right now, I’m working at a leading telecom company, building and maintaining a UCaaS platform. I love digging into TypeScript and finding creative ways to solve problems and build awesome user experiences. I’m a huge fan of learning new things and taking on challenges—whether it’s exploring new frameworks, improving my skills, or just figuring out how to make stuff work better.
Experience
March 2024, Present
Ooma Inc, Frontend Engineer L2
- Develop new modules for a UCaaS platform as part of an 8-person team, taking features from early requirements all the way to production.
- Build cross-tenant applications and microfrontends that adapt to each customer's setup, collaborating with multiple teams to coordinate versioning and get their releases shipped.
- Publish and maintain shared npm packages on top of our internal design system, so components stay consistent and reusable across every microfrontend instead of being rebuilt.
- Use WebSockets to keep the UI in sync with real-time data, handling live updates smoothly without forcing full page refreshes.
- Translate PRDs and design mockups into pixel-perfect, robust features, handling edge cases carefully before they reach production.
- Review code to keep it clean, share ideas, and help the team write more readable, maintainable code through consistent feedback.
- Use AI to speed up my workflow by building custom skills and plugins that automate repetitive tasks and cut down on boilerplate.
March, 2023, February 2024
2600Hz, Software Engineer
- Implemented new features and maintained existing functionality for a UCaaS platform built with React microfrontends orchestrated through SingleSPA, keeping each app independently deployable.
- Enhanced and supported a desktop application built with Electron, wiring main and renderer process communication and keeping it in sync with the web platform.
- Proposed and built proofs of concept for new features, then worked with the team to turn the best ideas into production work.
- Consumed real-time data events over WebSockets, optimizing data structures and the update flow so the UI stayed responsive under heavy event traffic.
- Worked closely with product and design to translate requirements into shipped features, and reviewed code to keep it clean, consistent, and readable.
Education
Feb, 2019, Dec 2023
University of El Salvador, Bachelor's Degree in Computer Systems Engineering.
Cum laude
I studied Computer Systems Engineering at the University of El Salvador and graduated cum laude. The first semesters were heavy on math and physics, which is where I learned to break a problem into smaller pieces and work through it step by step. I also led a few team projects along the way, splitting up the work and keeping everyone on the same page. What stuck with me most, though, is a self-taught mindset: reading the docs, testing ideas on my own, and figuring things out instead of waiting for someone to hand me the answer.
Online Courses
- Coursera, Python for Python for Everybody Specialization
- Coursera, Intermediate PostgreSQL
- Google Cloud Skills Boost, Develop Serverless Applications on Cloud Run.
Skills
- React
- Next.js
- MongoDB
- Drizzle ORM
- Node.js
- Express
- Electron
- Zustand
- Typescript
- Python
Volunteering
Feb, 2021, Dec 2022
Glasswing International, Robotics Instructor
- Taught high school students the fundamentals of programming and robotics.
- Guided students in developing abilities that will help to solve problems using algorithms and soft skills.
- Collaborated in organizing and facilitating multi-school robotics tournaments.
Interests
Professional: micro frontend architecture, webRTC, websockets, API building, data science.
Hobbys: electronics, gaming, PC building, gym training.
Blog entries
September 23, 2026
Debugging WebSocket Connections from the Browser Console
Postman can't reproduce CORS or mixed-content errors, so it lies to you about WebSocket bugs. Here's a small console script that tests the connection in the one environment that matters: the browser.
September 23, 2026
Open a Folder in Zed From the Terminal (the `code .` Equivalent)
VS Code has code . to open a folder, but Zed's CLI isn't on your PATH out of the box. Here's a one-line fix using a symlink in ~/.local/bin, plus the commands that make it useful.
September 23, 2026
Simulating Packet Loss on Linux to Test Audio and Video
You can't wait around for real Wi-Fi to misbehave. Use tc and netem to drop incoming and outgoing packets on demand and see how your audio and video stack holds up.
May 1, 2026
Useful .bashrc Tweaks That Make Your Terminal Life Easier
A collection of practical .bashrc tweaks for navigation, safety, auto-correction, and shared terminal history that remove friction from daily terminal use.
April 30, 2026
Rescuing a 100% Full /var Partition on Linux
How to diagnose a full /var partition, clean up snap packages and apt caches, and use bind mounts to permanently move heavy directories to /home.
March 25, 2025
Syncing System Info from Electron in React with useSyncExternalStore
useSyncExternalStore is a not-so-popular React hook, but it's super useful for subscribing to an external source and storing its data—no useEffect or useState needed.
February 14, 2025
Cleaner JavaScript with Logical Assignment Operators (&&=, ||=, ??=)
A guide with examples on how logical assignment operators (&&=, ||=, ??=) in JavaScript simplify assignments.
January 30, 2025
How to disable internal microphone and camera on Linux
Disabling input devices can be required for privacy, security, or debugging. This guide provides the necessary commands to achieve it.
December 17, 2024
Reversing an integer mathematically in TypeScript
Reversing an integer is one of the most common problems for interviews. It can be easily done if we treat the number as a string, but there is a mathematical way of doing it...