
TightWallet
Personal finance manager for tracking income and expenses, building budgets, and splitting shared costs.
I develop web applications, organize delivery, and help transform real needs into solid, maintainable, and useful digital products.
I am Matteo Bernardini, Senior Full Stack Developer, Scrum Master, and Customer Success Manager.
I live in Pistoia, Tuscany (Italy). My journey began in software development and has evolved over time into an increasingly comprehensive role: I write code, manage applications in production, analyze requirements, collaborate with teams and stakeholders, support clients, and contribute to the continuous improvement of digital products. I have experience in developing and maintaining web applications, management software, custom systems, and integrations, using technologies such as C#, .NET, Java, Spring Boot, Node.js, TypeScript, Angular, React, SQL, and relational databases. Over time, I've learned that good software is not just about code: it requires clarity, methodology, active listening, attention to detail, and the ability to transform real problems into usable solutions. I enjoy working on concrete solutions: software that solves real problems, clear processes, maintainable code, and products that can grow over time without becoming unmanageable. This is why my approach combines full-stack development, product vision, agile coordination, and attention to the end-user experience. In my role as Scrum Master, I am responsible for facilitating teamwork, clarifying goals and priorities, improving the delivery flow, and maintaining a focus on value. In Customer Success, I focus on the client relationship, understanding real needs, and product evolution after release. Outside of work, I apply the same approach to my passions. I follow sports, Formula 1, MotoGP, tennis, and football, with a strong focus on strategy, data, standings, performance, and details. I am fascinated by the dynamics behind a race, a season, a team, or a technical decision: methodology, consistency, understanding the context, and the ability to improve step by step. This curiosity is also reflected in my personal projects. I enjoy creating web apps, dashboards, and digital tools that better organize information, passions, and daily activities. These projects allow me to experiment, learn new technologies, think about UX, product, automation, and data, bringing the same practical approach I use professionally into a non-work context. I consider myself a pragmatic, curious, and continuously improving individual. I strive to build clear, robust, and truly useful solutions, maintaining a balance between technology, people, and product.
I work with a pragmatic, organized, and value-oriented approach.
Before writing code, I strive to understand the problem, context, and objective. Then I transform requirements into clear activities, achievable functionalities, and progressive releases. I'm interested in building software that truly works over time: readable code, maintainable solutions, clear communication, and constant attention to the user experience. In my way of working, development, process, and client relationship are not separate worlds: they are parts of the same journey towards a better product.
I am interested in delivering real, useful, and sustainable solutions, avoiding unnecessary complexity and focusing on what truly brings value.
I believe every good project starts with understandable goals, defined priorities, and simple, direct, and transparent communication.
I enjoy working with diverse people, listening to different perspectives, and building solutions that integrate technical, product, and user needs.
Code must be able to be read, fixed, extended, and maintained over time without becoming a hindrance.
I always strive to learn, correct, simplify, and grow step by step, both in professional and personal projects.
A feature should not just exist: it must be understandable, useful, and consistent with how it will actually be used.
Whether it's software, sports, data, or product, I tend to observe the details because they are often exactly what makes the difference.
I like to approach things with order, consistency, and vision: analyzing the context, defining a direction, and proceeding progressively.
I strive to maintain a balance between technology, people, timelines, and goals, because an effective solution must work in the real world, not just on paper.
For me, honoring commitments, communicating clearly, and working responsibly are fundamental elements of every collaboration.
I enjoy understanding how things work, experimenting with new tools, and transforming interests, ideas, and concrete problems into real projects.
Matteo Bernardini is an Italian Full Stack Developer, Scrum Master and Customer Success Manager. Born on 09/29/1992 in Pistoia.
He lives in Pistoia and works in Prato for Kiwibit Srl in a hybrid mode. He is available to collaborate with clients throughout Italy, remotely or in person in Tuscany.
Full stack software development (React, TypeScript, Node.js, Supabase, TanStack), Scrum/Agile facilitation as a certified Scrum Master and client management as a Customer Success Manager.
Through the form on the /contact page, or via LinkedIn and GitHub. Requests are usually answered within 1-2 business days.