Software development · Uruguay

Rodrigo Suárez

Full Stack Developer

Information Technology Analyst graduate from Universidad ORT Uruguay.

I build custom web and desktop applications, from requirements analysis and design through deployment and ongoing maintenance.

Rodrigo Suárez, software developer

Selected work

Software that addresses real business needs

Business management systems, web and desktop applications, and integrations. Each project starts with a business process or challenge and turns it into a practical solution.

Mayorista Javier - sales dashboard
View all screenshots (7)
Mayorista Javier - sign-inMayorista Javier - products and inventoryMayorista Javier - supplier managementMayorista Javier - order managementMayorista Javier - user managementMayorista Javier - management system logo

In production

Featured project

Mayorista Javier Management System

Challenge
Orders were recorded on paper, and the business lacked reliable information about its actual stock levels, sales and profit margins. This limited visibility made supplier purchasing difficult to plan and left uncertainty about which products to reorder and in what quantities.
My contribution
Gathered and analyzed the business requirements and built the management system from the ground up. Handled deployment and continue to maintain the system, including its API, frontend and integration with the customer-facing website.
Outcome
The system keeps inventory up to date and saves approximately 15 minutes per order entered, according to the client’s estimate. It brings together monthly sales KPIs, best- and lowest-selling product rankings, profit margins and estimated sales for the month. Expiry alerts and stock information help prevent product losses and overbuying. It also keeps the product catalog on the customer-facing website up to date in real time.
  • C#
  • React 19
  • .NET 10
  • PostgreSQL
Explore technical decisions and features

Technical decisions

Separate the React 19 frontend from the C#/.NET 10 REST API and centralize business data in PostgreSQL using Entity Framework Core. Use TanStack Query for data fetching and caching, Zustand for state management and Zod for form validation. Protect endpoints with JWT authentication and role-based permissions, and hash passwords with BCrypt.NET. Generate PDFs in the API with QuestPDF and connect order and inventory management to the customer-facing web catalog.

A C# REST API running on .NET 10, using Entity Framework Core and Npgsql to access PostgreSQL. The frontend uses React 19, TypeScript and Vite, with React Router for navigation, TanStack Query for data fetching and caching, Zustand for state management, and React Hook Form with Zod for forms and validation. Recharts displays business performance indicators, while QuestPDF generates PDF documents in the API. Access is protected with JWT authentication and role-based permissions, with password hashing handled by BCrypt.NET.

  • REST API with JWT-protected endpoints and role-based access control
  • Password hashing with BCrypt.NET
  • Automatic PDF order generation with QuestPDF
  • React 19 frontend with TypeScript and Vite
  • Data fetching and caching with TanStack Query; state management with Zustand
  • Forms with React Hook Form and validation with Zod
  • Interactive charts and business performance indicators with Recharts
  • PostgreSQL persistence through Entity Framework Core and Npgsql
  • Dashboard with performance indicators, reports and sales estimates
  • Order entry and generation of print-ready documents
  • Docker containers and tests with Vitest and xUnit

Technology stack checked against dependency manifests and code in the backoffice and API repositories. The approximately 15 minutes saved per order is a client estimate for the integrated catalog and management system workflow, not two separate savings.

Technology stack:

  • C#
  • React 19
  • .NET 10
  • PostgreSQL
  • TypeScript
  • Vite
  • Entity Framework Core
  • Npgsql
  • QuestPDF
  • JWT
  • BCrypt.NET
  • TanStack Query
  • Zustand
  • React Router
  • React Hook Form
  • Zod
  • Recharts
  • Tailwind CSS
  • Docker
  • Vitest
  • xUnit

In development

Ratio · Construction management for Espina · logo

Free software · Full Stack contribution

In development

Featured project

Ratio · Construction management for Espina

Collaboration with Ing. Luis Terzano

Challenge
Espina needed construction management software adapted to Uruguay’s local context, including construction-sector social contributions (leyes sociales). Departments relied on multiple Excel spreadsheets that were difficult to use and understand and did not support effective collaboration. The challenge also includes reducing fragmented information, repeated data entry and conflicting versions.
My contribution
Full Stack contributor working with engineer Luis Terzano. Implemented the complete Gantt chart module, including scheduling logic, the API and the WPF interface. Also developed audit logging, security and permission improvements, Excel import and export, and Inno Setup installers. Modernized screens, navigation, Fluent styling, icons, visual identity and reusable components.
Outcome
The complete Gantt chart module is in use for construction scheduling and reviewing resources and planned costs, both monthly and cumulative. It identifies unscheduled work items, shows how much of the budget has been scheduled, and supports Excel export and printing to paper or PDF. Permissions and auditing were strengthened across the client and API, and the interface was made consistent throughout the system.
  • WPF
  • C#
  • .NET 8
  • MongoDB
Explore technical decisions and features

Technical decisions

Link planning to the active budget and allocate costs proportionally across selected days. Separate pending changes from saved data used by charts, totals and exports. Include permissions, filters and consistency warnings. Amounts are planned costs, not actual receipts or payments. Added endpoint authentication, role-based permissions, login rate limiting and tracing for access and critical operations; centralized styles/icons and improved installation and updates.

A C# WPF desktop client connected to a .NET 8 API with MongoDB persistence. The Gantt chart module links work-item dates to the active budget, allocates planned costs across the selected working days, and provides weekly and monthly views. Viewing and editing follow user permissions; charts, totals and exports use saved data separately from pending changes. Distribution includes installers and connection validation.

  • Construction project management for Uruguay’s local context
  • Budgets with materials, labor, machinery, work items and cost categories
  • Direct and indirect costs, profit allocation and bid adjustments
  • Reports and Excel spreadsheet import and export
  • Centralized information across departments
  • Local requirements, including construction-sector social contributions
  • Collaboration as a goal instead of isolated spreadsheets
  • API installers for Windows and Linux servers
  • Desktop client installer for Windows
  • My contribution: admin panel logs and user management
  • My contribution: end-to-end Excel import and export
  • My contribution: end-to-end Inno Setup installer generation
  • My contribution: complete Gantt chart module linked to the active budget
  • Work-item dates; weekly and monthly scales
  • Configurable working-day calendar, without automatic holiday exclusion
  • Monthly summaries and planned and cumulative cost charts
  • Materials, labor, equipment, services, supplies, indirect costs, contingencies and person-hour breakdowns
  • Search, unscheduled-item filter and jump-to-today navigation
  • Excel export and paginated print/PDF via the Windows print dialog
  • Viewing/editing permissions and unsaved-change protection
  • Endpoint authentication, role-based permissions and login protection
  • Critical-operation auditing and access tracing
  • MongoDB indexes for logs and users
  • WPF modernization: navigation, Fluent styling, icons, branding and reusable components
  • Installation and updates: services, optional MongoDB and connection validation
  • Planned: configurable company name, logo and system settings without code changes

Contributions checked against Rodrigo's commits and local client/API code, including Gantt and detalles-ui branches. Gantt chart usage confirmed by Rodrigo. Company configuration is planned, not yet implemented. No quantified impact metrics.

Technology stack:

  • WPF
  • C#
  • .NET 8
  • MongoDB
  • API
  • Windows Server
  • Linux
Mayorista Javier - desktop product catalog
View all screenshots (2)
Mayorista Javier - customer catalog logo

In production

Mayorista Javier Customer Catalog (PWA)

Challenge
The business did not have a customer-facing catalog where customers could browse available products and prices.
My contribution
Built the PWA and integrated it with the business management system to display information updated in real time. Implemented the catalog and order preparation flow, along with contact information, directions, a buying guide and FAQs.
Outcome
Customers can browse the product catalog, prepare an order and send it through WhatsApp. The business receives a message ready to copy and paste into its system to record the order and generate a print-ready PDF. The client’s estimate of approximately 15 minutes saved per order applies to this integrated workflow; it is not an additional saving beyond the management system. The website also brings together contact options, the store location and guidance on arranging collection or delivery.
  • Next.js
  • React 19
  • TypeScript
  • Tailwind CSS
Explore technical decisions and features

Technical decisions

Connect the catalog to the business management system and deliver a PWA that adapts to different devices. Let customers prepare an order online and send it as a WhatsApp message that staff can copy and paste into their system. This workflow allows staff to record the order and generate a print-ready PDF in under 10 seconds, as confirmed by Rodrigo. Keep contact details, directions, buying instructions and FAQs in a section accessible from the catalog to guide customers through the ordering process.

A PWA built with Next.js, React 19, TypeScript and Tailwind CSS. It integrates data from the business management system to keep products and prices up to date. Customers browse products, prepare an order and send it through WhatsApp; the business uses that message to enter the order into its system and generate a PDF order document.

  • Build orders and send them through WhatsApp
  • Product catalog with search and filters
  • Product and price lookup
  • Integration with the business management system
  • TypeScript implementation
  • Responsive Next.js, React 19 and Tailwind CSS interface
  • SEO and performance considerations
  • Catalog designed to accommodate more products and users
  • Installable PWA on mobile and desktop
  • Deployment on Vercel
  • WhatsApp and phone contact; store location with a directions link
  • Buying guide with no account required and collection or delivery options
  • FAQs covering pricing, availability and products sold by weight
  • Wholesale and retail pricing based on the quantities selected

Integration and technology stack checked against the repositories. Rodrigo confirmed that entering the order and generating the PDF takes under 10 seconds. The approximately 15 minutes saved per order is a client estimate for the integrated workflow, not an additional saving.

Technology stack:

  • Next.js
  • React 19
  • TypeScript
  • Tailwind CSS
  • PWA
Jaume & Sere - room booking calendar
View all screenshots (9)
Jaume & Sere - my bookingsJaume & Sere - location managementJaume & Sere - meeting room managementJaume & Sere - room equipmentJaume & Sere - system settingsJaume & Sere - room misuse reportsJaume & Sere - tablet layoutJaume & Sere - company logo

In production

Meeting Room Booking — Jaume & Sere

Challenge
Meeting room bookings were kept on paper. Handwriting was sometimes difficult to read, and bookings were not always canceled, leaving rooms incorrectly marked as occupied. Some participants also missed meeting details or were unaware that a meeting had been canceled.
My contribution
Contributed to requirements analysis and team development of the meeting room booking system for Jaume & Sere as a final-year project.
Outcome
The organization reported that bookings incorrectly blocking meeting rooms were eliminated. Email invitations and notifications also resolved communication gaps: all participants receive meeting invitations and cancellation notices.
  • C#
  • .NET 8
  • Entity Framework Core
  • MS SQL Server Express
Explore technical decisions and features

Technical decisions

Replace the paper agenda with a central calendar supporting bookings and cancellations. Integrate Active Directory for corporate access and Outlook through Microsoft Graph to send invitations and email notifications to all participants, including cancellation notices, using a .NET API and React frontend.

A meeting room booking system developed as a final-year Information Technology Analyst project. The backend uses C#/.NET 8, Entity Framework Core and SQL Server Express, with Active Directory authentication and role-based access. The React, Vite and TypeScript interface supports bookings, cancellations, room usage reporting and change auditing. Microsoft Graph sends meeting invitations and cancellation notices through Outlook. Deployed on Azure App Service.

  • .NET REST API for rooms and bookings
  • Entity Framework Core with the Repository pattern
  • Active Directory sign-in and role-based access
  • Outlook notifications through Microsoft Graph
  • Responsive React, Vite and TypeScript frontend
  • Room usage dashboard
  • Booking history and change auditing
  • Deployment on Azure App Service

Outcome reported by the organization.

Technology stack:

  • C#
  • .NET 8
  • Entity Framework Core
  • MS SQL Server Express
  • Active Directory (Windows Server)
  • Microsoft Graph / Outlook
  • React
  • Vite
  • TypeScript
  • TailwindCSS
  • Azure
FyV Traslados: homepage, services and WhatsApp inquiry

In production

FyV Traslados

Challenge
FyV wanted greater visibility and a single place to explain its work, services and booking process.
My contribution
Design and development of the FyV Traslados business website based on the company’s needs.
Outcome
The company has a published website bringing its offering together and making it easier to share service information and contact the team through WhatsApp.
  • Astro
  • TypeScript
  • Tailwind CSS
  • Vercel
Explore technical decisions and features

Technical decisions

Organize services, process, pricing and contact in an Astro website with reusable components. Add WhatsApp inquiries, responsive layouts and technical SEO with a sitemap and structured data.

Designed and developed the FyV Traslados business website to present transport services, pricing, the booking process and contact information. Reusable Astro components and Tailwind CSS support the responsive layout. WhatsApp links help visitors request a quote, while a sitemap and structured data support technical SEO.

  • Services and pricing
  • WhatsApp inquiries and quotes
  • Responsive mobile and desktop layout
  • Sitemap and structured data

Delivered: a published website with services, process and contact information in one place.

Technology stack:

  • Astro
  • TypeScript
  • Tailwind CSS
  • Vercel
PimPollo: official social media preview with the chick and the under-construction announcement

In development

PimPollo · Customer website and product catalog

Challenge
PimPollo needed a fast, mobile-accessible and discoverable website combining shop details, products and promotions without online payments, alongside a secure admin interface to manage products, prices and settings.
My contribution
Full Stack development of the Astro public site, React 19/TypeScript admin panel, C#/.NET 10 API and PostgreSQL/Railway/Vercel integration, including responsive design, business settings, security, CI and tests.
Outcome
Live PimPollo landing page with brand identity, WhatsApp contact, opening hours, shop information and FAQs. Working admin panel and API for products, promotions and business settings. Technical SEO, social preview and automated accessibility/navigation checks are implemented; the interactive public catalog and full order-preparation flow remain under construction.
  • Astro
  • React 19
  • Vite
  • TypeScript
Explore technical decisions and features

Technical decisions

Separate public website, admin and API concerns. Render contact details and opening hours in indexable HTML synchronized with API settings, plus social metadata and no-JavaScript navigation. Protect management operations with authentication, secure cookies, CSRF, token rotation and login throttling. Validate contracts with real PostgreSQL and automated browser tests.

PimPollo's live website already features a modern, responsive under-construction landing page with accessible animation, About us, How to buy, FAQs, location, opening hours, Instagram and WhatsApp. Business details are managed through the API. The site includes local SEO, social previews, semantic HTML that works without JavaScript and automated agent-navigation checks. I also built a React 19 admin panel with CRUD for products (image, name and price), promotions and settings, and a layered .NET 10 API using EF Core and PostgreSQL on Railway. Authentication, secure session cookies, CSRF protection, auditing and scheduled encrypted backups support the system. The interactive public catalog and order-preparation workflow remain in development, without checkout or online payments.

  • Live: mobile-first under-construction landing page with chick mascot and accessible animations.
  • Live: About us, How to buy, FAQs, location, opening hours, Instagram and WhatsApp.
  • Astro website: API-managed business settings, local SEO, JSON-LD, Open Graph and social preview.
  • Agent-friendly navigation: semantic hours, how-to-buy and contact journeys checked with automated browser tests.
  • React 19 admin: products with image, name, price and unit, promotion/settings CRUD, login and password updates.
  • .NET 10 API + EF Core + PostgreSQL: public business endpoints and protected management operations.
  • Security: HttpOnly/Secure cookies, CSRF, rotating sessions, login lockout and structured logs.
  • Infrastructure and quality: Vercel, Railway, Docker, private PostgreSQL, scheduled encrypted backups and CI with real database/browser tests.
  • Planned: launch the browsable public catalog, product selection and WhatsApp order preparation.
  • Scope: no online payment gateway or checkout.

Cross-checked against PimPollo: web/src/pages/index.astro serves the landing, web/src/pages/_home.astro contains a preliminary catalog, and admin/ and api/ manage business data. GitHub Actions covers PostgreSQL, browser, performance and navigation checks. CI lab results are not presented as universal production guarantees.

Technology stack:

  • Astro
  • React 19
  • Vite
  • TypeScript
  • C#
  • .NET 10
  • PostgreSQL
  • Entity Framework Core
  • Docker
  • Railway
  • Vercel

Profile

Technology grounded in business

I graduated as an Information Technology Analyst from Universidad ORT Uruguay. My work spans requirements analysis, implementation and deployment, connecting software with business processes.

I develop frontend and backend software: web and desktop applications, APIs, access security, auditing and integrations. At Ratio I implemented the complete Gantt chart module and modernized the WPF interface, alongside Excel workflows and installers. I prioritize clear code, reusable components and maintainable solutions.

Background

Experience & education

From analysis to delivery

Work experience · CASMU

Computer Systems Operator

2020 - Present

System monitoring, log and data analysis, SQL queries and file review to identify incidents.

Final-year project

Meeting room management for Jaume & Sere

Contributed to the analysis and development of a booking solution with .NET, React, Active Directory and Microsoft Graph.

Education

Analista en Tecnologías de la Información (Information Technology Analyst)

Universidad ORT Uruguay · Graduate

Additional training

Big Data and GeneXus

Specialization in Big Data and training as a Junior GeneXus Analyst.

Tools

The right tools for the problem

Technologies I use for development, integrations and data. My projects show how I apply them.

Backend and integrations

  • C#
  • ASP.NET Core
  • Entity Framework Core

Web frontend

  • TypeScript
  • JavaScript
  • React
  • Next.js
  • Astro
  • Vite
  • Tailwind CSS

Databases

  • PostgreSQL
  • SQL Server
  • MongoDB

Desktop and distribution

  • WPF
  • XAML
  • Inno Setup

Tools and infrastructure

  • Git
  • GitHub
  • Docker
  • Azure
  • Vercel
  • Neon
  • Railway
  • GitHub Actions

I also work with JWT, BCrypt.NET, Microsoft Graph, automated testing and CI/CD. Railway is used in private solutions such as PimPollo; I use Python for automation scripts and document generation.

Other technologies and tools

Technologies from education, earlier projects or specific tasks; not all are part of my current core stack.

  • HTML
  • CSS
  • Java
  • Python
  • Bootstrap
  • Redux
  • Capacitor
  • Windows Server

Next step

Let’s talk about your team or project

Open to opportunities in software development and data. Tell me about your context, the challenge and what you need to build.

Get in touch

Email me with the details of an opportunity, or start a conversation on WhatsApp.

rodrisua1@hotmail.com