Hola, soy Victor Grajales

Desarrollador Backend de Colombia, especializado en crear soluciones web robustas y eficientes con Node.js.

3+ Años de Experiencia
15+ Proyectos Completados
500+ Endpoints Desarrollados
Hablemos de tu proyecto

Sobre Mí

Con más de 3 años de experiencia, he dedicado mi carrera a construir y optimizar el motor que impulsa las aplicaciones web. Mi viaje en la programación comenzó a los 18 años y desde entonces, mi pasión ha sido transformar ideas complejas en software funcional y escalable.

Soy Tecnólogo en Desarrollo de Software del SENA y he fortalecido mis habilidades con formación continua en NestJS, Next.JS y arquitecturas de software modernas. Actualmente, colaboro en proyectos como desarrollador freelance.

Experiencia Laboral

Mi trayectoria profesional en el desarrollo de software, especializada en soluciones logísticas y sistemas empresariales.

Proyectos Recientes

Mi Stack Tecnológico

Con un fuerte enfoque en el desarrollo Backend, estas son las tecnologías con las que construyo soluciones robustas y eficientes.

Servicios Backend

Especializado en arquitecturas robustas y servicios escalables que impulsan aplicaciones de alto rendimiento.

Ejemplos de Código

Muestra de mi estilo de programación y patrones de diseño que implemento en mis proyectos.

API REST con NestJS

TypeScript
@Controller('users')
export class UsersController {
  constructor(private usersService: UsersService) {}

  @Get()
  @UseGuards(JwtAuthGuard)
  async findAll(): Promise<User[]> {
    return this.usersService.findAll();
  }

  @Post()
  @UseGuards(JwtAuthGuard)
  @UsePipes(new ValidationPipe())
  async create(@Body() createUserDto: CreateUserDto): Promise<User> {
    return this.usersService.create(createUserDto);
  }

  @Get(':id')
  @UseGuards(JwtAuthGuard)
  async findOne(@Param('id') id: string): Promise<User> {
    return this.usersService.findOne(+id);
  }
}

Servicio de Autenticación

Node.js
class AuthService {
  async validateUser(email: string, password: string): Promise<any> {
    const user = await this.usersService.findByEmail(email);
    
    if (user && await bcrypt.compare(password, user.password)) {
      const { password, ...result } = user;
      return result;
    }
    return null;
  }

  async login(user: any) {
    const payload = { email: user.email, sub: user.id };
    return {
      access_token: this.jwtService.sign(payload),
      user: {
        id: user.id,
        email: user.email,
        role: user.role
      }
    };
  }
}

Middleware de Rate Limiting

Express.js
const rateLimit = require('express-rate-limit');

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutos
  max: 100, // máximo 100 requests por ventana
  message: {
    error: 'Demasiadas peticiones desde esta IP'
  },
  standardHeaders: true,
  legacyHeaders: false,
});

app.use('/api/', limiter);

Métricas de Rendimiento

Estadísticas de mis proyectos y tecnologías más utilizadas.

0
Proyectos Completados
Aplicaciones web y APIs en producción
0
Uptime Promedio
Porcentaje de disponibilidad
0
Endpoints Desarrollados
APIs RESTful y GraphQL
0
Años de Experiencia
Desarrollo backend profesional

¿Listo para empezar?

Estoy abierto a nuevas oportunidades y colaboraciones. Si tienes un proyecto en mente o crees que podemos construir algo increíble juntos, ¡hablemos!

Envíame un correo