Hello world

I'm Ivan Prats. I am a Senior Full-Stack Web developer specialising in Back-end development for big and small technologically ambitious projects. Entrepreneur at heart. VDD (Value Driven Development)

I live to solve hard & valuable problems, and my speciality is doing so using technology and enabling talented technical people.

I take enjoyment from planning the architecture of a new system based on key stakeholders criteria, to discussing the UI/UX and developing the front-end and back-end of a single button. Moving from team to team or department to department to be able to get the full picture of a feature or initiative.

I believe in Agile applied to all aspects of life, from how technical teams should work, to how I organised the renovations of my flat. Beyond SCRUM and other air-tight processes, I rather believe in the true meaning of the Agile manifesto and its values, as well as how their evolution into Extreme Programming.

Born & raised in Barcelona and open to the world.

I also try to stay in shape, happy, spend quality time with my friends and family, and have some hobbies like playing tennis and traveling.

I use this website as my CV, if you want to grab a copy: feel free to .

Timeline

Mar 2024 ➡ present

Tech Lead Engineer at Wallbox

In charge of coordinating and desinging the unification of all Users across the company under one authentication and account service.

Collaboration

  • Understanding the current system that 4 different teams were using separately
  • Drafting a migration strategy that minimises downtime while ensuring all User data is preserved
  • Managing a multi-team engineering project with different blockers and shared ressource while keeping Design, Product, and key stakeholders informed

Architecture

  • Defining the architecture of a company wide multi-product authentication system
  • Auditing and lowering risks and attack vectors
  • Implementing asynchronous event-driven communications

Tech stack

  • For infra: AWS with EC2, Aurora, SQS, SNS, Elasticache
  • Updating several services in: Golang, PHP and Typescript
Aug 2022 ➡ Mar 2024

Senior Back-end Engineer at Wallbox

Collaboration

  • Working with many Back-end and Embedded system dev teams defining and scoping down a new custom Communication Protocol between IoT Devices and Back-end

Infrastructure

  • Scaling micro-services with AWS lambda functions, EC2, Aurora SQL and Elasticache
  • Building complex and rich Dashboards with Datadog custom metrics & logs

Technical

  • Writing scalable decoupled code in Go, Typescript (and some PHP) with DomainDrivenDesign and Hexagonal Architecture.
  • Implementing a multi-level testing structure (unit - integration - end2end) to ensure exhaustive, reliable & fast test suites
2017 ➡ 2022

Head of Technology in an E-commerce & Retail Barcelona Startup that I co-founded

In charge of all Technology in the company. From the public website, to designing and implementing an internal Admin/ERP custom to the business.

Customer-facing website

  • Design/CSS implementation in TailwindCSS
  • Deciding the software to use, in order to leverage providers and SaaS to prioritise Business value
  • Comunicating between Business, Design/Branding, and Tech to achieve balance and maximise value and time-to-market

First ERP MVP

  • Monolith in Node.js using Sails.js with MongoDB
  • Fast iterations, mainly focused on the Customer and the Product towards Product-Market fit

Leading the ERP 2.0 version. Applying DDD and Hexagonal Arquitecture in Typescript

  • Monolith Monolith in Node.js using Adonis.js
  • Progressively decoupling the old Monolith into acceptance tested and typed code
  • Agile methodology, 2 week sprints, grooming the tasks up to Acceptance Criteria
  • Leading a team of 2 other developers and designer

Infrastructure

  • Leveraging Heroku and application high-level design to automatise and reduce DevOps & costs and as much as possible. The Infrastructure should support and allow the application code to bring value, not the other way around.
  • Leveraging SQL and No-SQL databases depending on the use-case, using the Repository pattern
  • Setting up an automatic CI/CD Pipeline with Github Actions to gain quality and safety with PRs
2020 ➡ 2021

Freelance projects

To name some front & back-end ones:

  • Full Vue.js / Nuxt front-end for Franca
  • Back-end Private Shopify APP to synch Google Sheet to the stocks and prices of 1M€+ E-commerce in Typescript
  • Setup and Front-end Shopify theme for Laamuse

Tech stack

Back:

  • Go programming language
  • Node.js (+ Express) in Javascript and Typescript
  • Adonis.js (MVC framework for Node in Typescript)
  • For DBs: PostgreSQL, MySQL, MongoDB, Redis

Front:

  • Vue.js
  • Nuxt (static-site-generator framework for Vue)
  • TailwindCSS
  • Alpine.js
  • (some React for fun)

Others:

  • Typescript
  • Stripe's Webhooks & API's
  • Shopify's Webhooks, Liquid (server-side rendering language), & API's
  • Git
  • CI/CD with Github Actions
  • Acceptance testing, organised in Unit, Integration, and e2e
  • Ajv JSON schema validator

Design & Architecture patterns

To name a few, I've implemented before, or have an opinion about...

Low level
(Inner OOP)

  • Inheritance
  • Encapsulation
  • Abstraction

Mid level
(Inter OOP)

  • Singleton
  • Factories
  • Entities
  • Value Objects
  • Active Record

High level
(Code-Repository level)

  • Domain Driven Design
  • Hexagonal Architecture (Ports & Adapters)
  • CQRS
  • Event based Architecture

As well as Test Driven Development, eventhough I've never practised it 100% strictly

Languages for normal people...

  • Spanish - Native
  • English - Fluent (Cambridge C1 Advanced certificate)
  • Catalan - Fluent
  • French - C1
  • Portuguese - B1