Sou formado em engenharia mecânica, mas busco migrar para o desenvolvimento back-end de aplicações web. Tenho muita curiosidade por ciência/engenharia da computação e essa curiosidade me levou, e ainda me leva, a estudar os fundamentos da área, sendo isso algo que eu acredito estar fortalecendo a minha habilidade de solução de problemas, independentemente da "stack" de desenvolvimento.
Estou agora em busca de aprender as tecnologias de desenvolvimento web .NET para projetos grandes e que exijam um alto grau de segurança e Node e Python para projetos menores, como Restful APIs e automações de tarefas.
No último ano, explorei bastante a área de sistemas, tendo criado mini-projetos pessoais com as linguagens C, Assembly x86-64, C++.
Entre os mini-projetos estão:
-
Um event-system em C, usando ponteiros e filas para criar a lógica de inscrição (não cheguei a implementar eventos de mais baixo nível, mas pretendo aprender a capturar eventos gerados por hardware interrupt, como eventos de mouse e teclado);
-
Uma single page application com back-end em C e front-end com Javascript, CSS, HTML, usando SQLite para registrar contas (usei o ngrok inicialmente para deixá-lo online e atualmente consigo disponibilizá-lo com o tunelamento da Cloudflare também);
-
Um aplicativo usando o padrão de projeto ECS com archetypes em C++, sendo esse um projeto que consiste de um parser e um módulo com SFML que renderiza círculos e retângulos em uma janela, com velocidades, posições etc. definidos por um arquivo .txt.
-
Uma Web API que recebe um JSON com um endereço e retorna um JSON com o endereço recebido e uma versão do mesmo endereço, mas sanitizado. O sanitizador foi feito em Assembly e o back-end em C, tendo o back-end uma evolução em comparação ao projeto da single page, pois usa select para multiplexação de I/O, enquanto a single page apenas tratava uma requisição por vez. (Select ainda é péssimo, mas estou aprendendo epoll para o próximo projeto, o que deve me ajudar a atingir uma performance e escalabilidade equiparáveis à de frameworks profissionais).
Eu nunca trabalhei com programação, mas no meu trabalho atual, auxiliar técnico de impressão 3D, tive algumas experiências com programação, tendo, por exemplo, modificado o firmware Marlin para aceitar uma mesa de impressão maior, bem como adição de campos no menu para funções de pré-aquecer da impressora. Além disso, fui apresentado ao n8n, que é um software orientado a eventos capaz de coordenar milhares de APIs para resolver problemas de automação. Com o n8n e o Cloudflare, eu fui capaz de criar um chatbot para responder a um chat no Telegram. Olhando a documentação do Gemini, acredito que eu seja capaz de criar um chatbot sem usar n8n como intermediário, sendo isso algo que vou implementar em um projeto pessoal que ainda estou desenvolvendo.
video: https://youtu.be/0PSzIIVQjks
video: https://youtu.be/2013QoGVMKA
link: https://github.com/DaniloVieiraCosta1729/NASM/tree/main/ex_guanabara_assembly/Ex07_EasyMode
video: https://youtu.be/hhfp7_hMmAI
link: https://github.com/DaniloVieiraCosta1729/test_dev_C
video: https://youtu.be/5pluUy8Yf6E
link: https://github.com/DaniloVieiraCosta1729/C-language/tree/master/Exploration/Events
