Mauricio Ignacio Pastora

Professional developer portfolio featuring my projects, technical skills, certifications, and professional experience. Built with Next.js, TypeScript, and Tailwind CSS for optimal performance and user experience. The webpage you're seeing is deployed on AWS infrastructure utilizing S3 for static hosting, CloudFront for global content delivery, and a Lambda function, API Gateway, and SES for contact form functionality.

Projects

Internal Company Directory

Internal Company Directory

Internal directory built for the Inter-American Institute on Justice and Sustainability to track and manage employee, client, subcontractor, and any other contact information. Allows for easy search and filtering of contacts by name, email, phone, organization, country, organization type, and sector. Users can also add, edit, and delete contacts, organizations, organization types, and sectors as well as view contact details and export filtered contact list to a CSV file.

ReactViteFlaskPythonPostgreSQLAWSRDSS3 BucketCloudFrontRoute 53EC2CognitoVPCSubnetsLambdaSecurity Groups

Project Architecture

AWS Infrastructure: The application leverages AWS services for scalability and security. The React frontend is hosted in an S3 bucket and delivered globally via CloudFront, with Route 53 managing DNS. The backend runs on an EC2 instance inside a VPC, connected to an RDS PostgreSQL database. Security Groups enforce strict firewall rules, and Cognito manages user authentication. A Pre-Signup Lambda trigger validates email domains (blocking disposable or unauthorized domains) and logs actions to CloudWatch. This setup provides a secure, high-performance foundation with managed hosting and authentication. Frontend Architecture: The frontend is built with React and TypeScript, using Vite for fast builds and SWR for efficient data fetching. A component-based design with TailwindCSS ensures reusable, responsive UI elements. State is managed via React Hooks and the Context API, including an authentication context tied to Cognito. This architecture delivers a performant and adaptive interface with seamless user session handling. Backend Architecture: The backend uses Flask with a RESTful API backed by PostgreSQL via SQLAlchemy. It follows clean REST principles, returning JSON responses with proper status codes. Authentication relies on Cognito-issued JWT tokens, reducing the need for custom auth logic. SQLAlchemy’s parameterized queries and input normalization protect against SQL injection, while the modular design simplifies database interactions and scaling. Deployment Pipeline: CI/CD is powered by GitHub Actions, automating builds and deployments. Frontend changes are built with Vite and synced to S3, followed by CloudFront cache invalidation. Backend updates are deployed to EC2 via SSH with automatic dependency installation and service restarts. Environment variables and GitHub Secrets manage sensitive configurations for dev, staging, and production environments. Security Features: All traffic runs over HTTPS with SSL certificates from AWS Certificate Manager. The RDS database is in a private subnet, and Security Groups restrict inbound access. CORS is configured on the Flask API to allow the frontend domain while blocking unauthorized origins. Cognito secures authentication and session management, while SQLAlchemy and input sanitization mitigate injection risks. Sensitive credentials are stored securely in AWS and GitHub Secrets.

Tech Stack

Frontend

ReactNext.jsTypeScriptTailwindCSSTkinter

Backend

PythonPostgreSQLSQLite3Supabase

DevOps

AWSCI/CDGitNginx

Tools

VS CodeGitHubVite

Certifications

AWS Certified AI Practitioner certificate

AWS Certified AI Practitioner

Amazon Web Services Training and Certification

Issued:July 23, 2025
Expires:January 15, 2028
CS50x: CS50's Introduction to Computer Science certificate

CS50x: CS50's Introduction to Computer Science

Harvard CS50

Issued:January 27, 2025
No expiration
Responsive Web Design certificate

Responsive Web Design

freeCodeCamp

Issued:February 6, 2023
No expiration

Get in Touch