Transformo ideias em código limpo, experiências digitais em soluções reais.
Desenvolvedor apaixonado por criar aplicações modernas, escaláveis e com código de qualidade. Especialista em transformar requisitos complexos em soluções elegantes.
Com experiência em todo o ciclo de desenvolvimento, do protótipo à produção, entrego produtos que unem performance, usabilidade e design.
Este projeto é um Gerador de QR Code desenvolvido em Python. Ele permite ao usuário inserir um texto e gera um QR Code correspondente, que é exibido na interface gráfica do usuário. O usuário também tem a opção de salvar o QR Code gerado como um arquivo PDF, que é automaticamente aberto após ser salvo.
Trechos de código que uso no dia adia — componentes reutilizáveis, padrões de design e utilitários.
import { useState, useEffect } from 'react';
interface UseFetchResult<T> {
data: T | null;
loading: boolean;
error: string | null;
}
export function useFetch<T>(
url: string
): UseFetchResult<T> {
const [data, setData] = useState<T | null>(null);
const [loading, setLoading] = useState(true);
const [error, setError] = useState<string | null>(null);
useEffect(() => {
const fetchData = async () => {
try {
const res = await fetch(url);
if (!res.ok) throw new Error(res.statusText);
const json = await res.json();
setData(json);
} catch (err) {
setError((err as Error).message);
} finally {
setLoading(false);
}
};
fetchData();
}, [url]);
return { data, loading, error };
}
/* Layout auto-ajustável */
.auto-grid {
display: grid;
grid-template-columns: repeat(
auto-fit,
minmax(280px, 1fr)
);
gap: 1.5rem;
padding: 1rem;
}
/* Card com hover suave */
.card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 12px;
transition: transform 0.3s ease,
box-shadow 0.3s ease;
}
.card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 24px rgba(124, 58, 237, 0.15);
}
import { memo, useCallback } from 'react';
interface ButtonProps {
label: string;
variant: 'primary' | 'secondary';
onClick: () => void;
}
export const Button = memo(({
label,
variant,
onClick
}: ButtonProps) => {
const classes = [
'btn',
`btn--${variant}`
].join(' ');
return (
<button className={classes} onClick={onClick}>
{label}
</button>
);
});
Button.displayName = 'Button';
from functools import wraps
import time
def timed(func):
"""Mede o tempo de execução."""
@wraps(func)
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
elapsed = time.perf_counter() - start
print(f"{func.__name__} levou {elapsed:.3f}s")
return result
return wrapper
@timed
def process_data(items):
return [item ** 2 for item in items]
# Uso:
result = process_data(range(1000))
Tem um projeto em mente? Vou adorar ouvir sobre ele. Mande uma mensagem e respondo em até 24 horas.