
Alejandro Figueroa
Verified Expert in Engineering
Software Developer
Victoria, BC, Canada
Toptal member since October 27, 2022
Alejandro is a software developer with more than 15 years of experience, focusing on back-end applications using .NET technologies and DevOps practices. He thrives on designing and implementing software solutions that leverage serverless and cloud-native architectures, generating value for organizations. Alejandro enjoys working with multicultural and geographically distributed teams and finding opportunities to mentor and learn from others.
Portfolio
Experience
- Databases - 15 years
- C# - 15 years
- Software Architecture - 10 years
- REST APIs - 10 years
- Git - 10 years
- Continuous Integration (CI) - 8 years
- Cloud Architecture - 3 years
- Docker - 3 years
Availability
Preferred Environment
JetBrains Rider, Git, C#, Microservices, Azure, .NET Core, Go, Kubernetes, Docker
The most amazing...
...solution I've worked on is a real-time event notification system on a serverless architecture that can scale to hundreds of concurrent users.
Work Experience
Back-end Developer
LlamaZOO Interactive
- Built and designed a real-time notifications solution to push data from the back end to connected client applications, using cloud-managed services to handle scaling.
- Developed microservices to capture user data and save it to a cloud-based database. I used gRPC as the service protocol and PostgreSQL as the data source.
- Designed an overarching IoT solution to capture data from smart devices and make it available as part of a digital twin in a 3D-based desktop application. I used the Azure IoT Hub and custom RESTful APIs to handle the IoT data.
- Added unit tests to existing codebases to enhance the quality assurance process.
- Implemented CI/CD pipelines to automate the deployment of around ten microservices across multiple environments. These pipelines used Azure DevOps services, YAML pipeline definitions, and Docker containers.
Senior .NET Developer
Zemoga
- Designed and implemented a RESTful API to capture business workflow requests. It uses an AWS Lambda function as the API, Amazon DynamoDB as a data store, and Elasticsearch to provide search capabilities over non-structured data.
- Developed APIs for a public-facing transactional website written in Vue. The front end consumed the APIs to perform transactional tasks.
- Implemented CI/CD pipelines to automate the deployment of serverless microservices using AWS CodePipeline and AWS CloudFormation.
- Contributed to a team of ten highly skilled front- and back-end developers, testers, UI/UX designers, and business specialists. We worked on discovering, analyzing, and developing solutions.
- Discussed APIs contracts, coding standards, and quality assurance methods with front-end developers and other coworkers.
- Mentored junior developers in technical and architectural subjects such as coding best practices, architectural patterns, and cost optimizations for cloud-based services.
- Interacted with business analysts, UI/UX designers, and front-end developers to understand and produce highly usable applications.
- Wrote unit tests and aimed to maintain a test coverage of 80% to avoid bugs and enhance the CI/CD process.
- Participated in architectural discussions with the technical leadership and proposed approaches to solving challenging scalability and reliability problems.
Web Developer
Starkids Montessori World
- Built a messaging web application that enabled communication between parents and kindergarten staff.
- Redesigned and built the main website, helping consolidate the brand image through the consistent usage of color and typography.
- Designed and built a partner website to promote educational services and products.
- Set up domain rules for the main website, secondary sites, and email.
Solutions Architect
Skandia
- Implemented continuous integration processes, including automated code reviews, automatic builds, and staged deployments.
- Implemented service catalogs and architectural practices for the enterprise, which helped the team to align to a microservices architecture.
- Recommended and implemented DevOps practices such as configuration management, monitoring, and automated deployments.
- Oversaw new software development projects and ensured separation of concerns between domain bounded contexts.
- Participated in technical discussions with third-party software providers to ensure the company requirements were understood and fulfilled.
Senior Development Specialist
Skandia
- Standardized data contracts for the back-end API of a brand-new mobile app. This API consolidated data coming from multiple downstream WCF services.
- Created a solution to automate the company's collection process, pulling data from banks as flat files and integrating it with the organization's legacy systems.
- Designed and implemented a report generator platform to produce over a hundred reports in multiple formats. The platform used a plug-in architecture that reduced around 80% of development efforts for new regulatory reports.
- Managed a team of four software developers collaborating on a single project while overseeing task assignments, workload, and deliverables.
Experience
Real-time Event Notifications
Multiple back-end services published events to an Azure Event Grid topic, to be picked up by an Azure function and pushed to clients using Azure SignalR infrastructure. The desktop application connected to the SignalR endpoint using another Azure function to authenticate the request. The back-end services and client applications used reusable libraries published as NuGet packages to encapsulate the event generation and handling.
API for Non-structured Business Requests
The RESTful API was implemented as an AWS Lambda function responding to HTTP requests. It received request data as JSON, along with some metadata, and saved it to an Amazon DynamoDB table. When a request changed status, the API sent a message to the SQS queue so it could be picked up by a processor AWS Lambda function using an event-based architecture. The processor function executed specialized business logic based on the request type.
The solution also included an Elasticsearch index to facilitate queries and searches. Whenever a request was created or updated, an Amazon DynamoDB stream sent a message that was picked up by another AWS Lambda function to update the Elasticsearch index. Deployment was made using AWS CodeBuild pipelines and AWS CloudFormation templates.
Virtual School Agenda
The front end was built as a Vue 2 application, composed of multiple reusable components, using framework features such as state management with Vuex and routing using Vue-router. Authentication was handled by Auth0 with custom workflow actions to handle authorization.
The back end was built using Azure functions as the API, backed with Azure Table storage as the data source. The database design followed an eventual consistency data model for integrity, creating redundant copies of the data tailored for specific query patterns. Whenever a new record was created or updated, the system sent messages to a queue to be processed by a separate Azure Function that handled data consistency.
CI/CD Pipeline for Docker-based Microservices
The CI/CD pipeline was run on the company's on-prem Jenkins server and was triggered by successfully merged pull requests. The Jenkins job compiled the project, ran unit tests, and built the Docker images.
After that, the images were pushed to an AWS-hosted repository, and CloudFormation scripts were used to create the services in AWS Elastic Container Service (ECS)
Back end for Mobile App
This project involved creating a new RESTful API to support a brand-new mobile app, which was used by clients of the company to access its services. The API had to aggregate data coming from multiple downstream WCF services and expose them in a JSON schema to be consumed by the mobile app.
Automated Collections Processor
The solution exposed a web application where users could configure relevant messaging parameters such as the file format, connection parameters, and pulling frequency. The web app communicated with SOAP web services to save data to a database and trigger BizTalk Server orchestrations.
Education
Postgraduate Diploma in Software Engineering
Pontificia Universidad Javeriana - Bogota, Colombia
Engineer's Degree in Software Engineering
Universidad Distrital Francisco Jose de Caldas - Bogota, Colombia
Skills
Libraries/APIs
Web API, REST APIs, Vue 2, Vue, Azure Blob Storage API, jQuery, SignalR, Vuex, Node.js
Tools
Git, AWS CloudFormation, Amazon Simple Queue Service (SQS), NuGet, Azure App Service, GitLab, Azure DevOps Services, TFS, Jekyll, GitHub, Dapper, JetBrains Rider, Jenkins, Amazon Elastic Container Service (ECS), Auth0, Azure IoT Hub, AWS Fargate
Languages
C#, C#.NET, JavaScript, XML, HTML, SQL, Markdown, CSS, T-SQL (Transact-SQL), Go, XSLT, XSD
Frameworks
.NET, ASP.NET, ASP.NET Core, ASP.NET MVC, .NET Core, gRPC, Tailwind CSS, ASP.NET Web Forms, Entity Framework Core, Windows Presentation Foundation (WPF), .NET 2, Bootstrap
Paradigms
REST, Microservices, Continuous Integration (CI), Application Lifecycle Management (ALM), DevOps, Azure DevOps, Unit Testing, Agile, Design Patterns, Eventual Consistency, UI Design
Platforms
Software Design Patterns, AWS Lambda, Docker, Azure Functions, Azure, Amazon Web Services (AWS), MacOS, Azure Event Hubs, Kubernetes, Google Cloud Platform (GCP)
Storage
Databases, Amazon DynamoDB, Azure Table Storage, PostgreSQL, SQL Server 2016, Azure Queue Storage, Microsoft SQL Server, Elasticsearch
Other
APIs, JSON REST APIs, Software Design, Back-end, Data Structures, Software Architecture, Cloud Architecture, BizTalk Server, Infrastructure as Code (IaC), BizTalk, SOAP, Cloud Infrastructure, Architecture, CI/CD Pipelines, Message Queues, Cloudflare, User Interface (UI), .NET 6, Enterprise Architecture, WCF Web Services, Windows Services, MSMQ, Containers, Axios
How to Work with Toptal
Toptal matches you directly with global industry experts from our network in hours—not weeks or months.
Share your needs
Choose your talent
Start your risk-free talent trial
Top talent is in high demand.
Start hiring