Agent Skills Mudaram a Forma Como Eu Construo Workflows de IA
Eu apaguei quarenta e sete prompts personalizados na terça-feira passada.
Não porque fossem ruins — alguns deles me custaram horas para escrever, testando cada caso extremo, refinando a redação até que meus agentes de IA realmente fizessem o que eu queria. Eles funcionavam. Esse não era o problema.
O problema era que eu tinha escrito as mesmas instruções três vezes diferentes para três ferramentas diferentes. Uma versão para o Claude Code. Outra ajustada para o Cursor. Uma terceira remendada para a integração do Copilot no VS Code. E toda vez que eu melhorava uma versão, as outras duas ficavam desatualizadas. Eu estava gastando mais tempo mantendo minhas instruções de IA do que realmente construindo software.
Então eu descobri agent skills — e percebi que estava resolvendo esse problema completamente errado.
E se existisse um formato único para ensinar agentes de IA a fazer tarefas específicas? Uma pasta, um arquivo de instruções, e toda ferramenta de IA relevante pudesse ler. Sem reescritas. Sem gambiarras específicas de plataforma. Sem copiar e colar entre ferramentas e torcer para que nada quebrasse.
É exatamente isso que agent skills entregam. E depois de passar as últimas semanas convertendo todo o meu workflow para esse formato, posso te dizer — a diferença de produtividade não é incremental. É estrutural. Mas chegar lá exigiu que eu desaprendesse alguns hábitos que construí ao longo de dois anos trabalhando com agentes de IA.
Aqui está o que realmente aconteceu quando eu fiz a mudança.
Por Que Minha Abordagem Antiga Estava Silenciosamente Me Custando Horas
Antes de eu te guiar pelos detalhes técnicos de agent skills, você precisa entender a bagunça com a qual eu estava trabalhando — porque aposto que você está lidando com algo parecido.
Minha configuração parecia organizada na superfície. Eu tinha um diretório .claude com configurações de agente cuidadosamente elaboradas. System prompts armazenados como arquivos markdown. Instruções personalizadas fixadas em várias ferramentas de IA. Tudo etiquetado, tudo documentado.
Mas por baixo dessa superfície arrumada? Caos.
Quando eu queria que minha IA seguisse um padrão específico de design de API — formatos de resposta consistentes, validação com ZOD, tipos TypeScript adequados — eu tinha que codificar essas regras separadamente para cada ferramenta. O Claude Code recebia um CLAUDE.md com as regras. O Cursor recebia seu próprio arquivo .cursorrules. O GitHub Copilot precisava de mais uma configuração diferente.
A pior parte não era a duplicação. Era a divergência.
Eu corrigia um bug nas instruções do Claude Code — digamos, um caso extremo faltando no tratamento de erros — e esquecia de atualizar a versão do Cursor. Aí eu passava vinte minutos debugando por que o Cursor estava gerando endpoints de API sem respostas de erro adequadas, só para perceber que as instruções ali estavam desatualizadas há três semanas.
Soa familiar? Se você está trabalhando com mais de uma ferramenta de IA (e a maioria de nós já está), provavelmente já bateu nesse mesmo muro. A verdadeira questão não é se você precisa de um sistema melhor — é por que ninguém construiu um antes.
Acontece que alguém construiu. E a abordagem é quase constrangedoramente simples.
O Que Agent Skills Realmente São (Sem Buzzwords, Apenas Arquivos)
Eis o que me pegou desprevenido: agent skills não são um framework. Não são uma biblioteca que você instala. Não são um produto SaaS com uma página de preços.
São pastas.
Só isso. Uma pasta contendo um arquivo chamado skill.md. Dentro desse arquivo, você escreve um nome, uma descrição e instruções passo a passo para uma tarefa específica. A IA lê. A IA segue. Pronto.
Deixa eu te mostrar a estrutura real:
my-api-skill/
skill.md
reference/
response-format.ts
validation-patterns.md
E aqui está como um skill.md mínimo se parece:
# API Design Skill
## Description
Builds REST API endpoints following our team's conventions for Next.js applications.
## Instructions
1. Every endpoint must return a consistent response format:
- Success: { success: true, data: T }
- Error: { success: false, error: { code: string, message: string } }
2. Use ZOD for all input validation at the route handler level.
3. Define reusable TypeScript types in a shared types directory.
4. Add structured API logging for every request.
5. Follow RESTful naming conventions for routes.
Quando um agente de IA inicializa, ele não carrega cada arquivo de skill por completo. Isso seria desperdício. Em vez disso, ele lê apenas os nomes e descrições — uma varredura rápida para entender o que está disponível. Quando uma solicitação do usuário corresponde à descrição de uma skill, aí sim as instruções completas são carregadas.
Isso se chama progressive disclosure, e é o mesmo padrão usado em bom design de UI. Mostre o que é necessário, quando for necessário. Nada mais.
A subpasta reference/? É para arquivos de apoio — definições de tipo TypeScript, configurações de exemplo, scripts auxiliares — que só são puxados quando a skill está sendo usada ativamente. Seu agente de IA não está queimando janela de contexto com arquivos que ele ainda não precisa.
Lembro de ler a especificação pela primeira vez e pensar: "Isso é simples demais. Qual é a pegadinha?"
Não tem pegadinha. E a simplicidade é o ponto — é o que torna a próxima parte possível.
A Promessa Cross-Platform (E Se Ela Realmente Entrega)
É aqui que agent skills deixam de ser "uma convenção de pastas legal" e se tornam genuinamente interessantes.
O mesmo arquivo skill.md funciona no Claude Code, Cursor, VS Code, GitHub, Goose, Letta, AMP, Open Code, Gemini CLI e Factory. Um arquivo. Múltiplas plataformas. Sem reescritas.
Eu fiquei cético quando ouvi isso pela primeira vez. Cético do jeito que você fica quando alguém promete um carregador universal que funciona com todos os dispositivos. O marketing sempre soa ótimo. A realidade geralmente envolve três adaptadores e uma reza.
Então eu testei.
Peguei minha skill de design de API — aquela que mostrei acima — e usei em três contextos diferentes, um após o outro:
Claude Code (terminal): Pedi para ele construir uma API CRUD para um módulo de gerenciamento de usuários. Ele carregou a skill, seguiu todas as regras, gerou endpoints com formatos de resposta consistentes, validação ZOD, tipos adequados. Até rodou comandos curl para verificar se os endpoints funcionavam.
Cursor (IDE): Mesmo pedido, projeto diferente. O Cursor pegou a skill do diretório do projeto, aplicou as mesmas convenções. O código gerado era estruturalmente idêntico ao que o Claude Code produziu.
VS Code com Copilot: Caminho de integração ligeiramente diferente, mas a skill carregou e a saída seguiu minhas regras.
Três ferramentas. Mesmas instruções. Saída consistente.
Não vou fingir que a experiência foi perfeitamente idêntica. Cada ferramenta tem sua própria personalidade — o Claude Code tende a ser mais minucioso nos testes, o Cursor se integra mais fortemente com o arquivo que você está editando, o Copilot funciona melhor para sugestões inline. Mas as regras foram seguidas de forma consistente. Essa é a parte que importa.
Agora, preciso ser honesto sobre algo que a maioria das pessoas que falam superficialmente sobre agent skills não vai te contar. A consistência depende de quão bem você escreve a skill. Instruções vagas produzem resultados vagos independentemente da plataforma. Vou entrar no que torna um arquivo de skill realmente eficaz na seção de implementação — porque aprendi algumas lições duras aí.
Mas primeiro, existe um conceito arquitetural mais profundo aqui que muda a forma como você deveria pensar sobre customização de ferramentas de IA por completo.
A Mudança de Mentalidade: De Prompts a Skills Portáveis
Eu costumava pensar em customização de IA como engenharia de prompts. Escreva um prompt melhor, obtenha um resultado melhor. Ajuste as instruções do sistema. Adicione mais exemplos. Itere na redação.
Esse modelo mental funciona bem quando você está usando uma ferramenta. No segundo em que você está trabalhando com múltiplos agentes de IA — e, sejamos honestos, esse é o padrão para a maioria dos desenvolvedores agora — engenharia de prompts se torna gerenciamento de prompts. E gerenciamento de prompts é uma batalha perdida.
Agent skills invertem o modelo. Em vez de customizar cada ferramenta de IA individualmente, você cria uma biblioteca de skills que qualquer ferramenta pode consumir. As skills vivem no seu projeto, não na configuração de uma ferramenta. Elas viajam com sua base de código. São versionadas com git. São revisáveis em pull requests.
Pense assim. Imagine que você contratou cinco prestadores de serviço e deu a cada um um briefing verbal separado sobre seus padrões de código. Alguns lembrariam dos detalhes. Alguns esqueceriam coisas. Nenhum deles teria um entendimento idêntico.
Agora imagine que você escreveu um documento claro de padrões e entregou a mesma cópia para todos os prestadores. Isso são agent skills. O documento não muda com base em quem está lendo. As expectativas são uniformes.
Essa mudança tem um efeito composto que eu não antecipei. Quando as skills são portáveis, você começa a investir mais em escrevê-las bem. Você sabe que o esforço vai compensar em todas as ferramentas que você usa. Com instruções específicas de plataforma, sempre tem uma voz no fundo da sua cabeça dizendo "vale a pena otimizar isso se eu posso trocar de ferramenta no mês que vem?"
Com agent skills, a resposta é sempre sim. A skill sobrevive à ferramenta.
Essa percepção mudou como eu aloco meu tempo. Passo menos tempo configurando ferramentas e mais tempo construindo uma biblioteca de skills. E essa biblioteca fica mais valiosa a cada skill que eu adiciono.
Deixa eu te mostrar exatamente como construir uma que realmente funciona — porque a diferença entre uma skill medíocre e uma eficaz é maior do que você imagina.
Construindo Sua Primeira Agent Skill (Passo a Passo, Com o Que Eu Errei)
Aqui está o processo que eu adotei depois de converter cerca de trinta workflows em agent skills. Vou te guiar na construção de uma skill de design de API do zero, incluindo os erros que cometi na primeira vez.
Passo 1: Crie o Diretório da Skill
mkdir -p skills/api-design
touch skills/api-design/skill.md
Coloque a pasta da skill onde fizer sentido para o seu projeto. A maioria dos times mantém um diretório skills/ na raiz do projeto. Alguns usam .agent/skills/. A localização não importa tanto quanto a consistência — escolha uma e mantenha.
O que eu errei na primeira vez: Coloquei as skills dentro de .claude/ pensando que era específico do Claude. Aí quando tentei usar a mesma skill no Cursor, ele não procurou lá. Mantenha as skills em um local neutro de plataforma.
Passo 2: Escreva a Descrição (Isso É Mais Importante Do Que Você Pensa)
A descrição é a primeira coisa que a IA lê. Ela determina se sua skill será carregada ou ignorada. Uma descrição ruim significa que suas instruções perfeitamente escritas nunca verão a luz do dia.
# API Design
## Description
Creates REST API endpoints for Next.js applications with consistent response
formats, ZOD input validation, shared TypeScript types, and structured logging.
Use this skill when building any new API route or modifying existing endpoints.
Dica profissional: Inclua frases de gatilho na descrição. "Use this skill when..." diz à IA exatamente quando ativá-la. Descobri que skills com condições de ativação explícitas são correspondidas cerca de 3x mais confiavelmente do que skills com descrições passivas.
O que eu errei na primeira vez: Minha primeira descrição era "API stuff for our project." A IA não fazia ideia de quando usá-la. Seja específico sobre o que a skill faz e quando ela se aplica.
Passo 3: Escreva Instruções Cristalinas
É aqui que as skills da maioria das pessoas desmoronam. Elas escrevem instruções como se estivessem explicando algo para um desenvolvedor sênior que já conhece a base de código. Mas a IA não tem esse contexto. Você precisa ser explícito.
## Instructions
### Response Format
Every API endpoint MUST return responses in this exact format:
Success response:
```typescript
{
success: true,
data: T,
meta?: {
page?: number;
totalPages?: number;
totalItems?: number;
}
}
Error response:
{
success: false,
error: {
code: string; // e.g., "VALIDATION_ERROR", "NOT_FOUND"
message: string; // Human-readable error message
details?: unknown; // Optional additional context
}
}
Input Validation
- Use ZOD schemas for ALL request body and query parameter validation
- Define schemas at the top of each route file
- Return 400 with VALIDATION_ERROR code when validation fails
- Include ZOD error details in the error response details field
Type Definitions
- Create shared types in
src/types/api/[resource].ts - Export both the ZOD schema and inferred TypeScript type
- Example:
import { z } from 'zod';
export const CreateUserSchema = z.object({
name: z.string().min(1).max(100),
email: z.string().email(),
role: z.enum(['admin', 'user', 'viewer']),
});
export type CreateUserInput = z.infer<typeof CreateUserSchema>;
Logging
- Log every request with: method, path, status code, response time
- Use structured JSON logging format
- Include request ID header (X-Request-ID) if present
- Never log sensitive fields (password, token, apiKey)
Route Structure
- File location:
src/app/api/[resource]/route.ts - Use Next.js App Router conventions
- One file per resource, with GET/POST/PUT/DELETE handlers
- Apply authentication middleware before validation
Perceba como isso é específico. Eu não estou dizendo "use uma boa validação." Estou mostrando a biblioteca exata, o formato exato, os caminhos de arquivo exatos. A IA não pode interpretar errado porque não há nada para interpretar — é uma especificação.
### Passo 4: Adicione Arquivos de Referência (Opcional mas Poderoso)
Para skills complexas, inclua arquivos de apoio que a IA pode referenciar:
```bash
mkdir skills/api-design/reference
Então adicione arquivos como response-format.ts com definições de tipo completas, ou example-route.ts com um endpoint totalmente implementado que a IA pode usar como template.
// skills/api-design/reference/example-route.ts
import { NextRequest, NextResponse } from 'next/server';
import { CreateUserSchema } from '@/types/api/user';
import { logger } from '@/lib/logger';
export async function POST(req: NextRequest) {
const startTime = Date.now();
const requestId = req.headers.get('x-request-id') ?? crypto.randomUUID();
try {
const body = await req.json();
const parsed = CreateUserSchema.safeParse(body);
if (!parsed.success) {
logger.warn({ requestId, errors: parsed.error.flatten() });
return NextResponse.json(
{
success: false,
error: {
code: 'VALIDATION_ERROR',
message: 'Invalid request body',
details: parsed.error.flatten(),
},
},
{ status: 400 }
);
}
// ... create user logic
const user = await createUser(parsed.data);
logger.info({
requestId,
method: 'POST',
path: '/api/users',
status: 201,
responseTime: Date.now() - startTime,
});
return NextResponse.json({ success: true, data: user }, { status: 201 });
} catch (error) {
logger.error({ requestId, error });
return NextResponse.json(
{
success: false,
error: {
code: 'INTERNAL_ERROR',
message: 'An unexpected error occurred',
},
},
{ status: 500 }
);
}
}
A IA carrega esses arquivos de referência apenas quando a skill está ativa. Progressive disclosure em ação — seu agente não está carregando o peso de todos os arquivos de referência o tempo todo.
Passo 5: Teste a Skill em Diferentes Plataformas
Este é o passo que a maioria das pessoas pula, e é o passo que te poupa mais dor de cabeça depois.
Abra o Claude Code e peça: "Crie uma API CRUD para gerenciar posts de blog." Observe se ele carrega sua skill. Verifique se a saída segue todas as regras. Ele usou ZOD? O formato de resposta está correto? Os tipos estão no diretório certo?
Depois repita no Cursor. Depois nas suas outras ferramentas.
Eu mantenho um checklist simples para cada skill:
## Skill Validation Checklist
- [ ] Claude Code loads and follows skill correctly
- [ ] Cursor loads and follows skill correctly
- [ ] Output matches all specified formats
- [ ] Edge cases handled (empty input, invalid types, etc.)
- [ ] Reference files load when needed
- [ ] No conflicting instructions with other skills
Se você chegou até aqui, já tem uma agent skill funcionando. A maioria dos tutoriais para aqui. Mas o poder real aparece quando você começa a construir uma biblioteca de skills — e é para lá que eu quero levar isso agora.
Construindo uma Biblioteca de Skills Que Realmente Tem Efeito Composto
Uma skill é útil. Uma biblioteca de skills que trabalham juntas? Isso é um multiplicador que eu não vi chegando.
Depois que minha skill inicial de design de API funcionou, comecei a converter outros workflows:
skills/
api-design/
skill.md
reference/
testing-strategy/
skill.md
reference/
database-migrations/
skill.md
code-review/
skill.md
documentation/
skill.md
deployment-checklist/
skill.md
Cada skill lida com um aspecto diferente do meu workflow de desenvolvimento. Mas aqui é onde fica interessante — a IA começa a combiná-las.
Quando eu peço ao Claude Code para "construir uma nova funcionalidade de gerenciamento de usuários," ele não carrega apenas a skill de design de API. Ele reconhece que o pedido toca múltiplos domínios e carrega as skills relevantes em sequência. Design de API para os endpoints. Estratégia de testes para os arquivos de teste. Migrações de banco de dados para as mudanças de schema.
Eu não programei esse comportamento explicitamente. A IA descobriu as conexões a partir das descrições das skills. Esse é o efeito composto — skills bem descritas se tornam componentes em um sistema maior que a IA pode orquestrar.
Um padrão que me surpreendeu: skills que escrevi para um projeto acabaram sendo úteis em projetos completamente diferentes. Minha skill de estratégia de testes — originalmente escrita para um app SaaS em Next.js — funciona perfeitamente para um projeto de API em Express.js também. As convenções são transferíveis porque eu as escrevi no nível certo de abstração.
Dica profissional: Ao escrever skills, pergunte a si mesmo: "Essa instrução faria sentido em um projeto diferente usando a mesma stack de tecnologia?" Se a resposta for sim, você encontrou o nível certo de abstração. Se a instrução referencia caminhos específicos do projeto ou lógica de negócios, é específica demais. Extraia o padrão geral e mantenha os detalhes específicos do projeto nos arquivos de referência.
O ângulo comunitário torna isso ainda mais valioso. Skills são apenas pastas com arquivos markdown. São trivialmente compartilháveis. Comecei a puxar skills da coleção open-source no GitHub e adaptá-las. Uma skill de auditoria de segurança que alguém compartilhou me economizou uma tarde inteira escrevendo a minha. Ajustei talvez 10% das instruções e funcionou perfeitamente.
É aqui que agent skills deixam de ser um hack pessoal de produtividade e começam a parecer um ecossistema. Mas eu estaria te fazendo um desserviço se não falasse sobre o que ainda não funciona.
A Verdade Honesta Sobre o Que Agent Skills Ainda Não Conseguem Fazer
Olha, eu estou genuinamente entusiasmado com essa abordagem. Mas estou em tech há tempo suficiente para saber que entusiasmo acrítico é inútil. Aqui é onde eu encontrei limitações reais.
A pressão na janela de contexto é real. Se você tem vinte skills carregadas e a IA tenta ativar três delas simultaneamente para uma tarefa complexa, você está consumindo uma parte significativa da sua janela de contexto só com instruções. Já passei por situações onde o Claude Code carregou tantas instruções de skills que o espaço real de conversa ficou apertado. O modelo de progressive disclosure ajuda, mas não é uma solução completa para projetos com muitas skills.
Minha solução alternativa: mantenho um máximo de 8-10 skills por projeto. Se preciso de mais, divido entre sub-projetos ou crio skills compostas que combinam instruções relacionadas em um único arquivo.
Conflitos entre skills são um problema real. Eu tinha duas skills que ambas queriam ditar o formato de tratamento de erros — minha skill de design de API e uma skill legada de tratamento de erros de uma biblioteca compartilhada. A IA ficou confusa sobre quais regras tinham prioridade e produziu saída inconsistente. Agent skills ainda não têm um sistema de precedência embutido.
O que ajudou: agora incluo uma seção ## Priority em cada skill. Algo como "This skill's error handling rules override any conflicting instructions from other skills." É uma solução manual, mas funciona.
Nem todas as ferramentas de IA implementam skills igualmente. Embora o formato seja padrão, a qualidade do carregamento de skills varia por plataforma. O Claude Code, na minha experiência, lida com skills da forma mais confiável. O Cursor vem logo atrás. Algumas ferramentas mais novas suportam o formato mas não lidam com o progressive disclosure tão suavemente — elas carregam tudo de uma vez ou perdem arquivos de referência.
Escrever boas skills exige esforço real. Isso não é um atalho. Uma skill mal escrita é pior do que nenhuma skill, porque dá à IA instruções confiantemente erradas. Gastei cerca de 90 minutos na minha skill de design de API — escrevendo, testando, revisando, testando de novo. Esse investimento compensa ao longo do tempo, mas não espere produzir uma skill de qualidade de produção em dez minutos.
Também cometi um erro no início que me custou tempo: tentei fazer skills abrangentes demais. Uma única skill que cobre design de API, testes, documentação E deploy é ampla demais. As instruções se tornam uma parede de texto e a IA perde o foco no que importa para a tarefa atual. Skills menores e focadas que se compõem bem superam conjuntos de instruções monolíticos toda vez.
Dito isso — mesmo com essas limitações, o antes e depois do meu workflow é dramático. Deixa eu te mostrar os números reais.
O Que Mudou Depois de Três Semanas de Agent Skills
Eu rastreei meu workflow por três semanas após converter para agent skills. Aqui está o que os dados mostram.
Tempo gasto mantendo instruções de IA: Caiu de aproximadamente 3 horas por semana para cerca de 20 minutos. Isso é uma redução de 90%. O modelo de fonte única de verdade elimina o problema de divergência inteiramente.
Consistência entre ferramentas: Antes das skills, eu estimaria talvez 60% de consistência quando o mesmo pedido ia para diferentes ferramentas de IA. Depois das skills, está mais perto de 90-95%. A lacuna restante se deve a comportamentos específicos da ferramenta, não a diferenças de instrução.
Onboarding de novas ferramentas: Quando adicionei uma nova ferramenta de IA ao meu workflow na semana passada, o tempo de configuração foi essencialmente zero. Coloque a pasta de skills dentro. Pronto. Antes de agent skills, integrar uma nova ferramenta significava gastar 2-3 horas reescrevendo todas as minhas instruções personalizadas para o novo formato.
Tempo de code review em código gerado por IA: Caiu aproximadamente 40%. Quando a IA segue padrões consistentes, a revisão passa a ser sobre verificar lógica em vez de verificar convenções. Eu sei que o formato de resposta estará correto. Eu sei que a abordagem de validação estará correta. Posso focar meu tempo de revisão na lógica de negócios.
Número de momentos "a IA fez errado" por semana: Difícil de quantificar exatamente, mas notavelmente menos. Eu estimaria uma redução de 50-60%. A maioria dos problemas restantes são ambiguidade genuína no meu pedido, não a IA entendendo errado as instruções.
Ganhos rápidos que você pode esperar na primeira semana: formatação de código consistente, padrões de validação confiáveis, e não ter que re-explicar suas convenções toda vez que troca de ferramenta.
Ganhos de longo prazo que levam 2-3 semanas para se materializar: o efeito composto da biblioteca, reutilização de skills entre projetos, e as skills da comunidade que você vai começar a descobrir e adaptar.
Uma coisa que vale mencionar — a própria medição mudou meu comportamento. Saber que minhas skills estavam sendo rastreadas por consistência me fez escrever skills melhores. Se você for tentar isso, eu recomendaria manter pelo menos um registro aproximado do que funciona e do que não funciona. Isso acelera o ciclo de iteração significativamente.
O Desafio de Vinte e Quatro Horas
Seis meses atrás, eu estava mantendo instruções separadas para cada ferramenta de IA no meu stack. Hoje, tenho uma biblioteca portável de skills que funciona em qualquer lugar, melhora a cada projeto e leva minutos para estender.
A mudança não exigiu aprender um novo framework ou adotar um sistema complexo. Exigiu uma pasta, um arquivo markdown, e a disciplina de escrever instruções com clareza suficiente para que qualquer ferramenta de IA pudesse segui-las.
Aqui está o que eu te desafio a fazer antes dessa hora amanhã: escolha um workflow que você repete entre ferramentas de IA — regras de code review, convenções de API, padrões de teste, padrões de documentação — e transforme-o em uma agent skill. Um arquivo skill.md. Teste em duas ferramentas diferentes.
Você vai saber em uma hora se essa abordagem funciona para o seu workflow. E se a sua experiência for parecida com a minha, você vai passar o resto da semana convertendo todos os outros workflows para acompanhar.
Os recursos estão disponíveis. A especificação está documentada em agentskills.io. Skills de exemplo estão disponíveis no GitHub. A comunidade está construindo e compartilhando skills abertamente.
A única questão é se você continua mantendo cinco cópias das mesmas instruções — ou escreve uma vez e deixa toda ferramenta ler da mesma página.
Eu sei para qual eu nunca mais volto.
Let's Work Together
Looking to build AI systems, automate workflows, or scale your tech infrastructure? I'd love to help.
- Fiverr (custom builds & integrations): fiverr.com/s/EgxYmWD
- Portfolio: mejba.me
- Ramlit Limited (enterprise solutions): ramlit.com
- ColorPark (design & branding): colorpark.io
- xCyberSecurity (security services): xcybersecurity.io