Pular para o conteúdo

Maicon Theodoro

Retrato de Maicon Theodoro, de óculos, com as mãos apoiadas sob o queixo
Agenda aberta para novos projetosVespasiano, MG · Brasil

Desenvolvedor de software sob medida. Sites, landing pages e plataformas web que atraem clientes e organizam processos, do levantamento de requisitos à publicação, com a tecnologia mais adequada a cada projeto.

Registro 002

Tecnologia a serviço do seu negócio

Sou Maicon Theodoro, desenvolvedor de software em Vespasiano (MG). Desenvolvo sites, landing pages e plataformas web sob medida para empresas e profissionais que precisam conquistar clientes, organizar processos e crescer com segurança.

Também tenho experiência em comunicação, gestão de processos e atendimento ao público, o que ajuda a entender a rotina de quem vai usar o sistema e a transformar necessidades em requisitos claros.

Atuo de ponta a ponta: interface, servidor, banco de dados e publicação, na medida do que cada projeto pede.

Em cada entrega

  • Back-end bem estruturado

    Regras de negócio, aplicação e infraestrutura separadas, com boas práticas de orientação a objetos e SOLID. O sistema cresce sem precisar ser reescrito.

  • Segurança desde o início

    Login protegido, dados validados no servidor, limite de tentativas contra abuso e chaves fora do código. Dados pessoais tratados conforme a LGPD.

  • Interface que se destaca

    Layout responsivo e acessível, com animações e efeitos que dão personalidade ao site, como rolagem suave, textos que se revelam e partículas, sem pesar no carregamento.

ficha-tecnica.sh
nome
Maicon Theodoro
serviços
  • Sites, landing pages e plataformas
  • APIs e integrações
  • Sistemas full stack e scrapers
  • Redesign, refatoração e UI/UX
front-end
Next.js · React · TypeScript · TailwindVer projeto: Giulia Faraj AdvocaciaVer projeto: MyOrbita
back-end
.NET · Python · Node.js · SQLVer projeto: Vitrine Imóveis
formação
ADS · PUC Minas1 destaque acadêmico2 destaques em projetos
experiência
Comunicação e gestão de processos, atendimento ao público e projetos
local
Vespasiano, MG
agenda
aberta
contratação
Autônomo · por projeto

Atendimento remoto em todo o Brasil

Antes de contratar

Que tipos de projeto você desenvolve?
Sites institucionais, landing pages para captação de clientes, portfólios e plataformas web sob medida, como áreas de cliente e painéis administrativos. Também APIs, integrações entre sistemas, sistemas full stack e scrapers para coleta de dados, além de redesign, refatoração e melhoria de UI/UX em projetos existentes.
Como o orçamento é definido?
O valor é calculado a partir do escopo aprovado. Mudanças durante o projeto entram como itens adicionais, combinados antes da execução.
Como funciona o suporte após a entrega?
Manutenção, melhorias e novas funcionalidades podem ser contratadas à parte depois da entrega, com escopo e valor combinados antes.
Qual é o prazo de entrega?
O prazo depende do escopo e fica definido no cronograma aprovado antes do desenvolvimento. Projetos maiores podem ser publicados por etapas, começando por um MVP.

Registro 003

Tecnologias

Ferramentas já aplicadas em projetos publicados, cada uma com o projeto onde foi usada.

Sites e interfaces

Landing pages, portfólios, sites institucionais e painéis
  • Next.js

    Código

    // app/projetos/page.tsxexport default asyncfunction Page() {  const d = await busca();  return <Lista d={d} />;}

    sites rápidos, com SEO e back-end integrado

    1 de 2

    Usado em:LeveMenteeste portfólio

  • React

    Código

    const [n, setN] =  useState(0);<button onClick={() =>  setN(n + 1)}>  {n}</button>

    interfaces e painéis

    1 de 2

    Usado em:Ramo OpsGiulia Faraj AdvocaciaMyOrbitaLeveMente

  • TypeScript

    Código

    type Pedido = {  id: string;  status: "aberto" | "pago";};

    código tipado no front-end e no servidor

    1 de 2

    Usado em:Ramo OpsRefCheatCodeLeveMenteeste portfólio

  • Tailwind CSS

    Código

    <a className="  rounded-pill px-6 py-3  bg-signal text-sheet  hover:-translate-y-0.5">  Fale comigo</a>

    design consistente e responsivo

    1 de 2

    Usado em:Ramo OpsGiulia Faraj AdvocaciaMyOrbitaLeveMenteeste portfólio

  • JavaScript

    Código

    const res = await  fetch("/api/agenda");const horas = await res.json();render(horas.filter(  (h) => h.livre));

    interatividade e animações

    1 de 2

    Usado em:Giulia Faraj AdvocaciaMyOrbitaEstúdio de Ideias

  • HTML · CSS

    Código

    .galeria {  display: grid;  grid-template-columns:    repeat(auto-fit,      minmax(16rem, 1fr));}

    páginas leves e acessíveis

    1 de 2

    Usado em:Estúdio de Ideias

  • Bootstrap

    Código

    <div class="row g-4">  <div class="col-md-6">…</div>  <div class="col-md-6">…</div></div>

    painéis administrativos

    1 de 2

    Usado em:Vitrine Imóveis

Animação e efeitos

Rolagem suave, animações e efeitos visuais
  • GSAP

    Efeito

    animações que acompanham a rolagem, textos que se revelam e seções que se fixam na tela

    1 de 3

    Usado em:Giulia Faraj AdvocaciaRamo Opseste portfólio

  • Lenis

    Efeito

    rolagem suave da página, base das animações por scroll

    1 de 3

    Usado em:Giulia Faraj AdvocaciaRamo Opseste portfólio

  • Motion (Framer Motion)

    Efeito

    animações de botões, menus e transições de tela em React

    1 de 3

    Usado em:MyOrbitaLeveMente

  • tsParticles

    Efeito

    partículas animadas no fundo da página

    1 de 3

    Usado em:Ramo Ops

  • canvas-confetti

    Efeito

    confete na tela para comemorar conquistas e ações concluídas

    1 de 3

    Usado em:LeveMente

Back-end e APIs

Regras de negócio, integrações e automações
  • Node.js

    Código

    app.post("/leads",  async (req, res) => {    await salvar(req.body);    res.status(201).end();  });

    back-end integrado a projetos Next.js

    1 de 2

    Usado em:este portfólio

  • .NET · ASP.NET Core

    Código

    app.MapGet("/imoveis",  async (Db db) =>    await db.Imoveis      .Where(i => i.Ativo)      .ToListAsync());

    APIs e sistemas web

    1 de 2

    Usado em:LeveMenteVitrine Imóveis

  • C#

    Código

    public record Despesa(  string Nome,  decimal Valor,  DateOnly Data);

    regras de negócio e APIs

    1 de 2

    Usado em:LeveMenteVitrine Imóveis

  • Python

    Código

    def total(itens):    return sum(        i["valor"]        for i in itens)

    automação, coleta de dados e APIs

    1 de 2

    Usado em:Ramo OpsMyOrbita

  • Django REST

    Código

    class PedidoViewSet(    ModelViewSet):    queryset = Pedido.objects    permission_classes = [        IsAuthenticated]

    APIs para portais com vários perfis de acesso

    1 de 2

    Usado em:Ramo Ops

  • Flask

    Código

    @app.get("/pokemon/<nome>")def pokemon(nome):    return buscar(nome)

    APIs enxutas

    1 de 2
  • Entity Framework Core

    Código

    model.Entity<Imovel>()  .HasMany(i => i.Fotos)  .WithOne(f => f.Imovel);

    acesso a dados e migrações

    1 de 2

    Usado em:Vitrine Imóveis

Banco de dados

Modelagem, persistência e dados em tempo real
  • SQL

    Código

    SELECT categoria, SUM(valor)FROM despesasWHERE data >= '2026-01-01'GROUP BY categoria;

    modelagem e consulta de dados

    1 de 2

    Usado em:Vitrine Imóveis

  • PostgreSQL · Supabase

    Código

    create policy "dono lê"on pedidos for selectusing (auth.uid() = dono);

    banco de dados gerenciado na nuvem

    1 de 2

    Usado em:Ramo OpsVitrine Imóveis

  • SQL Server

    Código

    CREATE PROCEDURE Resumo  @Mes INT ASSELECT Tipo, SUM(Valor)FROM DespesasWHERE MONTH(Data) = @MesGROUP BY Tipo

    bancos de dados corporativos

    1 de 2
  • Firebase

    Código

    onValue(ref(db, "tarefas"),  (snap) => {    setTarefas(snap.val());  });

    dados em tempo real e autenticação

    1 de 2

    Usado em:MyOrbitaeste portfólio

  • MongoDB Atlas

    Código

    await Sessoes  .find({ paciente: id })  .sort({ data: -1 })  .limit(10);

    banco NoSQL na nuvem, com coleções por módulo

    1 de 2

    Usado em:LeveMente

  • SQLScript · SAP HANA

    Código

    lt_total =  SELECT regiao,    SUM(valor) AS total  FROM :it_vendas  GROUP BY regiao;

    consultas no HANA Studio para o SAP Business One, em uso profissional

    1 de 2

Infraestrutura e publicação

Hospedagem, versionamento e entrega contínua
  • Vercel · Azure · Render

    Código

    # cada push publicagit push origin main→ build→ preview→ produção

    hospedagem e publicação

    1 de 2

    Usado em:Ramo OpsMyOrbitaVitrine ImóveisLeveMenteeste portfólio

  • Git · GitHub Actions

    Código

    on: [push]jobs:  test:    runs-on: ubuntu-latest    steps:      - run: npm test

    versionamento, CI/CD e rotinas agendadas

    1 de 2

    Usado em:Ramo OpsMyOrbitaLeveMente

  • Docker

    Código

    FROM dotnet/aspnet:8.0COPY ./publish /appENTRYPOINT ["dotnet",  "/app/Api.dll"]

    ambientes padronizados, do desenvolvimento à produção

    1 de 2

    Usado em:LeveMente

Bibliotecas

Estado, formulários, coleta de dados, login e APIs
  • Sass

    Código

    .card {  padding: $space-4;  &:hover {    border-color: $brand;  }}

    CSS organizado em variáveis e módulos, para temas próprios

    1 de 2
  • Zustand

    Código

    const useTarefas = create(  (set) => ({    itens: [],    limpar: () =>      set({ itens: [] }),  }));

    dados compartilhados entre telas, como filtros ou carrinho

    1 de 2

    Usado em:MyOrbitaeste portfólio

  • Zod

    Código

    const Lead = z.object({  nome: z.string().min(2),  email: z.email(),});

    confere os dados dos formulários antes de salvar

    1 de 2

    Usado em:LeveMente

  • BeautifulSoup · Requests

    Código

    html = requests.get(url).textsoup = BeautifulSoup(    html, "html.parser")precos = soup.select(    ".preco")

    robôs que coletam dados de sites (web scraping)

    1 de 2

    Usado em:MyOrbitaRamo Ops

  • JWT · OAuth

    Código

    const token = jwt.sign(  { sub: usuario.id },  segredo,  { expiresIn: "1h" },);

    login com e-mail, senha ou Google e acesso protegido às APIs

    1 de 2

    Usado em:LeveMenteRamo Ops

  • Swagger · OpenAPI

    Código

    paths:  /pedidos:    get:      summary: Pedidos      responses:        "200": …

    página onde quem integra vê e testa cada rota da API; usada na API de login do Code Hive (PUC Minas) e num sistema de estoque em .NET

    1 de 2

Testes automatizados

Do navegador às regras de negócio
  • Playwright

    Código

    test("envia contato",  async ({ page }) => {    await page.goto("/");    await page.getByRole(      "button").click();  });

    testes que simulam uma pessoa usando o site, do início ao fim

    1 de 2

    Usado em:Ramo Opseste portfólio

  • Vitest

    Código

    test("soma o carrinho",  () => {    expect(total([10, 5]))      .toBe(15);  });

    testes automáticos de funções e componentes em JavaScript

    1 de 2

    Usado em:LeveMente

  • xUnit

    Código

    [Fact]public void Soma() =>  Assert.Equal(15m,    Carrinho.Total(10m, 5m));

    testes automáticos das regras de negócio em .NET

    1 de 2

    Usado em:LeveMente

Ferramenta definida pelo projeto

A lista reflete o que já foi entregue, não um limite. Cada escolha é registrada e justificada na proposta.

Critérios de escolha

Objetivo antes da ferramenta
Um site de captação prioriza velocidade, SEO e baixo custo de hospedagem. Uma plataforma prioriza regras de negócio, segurança e capacidade de crescer. A ferramenta vem depois dessas prioridades.
Hospedagem com custo previsível
Cada projeto vai para o ambiente que faz sentido para ele, e o custo mensal estimado fica claro na proposta, antes do início.
Manutenção a longo prazo
Ferramentas maduras, bem documentadas e amplamente adotadas pelo mercado, para que o sistema possa ser mantido por qualquer profissional qualificado no futuro.
Só front-end
Quando o objetivo é apresentar a empresa, mostrar serviços e levar o visitante ao contato, a interface pode resolver sozinha: sem servidor próprio nem banco de dados, com hospedagem simples e carregamento rápido.
Com back-end e banco de dados
Quando é preciso guardar informações, ter login, painel administrativo, pagamentos ou integração com outros sistemas, entram API e banco de dados. Isso vale para plataformas e também para landing pages que captam e organizam pedidos.
Pensado para o celular
A interface é desenhada primeiro para a tela do celular, de onde vem boa parte dos visitantes: botões fáceis de tocar, textos legíveis e páginas leves mesmo em conexões lentas.

Registro 004

Método de trabalho

Todo projeto começa pelo entendimento do negócio e segue as mesmas etapas, do levantamento ao termo de aceite. O ritmo de entrega é combinado com cada cliente.

Etapas do projeto

  1. Levantamento

    Objetivo, público e processos viram requisitos registrados por escrito.

  2. Planejamento

    Escopo, cronograma e critérios de aceite aprovados antes do desenvolvimento.

  3. Desenvolvimento

    No formato combinado: um MVP publicado por etapas, com versionamento em Gitflow, ou a entrega completa de uma vez.

  4. Testes

    Testes automatizados em segurança, front-end e back-end antes de cada publicação.

  5. Entrega

    Sistema no ar e documentado, com um termo de aceite que formaliza o que foi entregue.

QuoteService.csC#
// Pedido de orçamento: os dados que chegam pelo site.
public record Quote(string Name, string Contact);

// Regra de negócio, separada da tela e do banco de dados.
public class QuoteService(IQuoteRepository repository)
{
  // Registra o pedido, mas só se der para responder.
  public async Task<Result> RegisterAsync(Quote quote)
  {
    // Sem nome ou contato, devolve o motivo e não salva.
    if (string.IsNullOrWhiteSpace(quote.Name) ||
        string.IsNullOrWhiteSpace(quote.Contact))
      return Result.Fail("Informe nome e contato.");

    // Guarda o pedido; trocar o banco não muda esta regra.
    await repository.SaveAsync(quote);

    // Confirma para quem enviou.
    return Result.Ok();
  }
}
Exemplo ilustrativo em C#, comentado para quem não programa: a regra de negócio fica separada da tela e do banco de dados.

Princípios

Qualidade verificável
Plano de testes definido junto com o escopo e testes automatizados em toda a aplicação, com foco em segurança, front-end e back-end. No Ramo Ops, foram 100 testes no back-end, 19 no agente de monitoramento e 54 de ponta a ponta, com evidências documentadas.
Acompanhamento transparente
Tarefas visíveis em quadro Kanban durante todo o projeto. As validações seguem o formato combinado: a cada etapa publicada, em um MVP, ou na entrega final.
Comunicação sem jargão
Atualizações em linguagem simples, pelo canal que o cliente preferir, com cada decisão técnica explicada pelo impacto no negócio.
Documentação completa
Requisitos, arquitetura, decisões técnicas e testes registrados em cada projeto e entregues junto com o código, para que qualquer pessoa consiga manter o sistema sem depender de quem o construiu.
O código é do cliente
Na entrega, o código-fonte, o repositório com o histórico de mudanças e os acessos ficam com o cliente.
Uso responsável de IA
A inteligência artificial é usada como ferramenta de produtividade. Cada decisão técnica é tomada e validada por mim antes de entrar no sistema.

Registro 005

Projetos

Projetos publicados e em andamento. Os que têm estudo de caso mostram contexto, solução, decisões e resultado em “Ver detalhes”. O código de projetos de clientes é privado e pertence a cada contratante.

Sistemas no ar, projetos entregues e os próximos em desenvolvimento.

ramoops.vercel.app

01 · 2026

Ramo Ops

no arem equipecódigo privado

Projeto do hackathon interno da Ramo: página pública e áreas de acesso para colaboradores, clientes, parceiros de negócio e suporte.

  • React
  • TypeScript
  • Vite
  • Tailwind CSS
  • Django REST
  • PostgreSQL
  • Supabase

01 / 07

Outros projetos

Projeto de cliente em andamento e ferramentas próprias.

  • 06 · 2025

    Vitrine Imóveis

    Portal para uma imobiliária: vitrine de imóveis, captação de contatos e painel administrativo próprio.

    em desenvolvimentoindividualcódigo privado
    Código privado
  • 08 · 2026

    RefCheatCode

    Portal de referência técnica: exemplos de código comentados, do básico ao avançado, com a profundidade da documentação oficial.

    em desenvolvimentoindividualcódigo privado
    Código privado

Registro 006

Depoimentos

Depoimentos de clientes e parceiros, enviados com chave de acesso e publicados somente após verificação.

Os primeiros depoimentos serão publicados em breve.

Registro 007

Vamos conversar sobre o seu projeto

Conte o que você precisa — um site, uma landing page ou uma plataforma — e escolha como prefere receber a resposta: WhatsApp, e-mail ou ligação.

Depois do contato

  1. 01Resposta em até 2 dias, pelo canal que você escolher.
  2. 02Uma conversa para entender o objetivo, o público e o prazo.
  3. 03Proposta por escrito, com escopo, cronograma e valor.
Conversar no WhatsApp (abre em nova aba)

Descreva o seu projeto

Como prefere receber a resposta?

Seus dados são usados apenas para responder a este pedido, não são compartilhados e podem ser excluídos a qualquer momento, mediante solicitação.

MTmaicontheodoro-dev · registro 007 de 007 · 2026