Skip to content
View Mestre-Tramador's full-sized avatar
📜
I'm gonna do my thing!
📜
I'm gonna do my thing!
  • Brazil
  • 23:33 (UTC -03:00)

Organizations

@Workupy

Block or report Mestre-Tramador

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don't include any personal information such as legal names or email addresses. Markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
Mestre-Tramador/README.md

    Be welcome, my brother or sister of code!

My name is Eduardo de Oliveira Rosa, a Brazilian programmer, in the old times known as "Mestre Tramador". These are also my cats, respectively Kyoshi and Yangchen, named after the namesake Avatars.

A picture of my house cat   A picture of myself   A picture of my house cat


Read it also in: Español, Português

    About me

I'm 26 years old and I finally got my "Jogos Digitais" Bachelor of Technology at "Centro Universitário FADERGS", member of Ânima Ecosystem, which you check here. Currently I'm working as a developer on the Workupy platform, a future no code hub to simplify software creation.

I currently undertake three specializations at "CENES" ("Centro de Estudos de Especialização e Extensão"), one in "Algoritmos e Estruturas de Dados", another in "Arquitetura de Sistemas da Informação" and finally the last in "Redes Estruturadas de Computadores".

I research constantly on ways to improve my coding skills and also plan on games or projects ideas, those I maybe will try to implement, as I say, I am still trying to find my way.

About other details of myself, I am a defensor of open source and free softwares, so all of my repositories generally comes with a GNU License, and on my free time I play with photo and video editing, creating material to the RPG campaigns I play with my friends.

If you wanna talk to me, check below my social media! As mentioned, I speak Portuguese, Spanish and English!

Always have faith in your code, and thanks for passing by!

Discord   Itch.io   LinkedIn


    About my experience

If you want to know about my experience, I've separated it in topics so you can read it below seamlessly by what interest you.

Stacks and Skills...

"If you want to accomplish something in the world, idealism is not enough — you need to choose a method that works to achieve the goal. In other words, you need to be pragmatic." - Richard Stallman

Through my years, I have concluded two things about my skills: That I learned a lot and that I have to learn a lot more. And with that being said, it's only fair that I share my lot here as well.


Low-Level Programming

The first real programming language I ever learned is C, which I used it mainly academically where I've developed with Arduino too. Generally speaking, I know how to program in C but I'm not an expert in its optimization or the complex caveats with structs and pointers.

My main goal is start studying more low-level languages like C++, Rust, Zig and Nim, and even more C, to improve my understanding of reliable and fast backend web servers, and of course, visually demanding games.


High-Level Programming

After C I learned Java, which opened my eyes to Object Oriented Programming. Later I would improve my knowledge in Java while unravelling Minecraft modding or some projects I had to do in my job. Still in OOP, I learned PHP after Java as my first backend language for the Web, and later C# while studying the Unity Game Engine during my bachelor's degree.

Regarding Scripting, JavaScript was the first language I learned altogether with PHP, and is probably the language I currently most use due to my job, but not too much late I learned TypeScript when I was introduced into the concept of Frameworks, Packages and Libraries. Recently I've scratched a bit of Python, but I have a long way to go with it... Which is not the case with Unix shells, where most of my self-taught knowledge is about POSIX, but I learned Bash, Z-Shell and Fish too. On Windows, I've also a much less impressive self-taught knowledge of Batch files, mostly because I prefer Unix for programming, but I will someday learn more about them alongside PowerShell.

Lua is the only high-level procedural language that I know more or less, and is a target of my studies along Julia, Go and Odin on that topic. Other targets, on OOP, include Ruby, Objective-C, Swift, Kotlin, Scala and Dart. I do not fancy much Functional Programming, but I don't lie a not so big desire to learn languages as Haskell, Elixir, Clojure, F# and others.


Markup and Data Languages

Before I learned JavaScript and PHP, I learned HTML firstly, but I would only understand its correct semantics way longer when I was discovering frontend JS frameworks. With my understanding of REST APIs came the learning of JSON and XML, and more or less at this period that I was introduced to SVG, which I took more time to understand due to my lack of artistic and designing skills.

After my first year working with development, the usage of YAML and TOML became more common for configuration or attributes files, so I studied these formats as well. The good old classic plain text INI format also became important for me around this period with the .env files, in turn adding one more item to this stack.


Styling Languages

Actually mainly for the Web, I learned CSS complementary to HTML, but much recently I delved into its complex concepts like variables, pseudo-classes, functions and nesting. About preprocessors, the only I have a considerable experience is Sass, specifically its SCSS syntax, but I do desire to learn more about it as I desire to learn LESS and Stylus.

I do not like (much) ideas as JSS and alike CSS generating tools, so they are not in my learning roadmap about styling. On the other hand, I want to expand my knowledge of styling languages into areas beyond the Web.


Game Engines

The main focus of a game developer is naturally the game engines. The only that I currently know how to use, and by the way not in its full extent, is Unity. Most of the games I developed in Unity were academic or incomplete, so the only source I made public is the final project of my bachelor's degree. Of course, if it's worth considering the game as an engine, I did some experiments by trial and error in Minecraft modding with Minecraft Forge, but my big plan of study is Godot right now, which I plan to implement my first game "for real", but more on that later...


Web Frameworks

The idea of frameworks were inserted in my mind right on my first internship day ever. Naturally, since understanding its concepts, I've come across web frameworks for backend, mostly to build REST APIs, and for frontend, which include JS frameworks to build SPAs and styling ones.

Following this order, the first framework I was introduced is Laravel, and, not much later, Lumen, its micro-offspring. Later I would learn a many favorite, Express, which remained as the most used in all my working experience, even I disliking the usage of JavaScript for backend. My goal is to improve this list, specially studying frameworks from other languages, like Spring, ASP.NET, Django, Ruby on Rails, and many more.

Regarding now only the frontend, Angular was the the first one that I learned and soon after I was learning Vue.js as well. Contrary to the almost infinite quantity of JavaScript frameworks, the only one that I want to learn besides the aforementioned two, in due time, is Svelte. And on the topic of styling, the ones I learned, used and partially extended in some work projects are Bootstrap and Tailwind CSS, but in general this is not my peak of interest studying currently.


Web Libraries

It is somewhat confusing if some libraries are frameworks, or if a framework is small enough to be a library, but for the sake of proper nomenclature two JS libraries that I learned are jQuery and React. Considering my experience, I worked more with libraries than frameworks per say, and I don't think stop learning with the aforementioned, mostly because I want to try htmx and other libs more inclined to MPAs.


Web Tools

Considering that the majority of my work experience was with JavaScript, I've come into contact with various tools to build the best of the applications, such as "compilers" like Babel, Webpack and Vite, which also I used as a development server with live reloading parallelled to Nodemon, all part of Node.js' ecosystem. I'm aware that are many more tools to discover and learn, but these one I prefer learning oriented by necessity.


Web Servers

Currently I only learned, and not in the deepest way, how to configure and maintain a NGINX web server with reverse proxy, load balancing, URL rewriting, SSL and cache. One of my main goals within my NGINX knowledge is to expand it to learn about IPv6 connections, UDP based requests, and many more, including the usage of Lua scripts to treat the incoming requests. I want also to learn other web servers like Apache, Varnish and Traefik, and maybe build one just for the experience, being it able to handle various protocols.


Databases

Through all different types of databases there are, I'm by far most familiar with relational ones, specifically MySQL, MariaDB, and SQLite, which the next one I want to study being PostgreSQL. Non-relational is a topic that I need to improve myself into, but I know a bit of its core core concepts, as of Redis, the only key-value database that I used to cache some data and queueing, requiring a deeper study as well.


Infrastructure

Let it be clear that by Infrastructure I refer more about software architecture than physical provisions, and in that regard I'm glad to being expanding each time more my knowledge of Docker and Kubernetes, the later with Minikube, as such amazing tools and concepts they are! I also learned how to operate with Certbot to generate certificate files. As for other services, more third-party oriented, I've used AWS (EC2, S3, RDS, ElastiCache) and Firebase.

I'm planning to learn more tools on this topic such as Terraform, Prometheus, Grafana, Elasticsearch, Kafka, and RabbitMQ. In other words, all my experience with DevOps and CI/CD is short due to a lack of big teams in the companies that I worked, making the deploying being more shallow and reserved, also because the applications were not that big too.


Mobile

My experience with mobile applications development comes mostly from the Ionic and React Native frameworks that I learned through my jobs, which means that I'm mostly familiar with hybrid development for mobile rather than pure native. I also learned how to work with Android Studio and XCode as well with Google Play Console and App Store Connect for the deploy, the later using a VM due to a MacOS being unaffordable where I work at.

Also, I find the mobile development to be a lot more time consuming than desktop development, and in general much more bureaucratic and unaffordable to independent teams, specially regarding Apple, but Google's Android is not much away on the line. In general, I have a lot more to learn and work with mobile, but it's something that I'm not pushing as a big goal right now.


Package Managers

Essencial tools in our toolbox, to me the package managers were big revelations as such as the frameworks when I learned about them. I've worked with Composer, npm, Yarn, pnpm and in a few occasions with Maven, CocoaPods and RubyGems. There is also the UPM, Unity Game Engine own package manager, which I researched a bit more into publishing, yet not having done it. I also managed a bit of dependencies with Gradle, if it's deemed to consider it as a package manager.

As OSes also have package managers, and considering that most of the Linux distros that I used are from the Debian family, I have most experience with the apt syntax but I have a fair experience with yum as well while in exceptional cases. My main goal is to try and maybe become a devoted user of Nix and NixOS because of its declarative style of packaging.


IDE and Tools

In this topic, I have to say, I prefer it simple: An text editor with not much functionalities besides syntax highlight and completion integrated with a terminal, with the additional of a good web browser, usually Firefox. That's why I prefer VS Code over all of JetBrains IDEs, and while I sometimes use its extensions to manage Docker containers or MySQL databases, most of the times I'm using the terminal to do operations that doesn't need extensive writing like queries.

Productivity is a point, of course, but it isn't related to competitiveness at all. My first experience programming was in the "old way", gedit and compiling in terminal, so it taught me well that looks aren't everything. Even controversial, I love this quote from Terry A. Davis:

An idiot admires complexity, a genius admires simplicity, a physicist tries to make it simple, for an idiot anything the more complicated it is the more he will admire it, if you make something so clusterfucked he can't understand it he's gonna think you're a god cause you made it so complicated nobody can understand it. That's how they write journals in Academics, they try to make it so complicated people think you're a genius.

I'm not a TempleOS user neither plan to be, but I admire some of his ideals, specially in this regard. So, to sum it all, I only use that I need and nothing more, it always got me in the same place as many with more sophisticated environments. In the end anyone picks what it suits them better.


OS Preferences

I can only start speaking about operating systems with this quote from Linus Torvalds:

[...] So, Nvidia, fuck you!

And why? Because this is the summary of why I'm still using Windows: Gaming! It's a real pain to make the Nvidia GPU I have to work properly with a Linux distro, not to count the use of anti-cheating software, DirectX requirement, and so on and on... Of course, I do find Windows to be useful for end-user tasks and I often consider writing my source-code to be cross-OS, having Shell scripts and Batch files implemented, but that's it.

When I started learning programming back in 2017, I learned firstly with Peppermint OS, then Ubuntu, then Linux Mint, which is by far my favorite because I prefer Cinnamon than GNOME. I tried to use Fedora Linux on a few occasions, but I don't consider to have experienced it as I should, so I want to research more on it. I also want to study NixOS for it's concept, which I find much more beautiful than Arch Linux's, that, by the way, I do not use. And, of course, I can't afford to (and even if I could, I won't) buy a Mac to use macOS or anything Apple releases.


Non-Programming

Besides programming, the thing that I most like to do is to read and write stories, which someday I hope to publish. I also know a bit of 3D Max Studio and Blender for 3D modelling, Adobe Photoshop for image editing, LMMS for audio production, and some key concepts of drawing and design, all learned during my Bachelor's degree. I do some small video editions using Nero Video as well. Outside the digital world I have some decent acting and voice-acting knowledge, a good understanding of Mathematics and Physics, and finally some insight into Hardware and a few less of Robotics.


Educational...

"If I have seen further it is by standing on ye sholders of Giants." - Isaac Newton

I learned how to program between 2017 and 2018 during my course through "E.E.E.P. Dr. Solon Tavares", where I get my certification as a computer technician on the later year. In the next year I started studying at the aforementioned "Centro Universitário FADERGS", where I concluded the course by the second half of 2023, and then I started my on course specializations soon after.

I do consider taking a Master degree and Doctorate, but my vocation is not much aligned with scientific research as is with application and creation of projects, either software or not. In another words, I paraphrase myself with this Linus Torvalds quote:

[...] And I am not a visionary. I do not have a five-year plan. I'm an engineer. And I think it's really -- I mean -- I'm perfectly happy with all the people who are walking around and just staring at the clouds and looking at the stars and saying, "I want to go there." But I'm looking at the ground, and I want to fix the pothole that's right in front of me before I fall in. This is the kind of person I am.

In the meantime, what I know I'll be doing is taking lots of courses, specializations and certifications on my areas of interest. I do hope to be able to expose more work here on my GitHub as well, a much needed contribution to myself. If you want to check more info about my educational experience, check it right here.


Career...

"Developers, developers, developers, developers, developers, developers, developers, developers, developers, developers, developers, developers, developers, developers." - Steve Ballmer

Since August 2019 I work as a developer, at least at some level. My first experience was as an intern at "Expermed Perícias Médicas", which I also was made permanent as a junior developer until the first work day of next year, 2020, fired due to strict business reasons. Still, this period build a solid base for me, specially on how big are the dimensions of professional code standards, the relationship among other company departments, and finally the orientations to be self-taught. About stacks and technology, the system I worked was a gerontology preventive medicine calculator where a medic could determine the best approach for an old person do not get sick or injured based on the same's lifestyle, it was built with Laravel for backend and Angular for frontend, containerized in Docker, versioned in Git, and released under Planning Poker agile method.

Either by fate, chance or pure luck, I ended up meeting my current boss, and now a good friend, John Anderson Mascarello Duarte, still on January 2020 where I got another internship at his company. Since them I've been working for him on different projects among his companies, firstly at "JD Digital Soluções" (now "JD Digital Comunicação"), then at "Plugways Digital" (now "JD Digital Tecnologia"), and finally at Workupy.

Through the time, I was ascending on my position under him and was gaining more attributions, like mentoring new interns, architecting new projects on demand, and even taking decisions regarding cloud services, payment gateways and other third-party products. About stacks and technology, the first project I worked, during my internship was a pure PHP+HTML+CSS+JS fleet tracking system which also had a decoder for a proprietary GPS protocol. After that, I worked on a system based on a Express API on backend with an Angular SPA frontend that managed a big data crossing of users that scanned specific QR Codes in determined locations to control COVID-19 spread; which, after the pandemic, sparked the idea of a new system built on Laravel for backend plus Vue.js for frontend, which also did a big data crossing of users, but the ones who installed an Ionic cross-platform mobile app, and later also with Brazilian government public data APIs and Chat GPT.

Other projects in the same period included an audio-guided tour e-commerce on a PHP PWA; a React Native cross-platform mobile app which generated property inspect PDF reports with a imbedded photo editor; and finally I gave support on some Java applications. All of these projects were versioned in Git and released under Extreme Programming (XP) agile method.

Now on Workupy there was a turn to much more modern experience, where I single-handedly refactored a monolithic software into an intricate microservices architecture running on Docker containers with separated databases, including relational, non-relational, and key-value for job queueing. This new architecture is also scalable into a Kubernetes cluster and managed under a reverse proxy with multiple NGINX containers. If you want to check more info about this project or the others, check it right here.


Others...

"Ya never too hot, never too cold
Never too young, never too old
Never too skinny, never too fat
Never too dis, never too dat
ya just were ya are
& dat's where it's at." - Dr. John

If the curiosity picked you, bet you want to know what's the meaning of "Mestre Tramador", yes? Well, my (old) nickname is in Portuguese, where "Mestre" stands for "Master" and "Tramador" is a word that can be translated into schemer, plotter, storyteller or similar... To summarize, it was a monicker of a man who "knew the role of everyone", and taught this to anyone who cared to listen to him.

Besides that, there's probably more to put here, but right now I'm gonna let just this tidbit of information. If you want more, don't be shy to contact me!


Mestre-Tramador

Pinned Loading

  1. Exper-Dat-Reader Exper-Dat-Reader Public archive

    This is a simple implementation based on an old test to a job application which requires a PHP/JS system to read encrypted .dat files and dump their data into .done.dat files.

    PHP

  2. Mestre-Tramador-Unity-Tools Mestre-Tramador-Unity-Tools Public archive

    A project of the course "Laboratório de Software e Projetos" at the "Centro Universitário FADERGS", member of Ânima Ecosystem, assessed by Prof. Luan Garcia and available for free consultation and …

    C#

  3. Doc-Testello Doc-Testello Public

    This is a simple implementation based on a test to a job application which requires a PHP system to upload big CSV files.

    PHP

  4. P-Movies P-Movies Public

    This is a simple implementation based on a test to a job application which requires a Java/React system to consume OMDb's API both in backend and frontend.

    Java

  5. Versian-Products-and-Prices Versian-Products-and-Prices Public

    This is a simple implementation based on a test to a job application which requires a fully Laravel system to show results from SQL views.

    Blade

  6. Mo-Creatures-Redux-Redone Mo-Creatures-Redux-Redone Public

    Forked from DrZhark/mocreaturesdev

    This mod is an attempt to recreate DrZharks' Mo'Creatures in the new versions of Minecraft with redesigned ideas.

    Java 1 1