Software developer with about 20 years of experience in building solutions for web, desktop and mobile platforms
- Git and GitHub (+5 years). The place where I host most of my code (some of it in private repositories), but also where I try to contribute to some open source initiatives that I find interesting.
- Microsoft Visual Studio (+15 years). I started to learn C++ and .NET on VS 6.0 when in high school and I have been useing this suite of tools for many projects ever since.
- PHP (+12 years). One of my favorites for the server side. I always kept up with the releases of new versions from 5.6 to 8.4 and I used PHP as a module and CGI, for scripts, full systems and I even played at creating a desktop application, just to see how far it can go.
- MySQL (+12 years). If you work with PHP for so long, MySQL is a must. I can design database models and schemes for anything pretty fast. I can implement migration systems, improve security and set up database servers from the ground up.
- HTML5 (+15 years). Yes, I am from the time of tables and iframes and buttons made of images. But I have witnessed the progress of HTML across the years and I have honed my skills constantly to keep up with it. I like my HTML layouts to be standard-compliant, according to W3C standards, semantic, accessible, clean and modern.
- CSS3 (+15 years). Responsiveness is key. Flexbox, grids: I can set them up in a blink. Transitions and animations are also features that I enjoy using to create beautiful, interactive interfaces.
- JavaScript (+15 years). Both for the client-side and the server-side (Node.js). I can't even count all the frameworks and libraries that I have worked with, starting with good old jQuery. But, especially since the web APIs have evolved so much, I still like my JavaScript in its vanilla flavor.
- C++ (+8 years). It's what I choose when I have to build reliable, fast, native applications for desktop or embedded. I have worked with version from C++11 to C++20 and mostly along with the Windows API. I use CMake and prefer Clang for the compiler.
- .NET (+8 years). VB and C# were among the first languages that I started learning. I worked on both deskop and web solutions (ASP.NET), mostly debugging and fixing old codebases.
- Python (+5 years). I have used this enjoyable language mostly for scripting.
- Kotlin (+5 years). Though I first started building Android apps in Java, I quickly moved to the Kotlin language for all its advantages and modern features. I use it along with the Gradle build system for building mobile applications.
- Flutter (+5 years). Though I am not a big fan of Dart, I have enjoyed building a few cross-platform applications in Flutter and I would like to give it a try again, since it has improved greatly in these last years.
- Scripting (+10 years): I have done many things with Bash, Batch, and PowerShell.
- Docker (+3 years): I am from the time of Vagrant but I have also learned the ropes of Docker as much as to get straightforward environments ready.
- Clean code. I like code to be well structured in files, easy to find, read, and understand. Everything consistent and in its place. No left overs, no huge files of mangled text.
- Standard compliancy. I like following standards and specifications that regulate languages and technologies, making it easier for everyone to collaborate seamlessly. GitHub is a great place for finding best practices guides, as well.
- SOLID. I aim to follow as much as possible the five design principles for writing maintainable and extendable object-oriented code
I use Copilot, Cursor and other AI assistants, but always being in control of what's going on, preferring to write the code myself and take all the decisions. No "vibe coding", just using LLMs to make work faster where it can do so.