Marco Bellezza (@belelabestia)

senior web dev and more

About me | Dev career | Skills | Channels

Light | Dark | System


Info

  • Name: Marco Bellezza
  • Address: Via XXIV Maggio 8, Vermezzo con Zelo (MI), Italy
  • Phone: +39 377 145 1629
  • E-mail: jasone.mb@outlook.com
  • Birth date: March 21, 1991

About me

I'm a human being living in Italy, near Milan.
I love music and technology, reading and writing, science and philosophy.

I listen to italian and american punk rock, drum and bass, jazz, electro swing, many different kinds of metal.
I played guitar from the age of 6 till the age of 23 and singed for more than 10 years; back in the day I recorded 2 albums with 2 different bands; in the last years I've been playing the drums as a hobby.

I did PR for clubs, planned and organized parties, events and concerts, ran my own disco at 23 years old; it didn't go well. I reinvented myself first as an ICT consultant and then as a software developer. I'm a dynamic person and a fast learner. I put creativity at the service of reasoning and reasoning at the service of creativity.

Reading and writing saved my adolescence; Seneca, Epictetus, Marcus Aurelius saved my life.

Romantic relationships gave me clarity. I like women and prefer open relationships, absence of jealousy and trust-based bonds.

I have a long-standing, sustainable relationship with cannabis, which I've never hidden to anyone.

I'm a good money saver, a modest investor, an ambitious aspiring enterpreneur.

I left a safe job in a big structured company for a more adventurous job in a small software house; I envisioned, founded and ran the startup phase of a new business unit offering an up-to-date set of skills in modern web development in terms of technologies and practices, leading a process of innovation that positively affected the whole company and was vital to deal with the covid pandemic.

I decided to become a freelance developer because I felt the need for a wider exploration of new tecnologies and teams, expanding and growing my set of professional and human skills.

I'm a passionate student of coding, software architecture, programming languages, design patterns, project management, agile methodologies, digital transformations, human structures and organizations, politics and macroeconomics.

I may have many strong opinions about many subjects, but I have flaws too ๐Ÿ˜โ€‹


Developer career

February 2023 - July 2023 | Boolean

From February to July 2023 I worked as tutor and main teacher for Boolean. Here I helped students learn the basics of web development and held a full C# and OOP course.

The main topics I trated are:

  • HTML, CSS and the basics of web pages
  • JavaScript and the basics of programming languages
  • C# and OOP principles
  • .NET and ASP.NET as backend technology

I also co-hosted the Boolean Coding Week, a free webinar showcasing what can be accomplished with basics web skills.

February 2023 - July 2023 | Zerouno

From February to July 2023 I worked as senior dev for Zerouno. I contributed building the next generation of their main product and developing ad-hoc projects for their customers, as well as taking care of their DevOps platform.

I worked mainly on Angular projects and developing GitLab CI/CD features on Docker containers.

September 2022 - December 2022 | Buildo

From September to December 2022 I worked as a senior full-stack web developer for Buildo. Here I took part in the development of a small suite of web apps for Abbott, with the following stack:

  • Frontend: React (TypeScript)
  • Backend: Node (Express, tRPC)
  • ORM: Prisma
  • Database: PostgreSQL
  • DevOps platform: GitHub
  • Collaboration: G Suite, MS 365, Notion, Jira, Confluence, Slack

In buildo I had the opportunity to work in a larger team with more specialized roles (UI/UX, project management, testing, dev). We also integrated our artifacts in a larger platform build by other teams from the customer side.

May 2021 - August 2022 | Aulab

While I was working in CAPP I wrote some articles on a variety of programming subjects for the Aulab blog. Aulab is a coding hackademy that has helped more than ten thousand people to start their web development career with JavaScript and PHP.

June 2017 - June 2022 | CAPP srl

From 2017 to 2022 I worked for CAPP srl, a software house founded in Milan in 1973, which had historically dealt with software dedicated to the industry, in particular in the logistics and production field. In practice, from the warehouse control systems to the set of human-machine interfaces that allow personnel to monitor and control the plant integrating with CRMs, shipments, etc.

In CAPP I contributed to many projects for a variery of customers.

Fater Group

I worked on a warehouse control system and many companion applications for Fater Group, one of the company's main customers with more than 20 years of collaboration.

As my first job in CAPP I took part to the creation of a brand new production and warehouse plant in Campochiaro. We built a set of software layers integrating both with the field (PLC) and the management (ERP) solutions provided by other companies.

My last work for CAPP was a complete rewrite in Angular of a huge set of features operating across all the core areas of the Fater main production and warehouse site in Pescara. It took 6 months only to complete the first tier (out of three) of higher priority features!

Scavolini

I contributed in creating and mantaining a set of UWP applications for Windows 10 handheld devices for Scavolini. In the latest years in CAPP I worked also on mantaining and evolving the legacy software base that CAPP had built for this customer throughout more than a decade of collaboration.

Nippon Gases

I also worked as a consultant for Consoft in Rivoira (Nippon Gases Italia); here I developed an advanced logging service working across many different middlewares (with both REST and SOAP APIs), with advanced payload and error serialization and the capability to replay the faulty calls in a diagnostic environment.

In Rivoira I worked mostly with ASP.NET Core and Entity Framework Core.

CAPPLite

I conceived and directed a branch of the company called CAPPLite; in concrete terms, it was a team of 4 people (including me). We made (they still make) progressive web apps, in the cloud and on site, in war and in peace, in industrial and office environments, in a perspective of product and service.

At CAPPLite I've used and mastered the following stack of technologies:

  • Frontend: Angular (TypeScript)
  • Backend: .NET Core/5+ (C#)
  • ORM: Entity Framework Core
  • Database: SQL Server, PostgreSQL
  • DevOps platform: GitLab
  • Collaboration: G Suite, MS 365

I've also studied, adopted and promoted an agile approach to project management and operations:

  • We worked without specific constraints of time and place, focusing exclusively on goals, preferring asynchronous exchange of information and work material.
  • We preferred continuous and informal confrontation to the institution of rules of conduct.
  • We preferred a constant, dynamic pursuit of virtuous practices and habits to the institution of rules and procedures.
  • We were firmly convinced that transparency is the best way to conduct any type of human and professional relationship "in good times and bad".
  • We were firmly convinced that every decision must be guided by information, with sincere scientific curiosity, and taken with the utmost pragmatism.
  • We were firmly convinced that the duty of defining solutions should belong to the expert more than the client, just like the duty of establishing cures belongs to the doctor more than the patient.

Internal software

As a business branch providing modern web solutions, in CAPPLite we built internal tools that the whole company adopted.
Here are the main ones:

  • A super-lightweight tool for time and activity tracking and resource allocation, used by the employees.
  • An internal ERP used by the administration, with accounting capabilities and customer and commission tracking functionality.
  • The current CAPP Website.

Skills

Over the course of my carreer I've worked with a variety of technologies and developed many skills; I've also privately studied or experimented various programming languages, frameworks and some more theoretical/philosophical topics.

Here follows a brief summary of key topics that I've worked with, privately studied, or that I'd be interested in exploring more deeply.

Languages

I love studying how languages and syntaxes mould how programmers think of the requirements and their actual implementation. I started by studying Clean Code by "Uncle Bob" for practical reasons and never stopped my research in this field.

JavaScript/TypeScript

I've used these two languages both backend and frontend side, mastering them over half a decade of experience. I have a profound knowledge of the powerful TypeScript type system, as well as a deep understanding of the features and constructs of the underlying language JavaScript.

C#

I've worked with C# for most of my carreer; I used it in backend web services as well as in command line tools. I worked with the Razor syntax in MVC projects too, and I made some personal experiments using C# in the frontend with Blazor.

C/C++

Even if I've never worked with these two languages, it's worth mentioning that I actually learned programming with them in my university years, while I was studying physics.

F#

This is a programming language that I'm really curious about. In particular it has some really innovative features like computation expressions, but I also like the powerful type system and the way it mixes FP static modules with proper OOP classes in a really synthetic syntax.

Haskell

This is a FP language that I've privately studied and that I'm very curious about. In a world of catch-all languages, I find its rigorous, pure, paradigm-oriented approach almost romantic.

Rust

I think Rust is overall the most promising language in the field at the moment. Its main peculiarity is the capability to grant memory and thread safety with low level performances. Rust has also an amazing community and a fast and complete toolchain. Although I'm not an expert with this language, I'd be really interested in working with it.

HTML/CSS

As a full-stack developer I just have to master HTML/CSS. I've worked a lot with flex and grid layouts and with UI toolkits, but I have to say, aesthetics is not really my biggest strength.

Markdown

I simply love the simplicity of this markup language.

SCSS/SASS

I used SCSS in a single but long work project, I wouldn't call myself an expert but I definitely see value in using this CSS extension to improve the organization and architecture of modular, customizable design systems.

T-SQL

I worked with this language but honestly, I see no reason for using procedural extensions of the SQL language. I worked with many monolithic database-centric backends at the very beginning of my career and I really disenjoyed the experience.

Platforms

.NET

This is by far the echosystem I've worked with the most. My dev career started in 2017 with .NET Framework, using WPF to build native Windows applications. At the time it was usual to query the database directly from the client, so I had few opportunities to use ASP.NET (and, alas, IIS) to build backend services. I started working with .NET Core starting from version 2.0 and I still keep up to date with the latest releases. I really love the new, rewritten framework and I've used it for many work and personal projects.

Node

Since my backend experience is mostly built on .NET projects, in the past I used Node mostly for trivial backend services. Lately I've been using Node with Express and tRPC in professional real-world projects, experiencing the tremendous benefit of having a single language to share data types and utilities all across a project that could include many backend services and different frontend apps.

Web browsers

Here I am, Captain Obvious. As a web developer I know how a web browser works. Having created a huge lot of tiny vanilla HTML5 projects, I know what's needed about DOM manipulation, Service Workers, and many other native JS APIs. I think this is worth mentioning just to enphasize the fact that I'm able to understand (and interested in studying) what the most common frontend frameworks are doing under the hood.

Docker

I'm not a DevOps expert, but I have definitely used docker a lot. I know the basics of docker and compose and I've used it in development and deployment contexts. Still in my opinion the use of this kind of abstraction layers over pure software packages is often an overkill in small projects.

Frameworks

It is said that frameworks are the new languages, and in a sense that's true. Learning different architectural approaches to common problems is what gives the programmer a wide range of possibilities to represent domain and business logic.

WPF/UWP

In my early days in CAPP I worked with these two frameworks, but I've never been a fan of XAML.

ASP.NET

I've user this framework for most of my work and personal projects. I've played a little with Blazor and find WASM an opportunity to bring on web browsers many technologies that are by far stronger than JS-based ones.

Angular

Even if this is not the most liked frontend framework, I still find it the most powerful and complete development enviroment that I've ever worked with. That said, I've ascertained that having too many ways of accomplishing a task is not always the best choice for a dev team.

React

After years of experience on Angular, learning React was kind of a joke. In fact, I think the learning curve is the biggest strength of this UI rendering library. I'd call it a frontend framework, but let's be honest, that's not what it is. Anyways, along with React Router and a set of other libraries, it can also be used for real-world applications. I know Next.js fills this gap, but I've never used it.

Qwik

Despite being super young, this framework is already my favourite, and I bet it's going to be a game changer in the approach to web frontend technologies. The main goal of Qwik is to get completely rid of the hydration process, making web apps super fast and scalable and reducing the distance between frontend and backend rendering and development in general. Along with Qwik City (the Next.js of Qwik) it's really powerful and productive.

Database

I have to be honest, I never found a database engine able to fully convince me, so I'm still looking for something different. I never had the opportunity or the urgency to use one of the most famous NoSQL databases, but I know the main ones and I have a feel of how they work.

SQLite

This is my first option for small and medium projects that just need a data store.

LiteDB (.NET)

I also like this solution as a lightweight NoSQL file based database.

SQL Server

This is the database engine I've worked with the most. It's powerful and works really well with Entity Framework.

PostgreSQL

This is my favourite solution for big databases hosted on linux or with docker. Works well with Entity Framework, at the cost of massively underuse its most powerful, non-standard features.

ORM

Since I'm not so enthusiast about the database engines and APIs I've worked with, this far I've usually just opted for a good reliable ORM in my projects.

EF Core

This is just the right solution for the backend developer who isn't in love with SQL (i.e. me). The data modeling is complete and powerful, the developer experience is easy and straightforward.

Prisma

Lately I've been using this ORM, and I have to say, it's really powerful. However, I overall disliked the developer experience. It uses a dedicated language to declare the data model and you have to manually scaffold the TypeScript models and repositories every time you update the schema. Also, it generates only forward-migrations (that means, no easy migration rollbacks).

Libs and protocols

Here are some specific topics I had the opportunity to deepen and master.

OAuth2/OIDC

While I was in CAPP I wrote a library that implemented the OAuth 2.0 Authentication Code flow with PKCE because I was not fully convinced by the npm libraries that were available. This gave me the opportunity to implement a complex set of features, from the creation of cryptographically secure strings to the flow of redirects and validation steps, starting from the bare RFC description of the protocol.

RxJS

While I was trying to truly master Angular, I took the chance to get to master reactive programming and RxJS. I really like how this kind of programming make you think of a portion of the application state as a consequence of changes that happen over time. Observables make it possible to have immutable, declarative state in an object-oriented architecture.


Channels

I'm present on the following social media platforms as @belelabestia (Bel รจ la Bestia) or @jasone_mb, but I don't post regularly on any of those; insomnia and spare time determine my publishing schedule. Most of my content is in italian.

  • LinkedIn: almost nothing at all.
  • Instagram: mostly personal content.
  • YouTube: videos about coding, programming languages, work life and sometimes more personal or "pop" contents such as gaming or cinema.
  • Facebook: same as YouTube, plus some written posts.
  • GitHub: mostly unfinished experiments in TypeScript and C#.
  • Personal website: this one right here.

Back to top