Olá, sou André Martins.

Sistemas de back-end, desempenho e engenharia de software.

Estudante de Engenharia da Computação, focado em criar software eficiente e confiável.

Emblema de André Martins

Sobre

Sou estudante de Engenharia da Computação, com foco em desenvolvimento de back-end, sistemas, algoritmos e desempenho computacional.

Atualmente, meu foco é desenvolvimento de back-end com Java, enquanto exploro a interação entre aplicações de alto nível e sistemas de baixo nível por meio de projetos envolvendo C, bibliotecas nativas, APIs HTTP, bancos de dados e cargas de trabalho computacionais.

Gosto de compreender os fundamentos por trás das abstrações que utilizo...


Competências

Selecione uma competência para ver os detalhes

Java

Meu foco atual é o desenvolvimento de back-end. Uso Java para criar APIs HTTP, lidar com dados JSON, estruturar a lógica das aplicações e explorar o desenvolvimento de back-end sem depender muito de frameworks. Também uso Java Native Access (JNA) para integrar aplicações Java a bibliotecas nativas em C.

System.out.println("Construindo sistemas de back-end.");

C / C++

Uso C para explorar programação de baixo nível, algoritmos matemáticos, comportamento da memória, entrada e saída de arquivos, bibliotecas compartilhadas e interação com bancos de dados. Também uso C como base para experimentos relacionados a desempenho e comportamento em nível de sistema.

printf("Entendendo como os sistemas funcionam.\n");

Python

Uso Python para computação numérica, processamento de dados, experimentação e aprendizado de máquina. Meus projetos incluem computação científica e análise com bibliotecas como NumPy, Pandas, SciPy e TensorFlow.

print("Explorando problemas computacionais.")

JavaScript / TypeScript

Uso JavaScript e TypeScript em aplicações web, lógica de aplicações e interfaces interativas. Minha experiência também inclui estruturar aplicações com abordagens orientadas a objetos e ao domínio.

console.log("Desenvolvendo e experimentando.");

Bancos de dados

Trabalho com bancos de dados relacionais e SQL, especialmente PostgreSQL e SQLite. Meus projetos exploram interação com bancos de dados, persistência, execução de consultas, transações e diferentes estratégias para gravar dados com eficiência.

SELECT * FROM experiments;

Desempenho e sistemas

Tenho interesse em entender como o software interage com o sistema subjacente e como as escolhas de implementação afetam o tempo de execução, a memória, a entrada e saída, as operações de banco de dados e o desempenho computacional.

Exploro esses conceitos por meio de benchmarks e experimentos com execução na CPU, OpenMP, CUDA, entrada e saída de arquivos, transações de banco de dados, processamento em lotes e diferentes ambientes de execução de linguagens de programação.

computação → execução → entrada e saída → comportamento do sistema → desempenho

Projetos

Conheça alguns dos meus projetos pessoais:

Requisição no Postman demonstrando endpoints HTTP e respostas JSON da MathLib API

MathLib API

Uma API HTTP leve, construída em Java, que expõe uma biblioteca matemática nativa escrita em C através do JNA.

  • Java
  • JNA
  • HTTP
  • JSON
  • Docker

Gráficos de desempenho comparando ResNet50, DenseNet121 e EfficientNetB0

Comparação de arquiteturas de CNN

Meu trabalho de conclusão de curso em Engenharia da Computação compara ResNet50, DenseNet121 e EfficientNetB0 na classificação de pneumonia, usando aprendizado por transferência e experimentos controlados.

  • Python
  • TensorFlow
  • CNN
  • Análise de dados
  • DVC

User interface of Quadratic Function Calculator application

Calculadora de funções quadráticas

Aplicação web em TypeScript reestruturada com programação orientada a objetos e arquitetura orientada ao domínio, separando a lógica matemática da interface e da visualização.

  • TypeScript
  • OOP
  • Arquitetura
  • Computação simbólica