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 .
Contact
You can find this information up to date in my personal website: ivanprats.dev
Stay in touch, my GitHub profile is ivan-prats, and my email is hi@ivanprats.dev
Timeline
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
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
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
Masters in Industrial
Engineering in the UPC
Physics Engineering Degree
in the UPC
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)
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