Skip to content
Nicola Sabaini
Nicola Sabaini

// PROFILE

About

Full-stack developer, born 1985. APIs, C# and Android apps by day; operating systems that fit in one hand, games and a radio station on my own time.

I started on a Commodore 64, making games in BASIC. Then Visual Basic programs on Windows 3.11 and 95, MP3 players on Windows 98, my first websites on XP. That is not nostalgia: every time, the machine was the limit, and working against a limit is the one thing I have kept doing ever since.

Today I am a senior software developer at Codermine in Brescia.

The work

Full stack: I design the API and I write the client that consumes it. That is why I do this job and not one slice of this job.

Back end. C# and ASP.NET, PHP with Laravel and Symfony. REST APIs on top of both: explicit contracts, versions, authentication, and the rule that the client must not know how the table underneath is shaped.

Front end. JavaScript and Node.js, HTML, CSS, Bootstrap.

Android apps, written with Xamarin, talking to the same APIs.

Data. SQL on MySQL, Microsoft SQL Server and Oracle. Python when what is needed is a tool rather than an application.

Tools and systems. JetBrains, meaning PhpStorm and PyCharm, and Visual Studio. Git, with Bitbucket, GitLab and Sourcetree, and automated releases. CMSes like Joomla and Drupal, LMSes like Moodle. Windows Server domains and Active Directory. Debian and Windows, and macOS where it is called for.

Then there is what builds up over years of working with people whose job is training other people: e-commerce built from scratch, line-of-business applications, distance-learning platforms with SCORM packages and Moodle, the systems that handle continuing-education credits in Italian healthcare. It is not the part that defines me, but it is work I know how to do and it cannot be improvised.

My own projects add C and C++23, which is what you use when the target is a microcontroller and there is no room for anything else.

Languages are not the point. You learn one in a fortnight; what carries from project to project is how you decide: where to keep state, what to make impossible rather than discouraged, which test to write first. The rest is syntax.

The thread

Looking at the things I have built outside working hours, the thread is clearer than it was while I was building them: I am drawn to machines that do far more than they should.

A complete operating system in 512 kilobytes of RAM, with an assistant that answers offline. A wargame in Python with AI, authoritative multiplayer and fourteen hundred tests. A radio station broadcasting around the clock hosted by a DJ that does not exist. And this website, which sits on a machine with half a gigabyte of RAM alongside the ExaWar multiplayer lobby, and therefore runs nothing: pages are built elsewhere and the server reads files.

This is not minimalism as an aesthetic: a tight constraint is the only specification that does not lie.

Away from the screen

I am a retrogaming enthusiast: I build and program arcade cabinets and digital pinball machines. The real ones, with a CRT and buttons that make a noise.

I collect video games and vinyl.

And I make techno: it comes out under the name Indecenti, it is the ExaWar soundtrack and it plays in the Radio Index rotation.

How to reach me

By email, at niki070585@gmail.com. The public code is on GitHub, the professional track record on LinkedIn.