Work experience

Team Topologies - Chief Product Officer

December 2023 - Present

Independent Software Consultant

July 2023 - Present

AtomicJar - Head of Engineering

June 2022 - June 2023

#Accelerate #EngineeringStrategy #DDD #EventStorming #EngineeringKIPs #ProductMindset #SoftwareExcellence #Trainings #Workshops #EnablingTeam #TeamTopologies #WardleyMapping #KanbanMaturityModel

Creditas - Head of Engineering

March 2022 - May 2022

The key goal as a Head of Engineering is about scaling the methodologies, practices, and engineering-product mindset from tribe level to organization, along with Engineering Strategy.

After proving a meaningful increase in performance and maturity within the tribe, I got the challenge of helping other tribes and teams adopt a similar approach, Continuous Improvement based on Accelerate.

Helping each team to improve on their engineering maturity is context-specific, and we cannot apply an "approach" to serve them all.

That's why we combined the support as:

  • Be close to the people and understand their specific situation to have more awareness and visibility about which are their main challenges.
  • As Enabling Team to fill the gaps that can make the biggest impact. Here the main challenge was about scaling the knowledge and identifying other colleagues to support this Enabling Team Support to other Teams.

The output has been a set of workshops regarding Accelerate and Domain-Driven Design. The outcome has been that teams gained more autonomy in applying the concepts, and some workshop attendees became trainers for the next workshop editions, helping me to not be a bottleneck.

#Accelerate #EngineeringStrategy #DDD #EventStorming #EngineeringKIPs #ProductMindset #SoftwareExcellence #Trainings #Workshops #EnablingTeam #TeamTopologies #WardleyMapping #KanbanMaturityModel

Creditas - Engineering Manager

March 2021 - March 2022

As Engineering Manager of a Global team, 50% located in Brazil and 50% located in Spain, my main responsibilities include:

  1. People Growth

Understanding the team and people's needs, knowing where we're and where we want to be. From there, defining and review the development map.

  1. Delivery

Combining People Growth meanwhile Delivering Value to the User is always a challenge. Still, with a good mindset and practices, you can combine both in a healthy balance.

I consider Fast and Honest Continuous Feedback combined with Engineering Best practices to be the fundamentals of my work.

From the Engineering side, I use the 4 Key Metrics of DevOps to measure and help the team to make decisions on which areas we should improve first. Whenever needed, I help the team to become familiar and put in practice things like TDD, DDD, Continuous Deployment, Trunk-Based Development, Monitoring & Observability, Infrastructure as Code, Pair Programming, and more.

Regarding Delivery, I focus on understanding the Team Topologies and the relationship with the different stakeholders. By doing this, I help boost the Fast Flow of Change and ensuring that, as a team, we have an End To End Ownership of the product delivery. In essence, build empowered teams.

Outside team, I collaborate with different key people in the company in:

  • Training on the 4 Key Metrics of DevOps with other Engineer Managers
  • Be part of the Interviewing process, selecting hiring, and being a decision-maker
  • Adoption of DevOps practices company-wide
  • Helping on finding the best practices on running a Global Team like helping in the adoption of Remote First Practices and Asynchronous Collaboration and Communication

#TDD #DDD #DevOps #CICD #IaC #TeamTopologies #AsyncWork #RemoteWork #GlobalTeam #EmpoweredTeams #4KeyMetrics #TBD #FeedbackCulture #Agile #Lean #AWS

Balio - Tech Lead

May 2020 - February 2021

As a Tech Lead, my main responsibilities were in three areas; Software Delivery, Risk Management and Team Growth

Regarding Software Delivery, I bring to the team three proposals; DevOps, Continuous Delivery and Test-Driven Development. I consider those three points to be the backbone to deliver our solutions to the customer faster and stable.

On the other side, on Risk Management, I focus on identifying and mitigating risks around business value, engineering, UX and monetizing. I bring my expertise during product design to see how viable is a solution proposition to business hypothesis, and how we can verify it as faster as possible with the less resources.

Finally, on Team Growth, I consider a key strategy to the success of the company and product to keep growing the capabilities of the team members in their own specific journey. Whenever I can help, I share my expertise to the team members using techniques as Pair-Programming, Tech Huddles or another collaboration sessions that facilitate the knowledge sharing.

Methodologies we do; TDD, CI/CD, XP, Pair-Programming, Kanban Technologies we use: GitHub Actions, AWS [ECS with Blue-Green Deployment, SQS, RDS, CloudWatch], Terraform for Infrastructure as Code, Docker Containers, React, enzyme, jest, Django, pytest, PostreSQL,

ThoughtWorks - Senior Software Consultant

February 2019 - May 2020

The main responsibilities I have at ThoughtWorks is deliver working software solutions applying the best practices like TDD and CI/CD meanwhile during Pair Programming.

As a software consultant, we are in touch with the Client at daily basis. Part of the job is to manage the client expectations and show the work made during the iterations as showcases.

The project I was working on was an e-commerce product. We had a microservice architecture plus a Continuous Deployment system and pushing into production more than five times a day.

Also, I had the opportunity to coach team members while delivering business value to the customer thanks to the Pair Programming and other practices.

Technologies and Practices: TDD, Continuous Deployment, Pair Programming, eXtreme Programming, Observability and Monitoring with Grafana and Prometheus, Feature Toggles, Java, Kotlin, JUnit MongoDB, In Memory Databases, Unified Log technologies like Kinesis and Kafka, Event Driven Architectures, Hexagonal Architecture, Distributed Systems, a lot of AWS Products.

Aleix Morgadas - Freelance Software Developer

June 2018 - September 2018

I started working remotely as a freelance for the Blockchain industry. The main client was NEM Foundation.

My main responsibility was to develop the Blockchain REST API and design plus develop the SDKs in TypeScript/JavaScript and Java languages.

Part of my job was to know the developer needs and build the necessary tools to make the development on top of the Blockchain smoother.

Technologies and Practices: TDD, CI, NodeJS, Java, Kotlin, MongoDB, restify, ZeroMQ, Code Reviews, Open Source Software.

Vicom - CTO

January 2017 - June 2017

I decided to start my own business with a co-founder, we were two, me as CTO and him as CEO.

We aimed to verify that the marked needed a video-centric platform to create communities around it. The product allowed to create a community as, following the Slack style for community management.

We defined a Minimum Viable Product to verify the business hypothesis. The MVP needed small and frequent releases, so all the architecture was aligned with those requirements. We decided to couple heavily on AWS solutions to deliver as fast a working product to the customers.

Badly, we verified that there wasn’t a market need for the product and the customer acquisition was too high compared with the ROI we were expecting. Therefore, we decided to close the product.

Technologies and Practices: TDD, CI with Jenkins, AWS (EC2, S3, Elastic-Transcoder, SQS, SNS, RDS, ECR, CloudFront), Kotlin, Spring Boot 2, Angular4 with TypeScript, Lean Startup.

Atraura - Software Consultant

November 2014 - November 2016

After two years, the company grew from 4 people, only two developers, to 15 employees which 11 were developers.

My role moved from being a Software Consultant to Manage a team and Architectural decisions. My area of responsibility was to gather the client's requirements, expectations and propose with the team a possible solution to the client, meanwhile keeping the responsibilities of Software Consultant that I had. Part of my job was configuring the CI system and the Docker containers to setup the infrastructure at the early beginning of the project, meanwhile helping the newcomers become familiar with our culture and development practices like TDD and CI.

We aimed to follow Agile Methodologies with the client, most of the times it was a challenging approach because back then Agile was not as popular as today. Even though some clients disliked the idea, we kept pushing for iterations and showcases to manage the client expectations on the product we were delivering.

Technologies and Practices used: Java, Spring Boot, MongoDB, PostgreSQL, RESTful Architectures, Hexagonal Architectures, Domain-Driven Design, Test-Driven Development, Python, Django, JUnit5, unittest (Python), Jenkins for the Continuous Integration and Amazon Web Services.