Senior Frontend Engineer
Pietro Dessotti
Senior Frontend Engineer at Zenvia
Building scalable B2B products with React, TypeScript and Microfrontends. Technical reference in design systems, BFF architecture and frontend governance at Zenvia.
Expertise
What I Do
Core areas where I design scalable systems and help teams deliver better software.
Frontend Architecture
Designing scalable applications using React, TypeScript, Microfrontends and design systems that allow teams to ship independently and confidently.
Backend for Frontend (BFF)
Building APIs and microservices using Node.js and NestJS specifically shaped to support modern frontend applications and reduce coupling.
Technical Leadership
Supporting teams through code reviews, architecture discussions, sprint planning and technical refinements that elevate everyone around me.
Developer Experience
Defining best practices, development standards and scalable project structures that help teams move faster with less cognitive overhead.
Experience
Where I've Worked
5+ years growing from intern to senior at Zenvia, with freelance technical leadership in parallel.
Senior Frontend Engineer at Zenvia Customer Cloud (ZCC), a B2B communications platform used by 2,400+ active clients. Promoted across multiple engineering levels (Intern → Trainee → Junior → Mid → Senior) while contributing to architecture decisions, code governance and team mentorship.
- Technical reference for the ZCC frontend platform
- Mentoring Junior and Mid-level engineers through onboarding and code reviews
- Defined frontend architecture standards and led strategic MR reviews
- Led migration from monorepo to microfrontend architecture
- Developed production features such as message scheduling and media sending
- Built BFF services with Node.js (NestJS) integrated with Kafka
- Introduced testing culture with Jest (0% → 35% coverage)
Technical lead for a social impact SaaS platform focused on corporate volunteering and ESG initiatives. Built the frontend platform from scratch and delivered the MVP to production.
- Designed the entire frontend architecture from scratch
- Implemented Atomic Design component system
- Delivered the MVP to production in 3 months
- Built dashboards and data visualizations with React
- Implemented E2E testing with Cypress
- Collaborated on Node.js / NestJS backend services
Skills
Technical Skills
Technologies I work with daily and areas where I'm actively growing.
Frontend
- React
- Next.js
- TypeScript
- Vite
- Vue.js
- Tailwind CSS
Architecture
- Frontend Architecture
- Microfrontends
- Design Systems
- Component Libraries
- Atomic Design
- BFF Pattern
- Monorepos
Testing & State
- Redux
- Zustand
- Jotai
- React Context
- Jest
- React Testing Library
- Cypress
- Storybook
Backend & Tools
- Node.js
- NestJS
- REST APIs
- Kafkalearning
- Git / GitHub / GitLab
- Figma
- CI/CDlearning
- Dockerlearning
Philosophy
Engineering Principles
The beliefs that shape how I write code, make decisions, and collaborate with teams.
Code should be easy to read before being clever
A simple solution a junior can understand and maintain beats a clever one only seniors can debug. Clarity compounds across team size and time.
Architecture must scale with teams, not only with code
Technical decisions should protect team autonomy. The best architecture is one that lets teams ship independently without constant coordination.
Clear communication is part of engineering
Writing a clear pull request description, a useful comment, or a well-structured RFC is as valuable as writing the code itself.
Performance and bundle size always matter
Every kilobyte has a cost. Every render has a cost. Respecting these constraints from the start avoids painful rewrites later.
Consistency reduces cognitive load
Conventions, patterns and shared standards free engineers from decision fatigue and let them focus on solving actual business problems.
Writing
Latest Articles
Thoughts on frontend architecture, team practices, and software craft.
Micro-Frontend Architecture: Lessons from 20+ Product Initiatives
Practical lessons learned from implementing and working with microfrontend architectures across multiple teams and product initiatives.
TypeScript Strict Mode: How to Adopt It Without Breaking Everything
A practical guide to incrementally enabling TypeScript strict mode in an existing codebase, with the lessons learned from doing it across multiple projects.
The BFF Pattern: How Frontend Teams Can Own Their API Layer
The Backend-for-Frontend pattern separates concerns, reduces coupling, and empowers frontend teams to ship independently. Here's how to think about and implement it.
Get in touch
Let's work together
Open to technical conversations, consulting inquiries, and interesting frontend engineering challenges.