Alejandro Figueroa, Developer in Victoria, BC, Canada
Alejandro is available for hire
Hire Alejandro

Alejandro Figueroa

Verified Expert  in Engineering

Software Developer

Location
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 to generate value for organizations. Alejandro enjoys working with multicultural and geographically distributed teams, finding opportunities to mentor and learn from others.

Portfolio

LlamaZOO Interactive
C#, Azure Functions, Containers, Docker, Azure App Service, GitLab, Git...
Zemoga
C#, .NET, Microservices, AWS Lambda, AWS CloudFormation, Amazon DynamoDB...
Starkids Montessori World
JavaScript, HTML, UI Design, Jekyll, Tailwind CSS, Vue 2, Cloudflare...

Experience

Availability

Part-time

Preferred Environment

MacOS, JetBrains Rider, Git, C#, Microservices, .NET, Azure Functions, C#.NET, Azure Table Storage, Azure, .NET Core

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

2021 - PRESENT
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.
Technologies: C#, Azure Functions, Containers, Docker, Azure App Service, GitLab, Git, Azure DevOps Services, C#.NET, gRPC, Azure Table Storage, Tailwind CSS, Azure, APIs, JSON REST APIs, GitHub, CI/CD Pipelines, Message Queues, Software Design, Azure IoT Hub, REST APIs, ASP.NET Core, Azure Blob Storage API, CSS, .NET Core, Back-end, Azure DevOps, REST, Dapper, Entity Framework Core, Unit Testing, Agile, TestDirector, .NET 6

Senior .NET Developer

2017 - 2021
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.
Technologies: C#, .NET, Microservices, AWS Lambda, AWS CloudFormation, Amazon DynamoDB, Elasticsearch, Docker, Git, Software Design Patterns, Software Architecture, Cloud Architecture, Continuous Integration (CI), PostgreSQL, Infrastructure as Code (IaC), Amazon Simple Queue Service (SQS), JavaScript, C#.NET, HTML, Jenkins, Vue, Vue 2, APIs, JSON REST APIs, Jekyll, CI/CD Pipelines, Message Queues, Node.js, Software Design, REST APIs, ASP.NET Core, Amazon Web Services (AWS), ASP.NET Web Forms, CSS, .NET Core, Back-end, REST, AWS Fargate, Dapper, Entity Framework Core, Unit Testing, Agile, T-SQL (Transact-SQL)

Web Developer

2015 - 2019
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.
Technologies: JavaScript, HTML, UI Design, Jekyll, Tailwind CSS, Vue 2, Cloudflare, Azure Functions, Azure Table Storage, Azure Blob Storage API, User Interface (UI), CSS, .NET Core, REST, Windows Presentation Foundation (WPF), .NET 2

Solutions Architect

2015 - 2017
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.
Technologies: WCF Web Services, Databases, Design Patterns, Architecture, Software Architecture, Continuous Integration (CI), TFS, Application Lifecycle Management (ALM), C#, C#.NET, Web API, SQL, APIs, JSON REST APIs, CI/CD Pipelines, Software Design, REST APIs, ASP.NET Core, ASP.NET Web Forms, Back-end, Azure DevOps, Unit Testing, T-SQL (Transact-SQL), .NET 2

Senior Development Specialist

2009 - 2015
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.
Technologies: C#, .NET, WCF Web Services, Windows Services, BizTalk Server, MSMQ, Databases, REST APIs, Software Design Patterns, SQL Server 2016, JavaScript, C#.NET, HTML, BizTalk, SQL, ASP.NET Core, ASP.NET Web Forms, Bootstrap, Back-end, T-SQL (Transact-SQL), Windows Presentation Foundation (WPF), .NET 2

Real-time Event Notifications

Served as technical lead and developer, architecting the solution and building its components for a cloud-based infrastructure designed to push real-time notifications to connected desktop applications. The solution aimed to provide a reliable and scalable way to send push notifications to a desktop application. These notifications needed to include details about real-time events generated by back-end services, such as new data available or changes made by other users in separate instances of the application.

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

Built the solution as the main back-end developer and handled software design, construction, and deployment using DevOps practices. The RESTful API project was designed to capture and manage client requests for multiple business processes. Requests were composed of non-structured data, as each process has its own data requirements.

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

https://agenda.starkidsworld.co
Built the application as the sole developer, working on both the front and back end. The application was a Vue-based web application to serve as a virtual agenda for kindergarten students, allowing parents and teachers to send messages and communicate about the daily routine of the children.

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

Built a brand-new CI/CD pipeline as the main developer and author of the infrastructure as code components. The pipeline aimed to deploy three microservices using Docker containers to development, staging, and production environments.

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

Headed the project as architect and tech lead for a team of three developers. The solution was a RESTful API following the back end for the front-end pattern to support a brand-new mobile application.

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

Headed the project as the tech lead for a team of three developers and participated in architectural decisions. The solution based on the BizTalk Server was built to automate the collections process of a financial services company. The project used BizTalk Server's messaging capabilities to automatically pull transaction data from banks and used XML maps to convert them to a canonical structure. It also used orchestrations and .NET libraries to execute the business process and send the data to the company's core system.

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.

Languages

C#, C#.NET, JavaScript, XML, HTML, SQL, Markdown, CSS, T-SQL (Transact-SQL), 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

Libraries/APIs

Web API, REST APIs, Vue 2, Vue, Azure Blob Storage API, jQuery, SignalR, Vuex, Node.js

Paradigms

REST, Microservices, Continuous Integration (CI), Application Lifecycle Management (ALM), DevOps, Azure DevOps, Unit Testing, Agile, Design Patterns, Eventual Consistency, UI Design

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

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 (Amazon ECS), Auth0, Azure IoT Hub, AWS Fargate, TestDirector

Platforms

Software Design Patterns, AWS Lambda, Docker, Azure Functions, Azure, Amazon Web Services (AWS), MacOS, Azure Event Hubs

Storage

Databases, Amazon DynamoDB, Azure Table Storage, PostgreSQL, SQL Server 2016, Azure Queue Storage, Microsoft SQL Server, Elasticsearch

2014 - 2015

Postgraduate Diploma in Software Engineering

Pontificia Universidad Javeriana - Bogota, Colombia

2000 - 2007

Engineer's Degree in Software Engineering

Universidad Distrital Francisco Jose de Caldas - Bogota, Colombia

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring