Resume
Name | |
---|---|
Orlando Brea | orlando.brea@gmail.com |
Results-oriented and innovative Senior Software Engineer with 20+ years of experience. Easily communicates complex technical requirements to non-technical stakeholders. Excellent leadership record of leading development teams in enterprise-wide development projects. Also an Open Water swimmer that loves the challenging situations that appear when swimming in open waters.
Experience
Developer | DevOps | SRE, Subsecretaria de Salud de Neuquén, Argentina – March 2020 - April 2023
- Create and maintain Jenkins pipelines and Ansible playbooks (Jenkins, Docker, Ansible, Cypress)
- Deploy and maintain a 6 Kubernetes clusters On Premise with Rancher (Rancher, VMWare VCenter, Unity Storage)
- Migrate to kubernetes, a complex system composed of many Apps for managing patient images (PACs - OSS project DCM4Che). Create the manifests, change the App behavior, build the new docker images, include a PACs viewer (OHIF) and create a Rancher App. Create another version for clusters with fewer resources (without ELK stack).
- Contribute to the OHIF viewer project fixing a bug (React)
- Create a Sync App in Kubernetes to sync between Trello dashboards (NodeJS, Kubernetes)
- Dockerize and move to Kubernetes many apps
- Prepare a new Load Balancer and Reverse Proxy (NGINX) and create dashboards in Grafana to monitor services performance (NGINX, InfluxDB, Telegraf, Grafana, GeoIP)
- Apply CI/CD canary releases to the Migration Dashboard App (ArgoCD, Drone, Docker, Kubernetes, GitOps)
- Implement Service Mesh in a development cluster to monitor traffic and services performance issues (Linkerd)
- Design and develop an App for monitoring migrations of patient laboratories to a central database (NodeJS, Ramda, Angular). Integration with PTRS to check server connectivity.
- Create a Kubernetes RBAC and Cronjob to check space left on some deployments and send an alert using PagerDuty in case a threshold is exceeded (Kubernetes, NodeJS, Kubernetes Client JS library)
- Detect issues in the jenkins testing pipeline, and fix them
- Change the Laboratories sync process, instead of having a central server retrieving studies, each laboratory is responsible for sending its data.
- Create an ansible playbook to request and deploy LetsEncrypt certs to different servers (Linux and Windows)
- Create and dictate courses of Docker and Kubernetes to the DevOps Team.
- Configure AWS SNS and S3 to be used by the DEV Team
- Introduce and implement RCA (Root Cause Analysis) documents to learn from failures
- Test different Kubernetes Storage providers to choose the best for the company requirements
- Monitor and manage kubernetes incidents (storage, downtime, failures)
- Guided teams during continuous integration / continuous delivery (CI/CD) processes.
- Executed troubleshooting and server support in both in-person and remote situations.
- Authored technical guidance explainers on systems for use by senior leadership.
- Contributed to OSS projects Andes and OHIF viewer
- Fixed bugs in Apps in .NET, JavaScript (React, NestJS)
- Propose software architecture improvements and solution architecture transformations to attend business needs
- Designed and developed an App for importing data into medical devices (Fluorometer) and manage exported information (NestJS, Angular)
- Designed and developed an App for monitoring migration of patient laboratories to a central database (NodeJS, Ramda, Angular). Integration with PTRS to check servers connectivity.
- Created a Kubernetes RBAC and Cronjob to check space left on some deployments and send an alert using PagerDuty in case a threshold is exceeded (NodeJS, Kubernetes, Kubernetes client for JS)
Technical Leader, XSide Argentina – June 2021 - October 2022
- Participate in the career definition for each DEV (11 in total)
- Create the learning paths (videos, material, projects) needed to
achieve their yearly technical goals - Create a mobile app architecture and boilerplate in React Native +
Redux + SAGAS, so the team has a foundation from which they can
work from - Support the DEV team to resolve complex problems and
stacks/patterns they didn’t work before- CQRS
- Hexagonal Architecture
- BFF
- Redis as a search database
- Terraform
- AWS (lambda, SQS, API Gateway, EC2, S3)
- Azure (App Service, deployment)
- Recruiting: technical interviews (JavaScript, React, Node, Angular, and
support in other technologies as JAVA and .NET) - Code reviews and suggest improvements
- Attend and support the owners and sellers at their client meetings.
And suggest the team needed to achieve the client goals. - Identify technical faults, suggest solutions and implement them
- Work closely with the Team Leader to anticipate project issues, know
technical issues, and suggest the best developer for each project. - Create and maintain build pipelines in AWS
- Create alerts for monitoring AWS running apps
- Create and maintain Terraform files (AWS and Azure)
- Automate infrastructure creation in Azure using Terraform to create an environment per client in a SaaS solution (each tenant had its own resources)
- Define projects and deployment architecture in AWS and Azure
- Participate with a customer in pre TRB meetings helping, from the technical perspective (AWS Architect and DevOps), to explain the project Architecture, defend the project, suggest ideas, and prepare documents to reflect changes requested (AWS, Terraform). This pre TRB meetings were for one of the biggest supply chain companies (in English)
Sr. Fullstack Developer, XSide Argentina – 2019-2021
- Health system app (ReactJS):
- Create the project baseline and Architecture
- Participate in the communication definition
(Backend/frontend) and backend driven UI definition - Create the most complex components in React using
abstraction so they can be rendered depending on the
backend response (totally backend driven, including
fields in forms, data in tables, sorting, actions, etc) - Improve the grid component so it can handle thousands
of cells using Virtual tables and working with profilers to
improve every call - Participate in the app - component integration using
NPM packages distributed in a private registry - Re-design the components to match the new UI
- Change the default way that Ant Design renders tables
so it can support the virtual table rendering - Credit score site - Top 3 credit rating companies in the world (Drupal)
- Fix pentesting issues with one of their main Apps made
with Drupal - Add SSO using Okta as the provider
- Add new features and fix issues (code and UI)
- Fix pentesting issues with one of their main Apps made
- Access control App for private neighborhoods (React Native + ReactJS
- Django)
- App onboarding (take control off the app code left by a
previous development team - with no documentation) - Fix React Native app issues (bugs)
- Add new features to App (adding new features to React
Web, React Native and Django server)
- App onboarding (take control off the app code left by a
- E-commerce site with price estimations online (Drupal + React + JS)
- Develop a server structure, logic, and code to manage
the client complex price estimation process - Develop a price estimator client in vanilla JS (AJAX)
- Develop a quote list management in ReactJS (
Debouncing requests) - Create the CD/CI environment for UAT/Staging and
Production (Docker + AWS CodePipeline)
- Develop a server structure, logic, and code to manage
- Attend to meetings with the design team and clients located in the
USA and UK
Professor, Universidad Tecnologica Nacional (National Technology University)- Facultad Regional Buenos Aires, Buenos Aires, Argentina – 2016-2021
Train students in new web tecnologies and programming languages
- Course “PHP and MySQL Expert”: I have created this course and train students to improve their programming skills. Some topics of the course are: Introduction to programming, Introduction to PHP, Functions in PHP (math, string, images), Introduction to DataBases (MySQL), DataBase advanced topics (Triggers, Transactions, Prepared statements), Object Oriented Programming, PHP Frameworks (Slim, CodeIgniter, Eloquent ORM), PDF generation, Client side languages (JavaScript, JQuery, Angular 2).
- Course “Professional Webmaster”: I train the students in web tecnologies. Some topics of the course are: HTML5, CSS, SASS, Bootstrap, JavaScript, JQuery, First steps in PHP, WordPress, MySQL.
- Course “Fullstack Developer“:: I train the students in web tecnologies (this course main focus is in developing programming skills). Some topics of the course are: Node JS, ExpressJS, Handlebars, Angular, TypeScript, OOP, MongoDB.
Trainer InCompany
MercadoLibre (Ebay associate in Argentina) - Argentina 2017
Created course and trained workers in a new stack framework NodeJS, Jenkins, Grunt, Docker. Course with onsite students and remotely connected ones (more than 40 participants).
Buenos Aires Police Forces - Argentina 2018-2019
Created courses and trained workers in
- PHP from basics to advanced: Laravel, OOP, Design Patterns, REST API.
- SQL Performance optimization: query optimization, how SQL Server works, performance tunning, performance monitoring.
- VB.NET programming: design patterns, JQuery, Windows Services
Buenos Aires Statistics Department - Argentina 2019
Created course and trained workers in IONIC framework and Angular development, for creating mobile applications for Android and IOS.
Team leader – FUERZA ARMADA DE LA REPUBLICA ARGENTINA (Argentine Armed Forces) – Argentina — 2016-2017
Team leader (4 developers), developer, and SCM. Project: Software to manage graduates for the Fuerza Armada Argentina
We could reach all the project deadlines, and improve the documentation that was delivered by the client. I am managing a team of 4 remote developers with great success (mainly using slack, remote meetings, and online collaboration tools). My main roles were: creating and distributing tasks to developers, requirements documentation, create diagrams for better features and communication understanding (UML), verify that the software meets the client requirements, Jenkins administration, create and maintain Jenkins pipelines, Software Configuration Management, migration scripts, development server administration, and development of complex modules.
Technologies
Grails, Angular 2, SQL Server, NodeJS, Jenkins, Jenkins.
Challenges
Challenge | Context | How I resolved it |
---|---|---|
Find the best SDLC for the project | It was an heterogeneous team (with different hours/week availability) and needed to meet the deadlines | I choose to use an agile aproach, using 4 weeks iterations. That helped me to distribute tasks for each team member (taking into account the availability and expertise of each member) and check the project progress. |
Select the best programming languages and tools for the project | It was an heterogeneuos team | I structure the project using a RESTful approach. Choosing GRAILS for the server side, and Angular 2 for the client (the DBE was SQL Server and was a Client restriction). I have being working with GRAILS before, and have many Angular 1 projects, so I create a base project that could manage all the basic CRUD operations (for the server side, and client side). I create the documentation of the RESTful services using Swagger because it was a mature solution with many utilities (for example, export to PDF) We use Trello for tasks management and GIT repositories with Pull Request for merging. I created a Continuos Integration approach using Jenkins to guarantee the quality of the code uploaded to the GIT repository (all the pull request where tested automatically by Jenkins) |
Manage delays in the client (customer) / Armada Argentina | The client couldn’t have the hardware on time | I have to manage with the client a new job schedule taking into account the delay. The project was already in progress, so adding more people to the project wasn’t and option to meet the previous schedule (when a project is already running adding more people creates more overhead and doesn’t help to reduce times, and it also increment the total project cost) |
Owner/Developer, Smartsol, Buenos Aires – Argentina – 2004-2020
Created innovative and easy to use software for the print industry.
Software developed
Wichi (Numbering software for the print industry – Web application SPA)
We have Designed, Developed and Implemented a numbering software on AWS ( Docker containers inside EC2 instances). This software reduced the time taken by the print industry to do numbered tickets (by a 50%), and costs (by a 50%).
Technologies
GRAILS, AngularJS, MongoDB, NGINX, Jetty, Ansible, Docker, HTML, CSS, REST API.
URL
Challenge | Context | How I resolved it |
---|---|---|
Find the best technology for the project | We needed to create a SAAS that could manage multiple users and PDF creation (and image merging) | I research the best tools for PDF and image manipulation, so I choose to create the server in JAVA language, because it has a lot of libraries and documentation. To reach a high performance application and smooth user experience I choose to use a RESTful communication between the client and the server, creating a SPA (Single Page Application) |
FactureYA (Invoicing software for the print industry – Web application SPA)
We have Designed, Developed, and implemented the software on AWS EC2 (using Docker containers).
Technologies
Grails, AngularJS, MySQL, HTML, CSS, SASS, GRUNT, REST API, NGINX, Jetty, Docker, Ansible.
Challenge | Context | How I resolved it |
---|---|---|
Integrate with a Government API | We needed that our SAAS invoicing system communicate with the new Government SOAP API for creating invoices | I have read all the Government SOAP API documentation to find which services where the ones that where needed for this project, and create a special interface service on our SAAS that could manage all the communication (this allows to change only one module on the system if the Government make changes on their API) |
Mapuche v1, v2, v3 (Cost estimating software for the print industry)
We have designed, developed and implemented a desktop software (versions 1 and 2), and web application (version 3) that improves the time needed to complete a cost estimation by 75%. We had to implement advanced algorithms to find the best way to cut paper and reduce waste.
Technologies
Delphi, Access, Firebird, Grails, Angular 2, REST, HTML5, CSS, SASS, GRUNT, Jenkins.
Challenge | Context | How I resolved it |
---|---|---|
Find the best way to cut the paper | In the print industry selecting the best way to cut a paper reduces costs and makes the difference between gaining or loosing an estimation | I take a course in Fundacion Gutenberg that covers all the cost estimation process in the print industry, that allowed us to get a better understanding of the main problems and what should be taken into account. Then we manage to create a software, using all the knowledge taken from the course, that could create the best cost estimation for the client, taking into account the paper waste, machines, and proceses. |
SAV (Custom development – Desktop and web application)
We have gathered client requirements, designed, developed and implemented a web software to collect sellers’ orders, validate them, and manage the flow of the order inside the company. This software allowed the company to process orders 80% faster, decrease human errors, and provide an easier and faster way to fullfill the sellers needs.
Technologies
Delphi, PHP, AJAX, HTML, JavaScript, MS SQLServer, Apache
Social Skills
convert client requirements to a fully functional software. Manage change and communicate the client impact of every change requested
Tobas (barcode generator – desktop application for PC and MAC)
I have developed the software following the Argentinian laws that specified the barcode structure. We had a market opportunity that needed to beed fulfilled in less than 2 months, so both systems (PC and MAC) were developed meeting the market deadline. This software had such a good impact on the print industry, that we have been interviewed by the most popular print industry magazine in Argentina.
Technologies
Delphi, JAVA.
Publications
- NuSOAP WebServices (https://desarrolloweb.com/articulos/1884.php): this tutorial is being used by many sites on internet to explain how NuSOAP works in PHP, and it is being used in “Pontificia Universidad Javeriana” of Cali – Colombia (http://cic.puj.edu.co/moodle/file.php/92/Tutorial_PHP.pdf).
Education
The Linux Foundation; JSNAD (Open.JS Node.js Application Developer); 2023
The Linux Foundation; JSNSD (Open.JS Node.js Service Developer); 2023
AxonIQ; Online; Implementing DDD, CQRS and Event Sourcing with Axon; 2022
HL7 Argentina; Online; HL7 FHIR Fundamentals Course; 2021
IGIP – Buenos Aires, Argentina – International Engineering Educator – 2018
Fundación Gutenberg – Buenos Aires, Argentina – Cost estimation for the Print Industry – 2007
Universidad Tecnológica Argentina – Facultad Regional Buenos Aires, Buenos Aires, Argentina – Ingeniero en Sistemas de Información (equivalent to Master of Engineering in System Engineering) – 2004
Skills
- Languages: English and Spanish (main language)
- Managing teams with different skills
- Great listener and teacher
- SDLC: Waterfall, SCRUM, Agile programming, managing remote teams
Technologies
Language | From - To | Total Years |
---|---|---|
JavaScript | 2001- | 22 |
TypeScript | 2015 - | 8 |
ReactJS | 2018 - | 5 |
Angular | 2015 - 2018 | 3 |
AngularJS | 2012 - 2015 | 3 |
JAVA/Groovy | 2005 - 2018 | 13 |
PHP | 2001 - 2022 | Fulltime ~5 |
CSS/HTML | 2001 - | 22 |
SASS/LESS | 2014 - | Fulltime <1 |
GO | 2017 - 2017 | 0.25 |
Technology | From - To | Total Years |
---|---|---|
Docker | 2015 - | 8 |
Kubernetes | 2019 - | 4 |
AWS | 2013 - | 10 |
Azure | 2022 - | 1 |
Serverless | 2018 - | 5 |
GCP | 2018 - | Fulltime ~1 |
Terraform | 2022 - | 0.5 |
Ansible | 2013 - | Fulltime ~1.5 |
Restful | 2012 - | 11 |
MySQL | 2001 - | Fulltime ~3 |
MongoDB | 2015 - | Fulltime ~3 |
SQLServer | 2017 - | Fulltime ~2 |
- Hobbies: swimming in open water, golf