Skip to content

Maicon Theodoro

Portrait of Maicon Theodoro, wearing glasses, with hands resting under the chin
Available for new projectsVespasiano, MG · Brazil

Custom software developer. Websites, landing pages and web platforms that attract clients and streamline operations, from requirements to launch, built with the technology best suited to each project.

Entry 002

Technology that serves your business

I'm Maicon Theodoro, a software developer based in Vespasiano, Brazil. I build custom websites, landing pages and web platforms for companies and professionals who need to win clients, organize their processes and grow on a solid foundation.

I also have experience in communication, process management and customer service, which helps me understand the routine of the people who will use the system and turn needs into clear requirements.

I work end to end: interface, server, database and deployment, to the extent each project needs.

In every delivery

  • A well-structured back end

    Business rules, application and infrastructure kept apart, following object-oriented good practices and SOLID. The system grows without being rewritten.

  • Security from day one

    Protected sign-in, data validated on the server, attempt limits against abuse and secrets kept out of the code. Personal data handled under Brazil's LGPD.

  • An interface that stands out

    Responsive, accessible layouts with animation and effects that give the site personality, such as smooth scrolling, revealing text and particles, without slowing it down.

spec-sheet.sh
name
Maicon Theodoro
services
  • Websites, landing pages and platforms
  • APIs and integrations
  • Full-stack systems and scrapers
  • Redesign, refactoring and UI/UX
front end
Next.js · React · TypeScript · TailwindView project: Giulia Faraj AdvocaciaView project: MyOrbita
back end
.NET · Python · Node.js · SQLView project: Vitrine Imóveis
education
Systems Development · PUC Minas1 academic distinction2 project distinctions
background
Communication and process management, customer service and projects
location
Vespasiano, MG
availability
open
engagement
Freelance · per project

Working remotely with clients in Brazil and abroad

Before you hire

What kinds of projects do you build?
Institutional websites, lead-generation landing pages, portfolios and custom web platforms, such as client portals and admin dashboards. Also APIs, system integrations, full-stack systems and data scrapers, plus redesigns, refactoring and UI/UX improvements to existing projects.
How is the budget defined?
The price is based on the approved scope. Changes during the project are handled as additional items, agreed before they are carried out.
What support is available after delivery?
Maintenance, improvements and new features can be contracted separately after delivery, with scope and price agreed in advance.
How long does a project take?
The timeline depends on the scope and is set in the schedule approved before development starts. Larger projects can be released in stages, starting with an MVP.

Entry 003

Technologies

Tools already applied in published projects, each linked to the project where it was used.

Websites and interfaces

Landing pages, portfolios, institutional websites and dashboards
  • Next.js

    Code

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

    fast websites with SEO and an integrated back end

    1 of 2

    Used in:LeveMentethis portfolio

  • React

    Code

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

    interfaces and dashboards

    1 of 2

    Used in:Ramo OpsGiulia Faraj AdvocaciaMyOrbitaLeveMente

  • TypeScript

    Code

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

    typed code on the front end and the server

    1 of 2

    Used in:Ramo OpsRefCheatCodeLeveMentethis portfolio

  • Tailwind CSS

    Code

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

    consistent, responsive design

    1 of 2

    Used in:Ramo OpsGiulia Faraj AdvocaciaMyOrbitaLeveMentethis portfolio

  • JavaScript

    Code

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

    interactivity and animation

    1 of 2

    Used in:Giulia Faraj AdvocaciaMyOrbitaEstúdio de Ideias

  • HTML · CSS

    Code

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

    lightweight, accessible pages

    1 of 2

    Used in:Estúdio de Ideias

  • Bootstrap

    Code

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

    admin dashboards

    1 of 2

    Used in:Vitrine Imóveis

Animation and effects

Smooth scrolling, animation and visual effects
  • GSAP

    Effect

    scroll-driven animation, revealing text and sections pinned on screen

    1 of 3

    Used in:Giulia Faraj AdvocaciaRamo Opsthis portfolio

  • Lenis

    Effect

    smooth page scrolling, the base for scroll animations

    1 of 3

    Used in:Giulia Faraj AdvocaciaRamo Opsthis portfolio

  • Motion (Framer Motion)

    Effect

    button, menu and screen-transition animations in React

    1 of 3

    Used in:MyOrbitaLeveMente

  • tsParticles

    Effect

    animated particles in the page background

    1 of 3

    Used in:Ramo Ops

  • canvas-confetti

    Effect

    on-screen confetti to celebrate achievements and completed actions

    1 of 3

    Used in:LeveMente

Back end and APIs

Business rules, integrations and automation
  • Node.js

    Code

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

    back end integrated into Next.js projects

    1 of 2

    Used in:this portfolio

  • .NET · ASP.NET Core

    Code

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

    APIs and web systems

    1 of 2

    Used in:LeveMenteVitrine Imóveis

  • C#

    Code

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

    business rules and APIs

    1 of 2

    Used in:LeveMenteVitrine Imóveis

  • Python

    Code

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

    automation, data collection and APIs

    1 of 2

    Used in:Ramo OpsMyOrbita

  • Django REST

    Code

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

    APIs for portals with multiple access roles

    1 of 2

    Used in:Ramo Ops

  • Flask

    Code

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

    lean APIs

    1 of 2
  • Entity Framework Core

    Code

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

    data access and migrations

    1 of 2

    Used in:Vitrine Imóveis

Databases

Data modeling, persistence and real-time data
  • SQL

    Code

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

    data modeling and queries

    1 of 2

    Used in:Vitrine Imóveis

  • PostgreSQL · Supabase

    Code

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

    managed cloud database

    1 of 2

    Used in:Ramo OpsVitrine Imóveis

  • SQL Server

    Code

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

    enterprise databases

    1 of 2
  • Firebase

    Code

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

    real-time data and authentication

    1 of 2

    Used in:MyOrbitathis portfolio

  • MongoDB Atlas

    Code

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

    cloud NoSQL database, with collections per module

    1 of 2

    Used in:LeveMente

  • SQLScript · SAP HANA

    Code

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

    queries in HANA Studio for SAP Business One, in professional use

    1 of 2

Infrastructure and delivery

Hosting, version control and continuous delivery
  • Vercel · Azure · Render

    Code

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

    hosting and deployment

    1 of 2

    Used in:Ramo OpsMyOrbitaVitrine ImóveisLeveMentethis portfolio

  • Git · GitHub Actions

    Code

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

    version control, CI/CD and scheduled jobs

    1 of 2

    Used in:Ramo OpsMyOrbitaLeveMente

  • Docker

    Code

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

    consistent environments from development to production

    1 of 2

    Used in:LeveMente

Libraries

State, forms, data collection, sign-in and APIs
  • Sass

    Code

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

    CSS organized with variables and modules, for custom themes

    1 of 2
  • Zustand

    Code

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

    data shared across screens, such as filters or a cart

    1 of 2

    Used in:MyOrbitathis portfolio

  • Zod

    Code

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

    checks form data before it is saved

    1 of 2

    Used in:LeveMente

  • BeautifulSoup · Requests

    Code

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

    bots that collect data from websites (web scraping)

    1 of 2

    Used in:MyOrbitaRamo Ops

  • JWT · OAuth

    Code

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

    sign-in with email, password or Google, and protected API access

    1 of 2

    Used in:LeveMenteRamo Ops

  • Swagger · OpenAPI

    Code

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

    a page where integrators see and try every API route; used in the Code Hive sign-in API (PUC Minas) and a .NET inventory system

    1 of 2

Automated testing

From the browser to business rules
  • Playwright

    Code

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

    tests that simulate a person using the site, end to end

    1 of 2

    Used in:Ramo Opsthis portfolio

  • Vitest

    Code

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

    automated tests for JavaScript functions and components

    1 of 2

    Used in:LeveMente

  • xUnit

    Code

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

    automated tests for business rules in .NET

    1 of 2

    Used in:LeveMente

Tools defined by the project

This list reflects what has already been delivered, not a limit. Every choice is documented and justified in the proposal.

Selection criteria

Goals before tools
A lead-generation website prioritizes speed, SEO and low hosting costs. A platform prioritizes business rules, security and room to grow. The tool comes after these priorities.
Predictable hosting costs
Each project goes to the environment that makes sense for it, and the estimated monthly cost is clear in the proposal before work begins.
Long-term maintainability
Mature, well-documented and widely adopted tools, so the system can be maintained by any qualified professional in the future.
Front end only
When the goal is to present the business, show its services and lead visitors to get in touch, the interface can do the job on its own: no dedicated server or database, simple hosting and fast loading.
With a back end and database
When the project needs to store information, offer sign-in, an admin panel, payments or integrations with other systems, an API and a database come in. That applies to platforms and also to landing pages that capture and organize requests.
Designed for mobile
The interface is designed for the phone screen first, where much of the traffic comes from: easy-to-tap buttons, readable text and light pages even on slow connections.

Entry 004

Work process

Every project starts with understanding the business and follows the same stages, from discovery to the signed acceptance. The delivery pace is agreed with each client.

Project stages

  1. Discovery

    Goals, audience and processes become requirements recorded in writing.

  2. Planning

    Scope, schedule and acceptance criteria approved before development.

  3. Development

    In the agreed format: an MVP released in stages, with Gitflow versioning, or the complete delivery at once.

  4. Testing

    Automated tests covering security, front end and back end before every release.

  5. Delivery

    The system goes live and documented, with a signed acceptance that formalizes what was delivered.

QuoteService.csC#
// Quote request: the data that arrives from the website.
public record Quote(string Name, string Contact);

// Business rule, kept apart from the screen and database.
public class QuoteService(IQuoteRepository repository)
{
  // Registers the request, but only if it can be answered.
  public async Task<Result> RegisterAsync(Quote quote)
  {
    // No name or contact: return the reason, save nothing.
    if (string.IsNullOrWhiteSpace(quote.Name) ||
        string.IsNullOrWhiteSpace(quote.Contact))
      return Result.Fail("Name and contact are required.");

    // Store it; changing the database keeps this rule.
    await repository.SaveAsync(quote);

    // Confirm to the sender.
    return Result.Ok();
  }
}
Illustrative C# example, commented for non-programmers: business rules stay separate from the screen and the database.

Principles

Verifiable quality
A test plan defined alongside the scope and automated tests across the whole application, focused on security, front end and back end. Ramo Ops shipped with 100 back-end tests, 19 monitoring-agent tests and 54 end-to-end tests, with documented evidence.
Transparent progress
Tasks visible on a Kanban board throughout the project. Reviews follow the agreed format: at every published stage, for an MVP, or at final delivery.
Plain-language communication
Updates in plain language, through the channel the client prefers, with every technical decision explained by its business impact.
Complete documentation
Requirements, architecture, technical decisions and tests recorded in every project and delivered with the code, so anyone can maintain the system without depending on whoever built it.
The code belongs to the client
At delivery, the source code, the repository with its change history and all access credentials stay with the client.
Responsible use of AI
Artificial intelligence is used as a productivity tool. Every technical decision is made and validated by me before it goes into the system.

Entry 005

Projects

Published and ongoing projects. Those with a case study show context, solution, decisions and outcome under “View details”. Client source code is private and belongs to each client.

Live systems, delivered projects and the next ones in development.

ramoops.vercel.app

01 · 2026

Ramo Ops

liveteamprivate code

Built at Ramo's internal hackathon: a public website and access areas for employees, clients, business partners and support.

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

01 / 07

Other projects

Ongoing client work and in-house tools.

  • 06 · 2025

    Vitrine Imóveis

    Real estate portal: property showcase, lead capture and a dedicated admin panel.

    in developmentsoloprivate code
    Private code
  • 08 · 2026

    RefCheatCode

    Technical reference portal: annotated code examples from basic to advanced, with the depth of official documentation.

    in developmentsoloprivate code
    Private code

Entry 006

Testimonials

Testimonials from clients and partners, submitted with an access key and published only after verification.

The first testimonials will be published soon.

Entry 007

Let's talk about your project

Tell me what you need — a website, a landing page or a platform — and choose how you'd like to hear back: WhatsApp, email or a phone call.

After you get in touch

  1. 01A reply within 2 days, through the channel you choose.
  2. 02A conversation to understand your goals, audience and timeline.
  3. 03A written proposal with scope, schedule and price.
Chat on WhatsApp (opens in a new tab)

Describe your project

How would you like me to reply?

Your data is used only to reply to this request, is never shared and can be deleted at any time upon request.

MTmaicontheodoro-dev · entry 007 of 007 · 2026