What do you do in your life?
I enjoy arranging symbols through formal ideas, using a broad range of languages and paradigms. These symbols run and evolve in a time-dependant system, in order to solve problems and accomplish human goals.
When I see a problem, I feel an instinctive urge to solve it, whether it’s about technology, organization, relationships, or whatever. In my opinion, Problem Solving must be a formal process, where getting a lucid, testable, unbiased and non-emotional result is the goal.
I started working as a Mac Specialized Technician at the age of 17, in a small computer shop, where I developed some strong Troubleshooting and Repair skills and techniques. Everyday jobs also required me to manage Client Relationships and the Organization with my Colleagues, which were rather chaotic. Not that I was much better at the time anyway.
Some projects I started required me to learn about Servers, Storage and SAN solutions, while other were about medium-sized Networks and Distributed WLAN systems. The rest of the time was spent repairing Macs. Meanwhile, in my spare hours, I dedicated all my efforts into learning Windows Server, as well as GNU/Linux (I put the GNU part for those fussy people who want it), various Server platforms and much more stuff not really worth mentioning. In these years I created at home my own Rackmount Infrastructure with a bunch of old servers, just for fun. Later I discovered that I learned a lot of useful things from that.
Some free time was occupied by a meticulous study of the TCP/IP protocol stack, because I wanted to configure in my rack a Cisco Router, but it required advanced networking knowledge. My study followed the CCENP and CCNA certifications, even though I never took those exams because they aren’t cheap. After I purchased a powerful enough server, I decided to dig into Virtualization, with Xen and VMware. Some clients asked for support where configuring Firewalls was needed, and therefore I added a PFSense box to my collection of toys.
As the years passed I did many different technical tasks in the shop, ranging from backup solutions to IP telephony, web and mail servers. I had the opportunity to re-create, organize and Manage the Laboratory multiple times, while developing and enhancing an interesting little software that would later become very important for me, LabManager.
Almost five years had me bored enough to leave the job and start university with my own money.
I can’t think of anything more useful in my existence than the university. Every course eventually taught me something useful, even if it wasn’t clear in the beginning. The math lessons are pretty useless for my job, but helped me gain the right approach for reaching verifiability and strong reasoning. Linear Algebra reinforced some abstraction skills. Digital Electronics gave me an advanced way to solve boolean networks and state machines. The programming and computer architecture courses were absolutely fantastic, and the teachers were excellent under every point of view; they gave us a deep understanding of the CPU that runs our useless programs, what operating systems actually do, how processes talk and spawn, and how to draw a teapot with OpenGL.
Software Engineering taught us to streamline the development process. Formal Requirement Analysis became the first thing I applied when developing TRIAD, as with a tight and structured approach to Architectural Design problems.
I learned to work with standard UML diagrams, Relational Databases, and other interesting technologies. Managing a project as large as TRIAD had me study also Project Management Systems, like GANTT and WBS diagrams.
The first programming language I learned was C, and that was damn difficult to learn without a proper teacher or deep computer knowledge. It took me months of effort with tiny results (I was like 14 or so). I remember using a Linux distribution for that, as well as I remember how tedious and frustrating it was.
Software development actually started in the shop, with the FileMaker Platform. It’s actually fun to use for a starter, less so for an advanced developer.
University ultimately shaped my knowledge of programming with some serious languages, including C, C++, Python, Java, but at the time of writing I prefer working with TypeScript and Go, as they feel more lightweight and modern for my use.
I now work as a freelance consultant for small to large businesses, managing my few good clients and working on several projects that involve software development, workflow management, server infrastructures, data management, websites.
In the recent years I had the cool opportunity to start doing lights and VJ for a local club. While I can confidently say that the results are way better than the normality, I still consider myself an amateur in the field.
The required equipment and software were a large expense, and the total time dedicated to learning how all that stuff worked was about 180 hours. It was worth it.