João Trigo Soares
- joao@jtsoar.es
- jtsoar.es
- Lisbon, Portugal
I’ve started my carreer as an IT consultant at Accenture, working for the Resources business (electricity, petrol). I’ve dedicated four years to helping that companies with digital transformations and paperless workflows. My work was around Windows and ASP.NET software, namely Sharepoint and Windows Server. I was promoted up to the role of Senior Developer. After that I started as a backend developer on one of the biggest telcos in Portugal. There I’ve helped implement scalable solutions to support the TV multimedia business. Notable works include backends for user profiles and preferences, work in the cloud-based Personal View Recorder engine, a new Auto Configuration System based on the XMiDT stack, and a new Automatic Speech Recognition system using Azure’s LUIS apis. I got up to Lead Developer. When the need for moving to the cloud and DevOps transformation arised I was called upon changing roles and started my current position as a DevOps Engineer. I’m contributing to DevOps changes like adopting containerization, CI/CD, GitOps, automation (e.g. infrastructure-as-code, jmeter tests), hybrid infrastructure (on prem + cloud), distributed storage, monitoring and self-healing systems.
I’m a Certified Kubernetes Administrator with ID LF-7j6a6nkfxw
. I’m also a Certified Kubernetes Application Developer with ID LF-aqpmniufwu
. Finally I’m a Certified Kubernetes Security Specialist with ID LF-rlmu1d2eat
.
You can check my certificates at the Linux Foundation website.
Work Experience
DevOps Team Leader
After years working on the team, I’ve been offered to get on a leadership role and imprint my vision upon the future of the team, the department and hopefully the company. The challenges remain mostly the same (see the role below) but with added responsibility of leading my fellow teammates and inspire the teams around us towards a cloud native, highly automated and very observable future.
DevOps Engineer
This challenge was created from the need to make NOS evolve and walk towards integrated microservices’ architectures and having it orchestrated. We have fully embraced the CNCF, OSS and container solutions, having Kubernetes at the center of agile but resilient and tolerant systems. My mission is to advocate towards adopting Cloud Native architectures, and implementing those to gather success stories and lessons learned. I’m also working on “lift-and-shift” projects that try and get on premise workloads to the cloud. I’m trying to keep up with all CN ecosystem, specially by taking part of KubeCon and other conferences (Cloud Native Kitchen, Software Circus, …). Some relevant success stories I might think of may be: implementing and maintaining a CEPH distributed storage cluster, GitOps for Kubernetes and HAProxy with Flux, Jenkins and haproxy-wi, implementing E2E workloads using AKS and/or GKE, advocating for service mesh integrations with Istio.
- Kubernetes
- CRIs (docker, containerd, cri-o)
- Ingress software (nginx, haproxy, envoy)
- Monitoring software (prometheus, alertmanager, grafana, …)
- Distributed Storage (CEPH, Rook)
- Logging and events (Elasticsearch, Logstash, Kafka, Vector, …)
- GitOps and Policies (OPA, Gitlab, Jenkins)
- IaC and configuration (Terraform, Ansible)
- Cloud Infrastructure and Implementation (GCP (GKE), Azure (AKS))
- Golang, shell/ash/bash, fish
- Security (gVisor, Sealed Secrets, Trivy, X-Ray, AppArmor, …)
Lead Software Engineer
At this time I took a leading role, in a sense of having extensive autonomy on technical decisions regarding the techical paths of some existing projects but also starting some new ones. These were times that saw the rise of dotnet core
and the adoption of conainerization and the move of typical Windows workloads to Linux. I worked on core projects like the EPG APIs, the NAME project, an ACS solution (based on WebPA) and selfservice APIs that allow clients to chang their TV subscriptions. It was also a time of starting the move towards microservices and breaking monolith applications.
- (same as the previous one)
- .NET Core
- Docker
- Rancher’s Cattle
Senior Software Engineer
I got challenged to do some rework on existing APIs on the Social aspects of the TV experience. These were some rough applications that needed both some refactoring to get a simpler architecture and the implementation of newer features that’d be required for the Next Generation of TV products (that then became known as UMA). It was also a great experience as I started working with NoSQL and defining REST APIs (rather than just consuming them).
- ASP.NET
- C#
- .NET Framework
- MongoDB
- SQL Server (using Entity Framework)
- RabbitMQ
- Postman, Swagger, jmeter, …
- Backend web development
Software Engineer
I was assigned to that unit inside the Lisbon Delivery Center. I was then allocated to the SharePoint team.
There I was involved in developing diverse SharePoint solutions, for intranet and public portals. The biggest being the EDP intranet, awarded with the Europe’s best at the 2013 Digital Communication Awards. That project involved scaling for 12k employees using it for booking vehicles, using team sites, managing schedules and vacation days, receiving company news, whatnot.
There were other projects, of a smaller nature. One project I’d like to highlight was related to the POS systems of all stores of a major telecom provider. The company had bought highly advanced terminals but those were misused just for simple payments. That project integrated their billing and store front systems to take advantage of paperless signatures, integrated payment receipts and advanced reporting features.
- Sharepoint, ASP.NET, C#
- Windows Server 2008/2012 R2, SQL Server
- Full-stack web development
Researcher
I integrated the Computer Vision team while developing my master’s thesis. My project intended to reconstruct rough 3D models from freely taken pictures. It was a sub-project of a bigger effort from the team o consistently measure the resulting effects of mastectomy interventions. The results would contribute to find and develop methods where the aesthetic impact was minimized while the change of success was higher.
Skills
Technical
- Kubernetes from 1.11 to latest stable
- Kubernetes Engines: Rancher, GKE, AKS
- CRI: Docker, containerd, CRI-O, (podman)
- SMI: istio
- CNI: Calico
- CI/CD: Jenkins and Azure DevOps
- Linux administration: ubuntu server, rancherOS, CentOS, debian
- Security: PKI, Active Directory, IAM
- Clouds: Azure, Google Cloud Platform, civo, Digitalocean, OVH
- DBs/KV: MongoDB, SQL Server, Redis, etcd
- Distributed Storage: Ceph (block, object, filesystem)
- Message Systems: RabbitMQ, MQTT (Mosquitto)
- Windows server 2008/2012/2016
- Object-oriented: C#, Golang
- (Web) frameworks: ASP.NET, .NET framework, .NET core
- Design and implement distributed software
- Lead and deliver complex software systems
- Some frontend capabilities that are rusty but present
Professional
- Effective communication
- Team player
- Strong problem solver
- Good time management