</>

Full Stack Developer & Designer — crafting modern web applications, scalable APIs, and seamless user experiences. I combine creative design with robust engineering to build fast, responsive, and user-friendly web solutions.

Based in Toronto, Canada

Open to remote work

Backend + Frontend

APIs, databases, React

Currently available

Starting mid‑September

Maya at work
50+

projects completed

2+

years experience

20+

technologies

Recent Work

Modern Architecture
Zenith
Award-Winning Design Studio

Architectural
Excellence
Redefined

Creating extraordinary spaces that blend innovation, sustainability, and timeless design principles.

500+
Projects
15+
Years
98%
Satisfaction
ResidentialSustainable

Meridian Residence

Sustainable Modern Living

Meridian Residence
4,200

sq ft

4

bedrooms

LEED

certified

360° TOUR
360 Tour
Real Estate

Property Management Company

Full-service property management with tenant screening and maintenance coordination.

Real Estate Platform
Real Estate

Real Estate Platform

Modern real estate platform with property search, virtual tours, and expert support for confident home buying.

Creative Design Studio
Design Studio

Creative Design Studio

Modern creative design studio platform with project management, team collaboration, and visual design services.

Performance Ads Agency
Digital Marketing

Performance Ads Agency

Digital marketing agency specializing in profitable acquisition systems and performance advertising for scalable growth.

Payment Plan Interface
UI/UX Design

Payment Plan Interface

Modern subscription upgrade interface with prorated billing, payment methods, and premium AI capabilities unlock.

Visual Website Builder
Website Builder

Visual Website Builder

Modern visual website builder platform for designing, collaborating, and publishing websites at lightspeed with no code required.

Built with industry-leading tools

Leveraging the best web development technologies and platforms.

Figma
Vercel
Unity
Next.js
IntelliJ IDEA
VS Code

Tech Stack

Frontend & UI

TypeScriptNext.js 15React 19Tailwind CSSFramer MotionThree.jsGSAPZustand

Backend & Database

Node.jsExpressPrismaPostgreSQLRedisDockerAWSVercel

DevOps & Tools

CI/CDGitHub ActionsTerraformKubernetesMonitoringTesting

Expertise: Full-stack architecture, performance optimization, scalable systems, advanced animations, cloud infrastructure, and enterprise-grade applications.

React Component

~200+ lines
import { useState, useEffect, useCallback, useMemo } from 'react'
import { motion, AnimatePresence } from 'framer-motion'
import { useRouter } from 'next/navigation'
import { toast } from 'sonner'

interface User {
  id: string
  name: string
  email: string
  avatar?: string
  role: 'admin' | 'user' | 'moderator'
  createdAt: Date
  lastActive: Date
  preferences: UserPreferences
}

interface UserPreferences {
  theme: 'light' | 'dark' | 'system'
  notifications: boolean
  language: string
  timezone: string
}

interface ApiResponse<T> {
  data: T
  success: boolean
  message?: string
  pagination?: {
    page: number
    limit: number
    total: number
  }
}

const UserDashboard = () => {
  const router = useRouter()
  const [users, setUsers] = useState([])
  const [loading, setLoading] = useState(true)
  const [searchQuery, setSearchQuery] = useState("")
  const [selectedUsers, setSelectedUsers] = useState(new Set())
  const [sortBy, setSortBy] = useState("name")
  const [sortOrder, setSortOrder] = useState("asc")
  const [currentPage, setCurrentPage] = useState(1)

  const fetchUsers = useCallback(async (page = 1, search = '') => {
    const params = new URLSearchParams({
      page: page.toString(),
      limit: '10',
      search,
      sortBy,
      sortOrder
    })
    
    const response = await fetch(`/api/users?${params}`)

    if (!response.ok) {
      throw new Error("Failed to fetch users")
    }

    const result = await response.json()

    if (result.success) {
      setUsers(result.data)
      toast.success("Users loaded successfully")
    } else {
      throw new Error(result.message || "Unknown error")
    }
  }, [sortBy, sortOrder])

  const filteredUsers = useMemo(() => {
    return users.filter(
      (user) =>
        user.name.toLowerCase().includes(searchQuery.toLowerCase()) ||
        user.email.toLowerCase().includes(searchQuery.toLowerCase()),
    )
  }, [users, searchQuery])

  const handleUserSelect = useCallback((userId) => {
    setSelectedUsers((prev) => {
      const newSet = new Set(prev)
      if (newSet.has(userId)) {
        newSet.delete(userId)
      } else {
        newSet.add(userId)
      }
      return newSet
    })
  }, [])

  const handleBulkAction = useCallback(
    async (action) => {
      if (selectedUsers.size === 0) {
        toast.error("No users selected")
        return
      }

      try {
        const response = await fetch("/api/users/bulk", {
          method: "POST",
          headers: {
            "Content-Type": "application/json",
          },
          body: JSON.stringify({
            action,
            userIds: Array.from(selectedUsers),
          }),
        })

        if (response.ok) {
          toast.success(`${action} completed successfully`)
          setSelectedUsers(new Set())
          fetchUsers(currentPage, searchQuery)
        } else {
          throw new Error("Bulk action failed")
        }
      } catch (err) {
        toast.error("Failed to perform bulk action")
      }
    },
    [selectedUsers, currentPage, searchQuery, fetchUsers],
  )

  const handleSort = useCallback(
    (field) => {
      if (sortBy === field) {
        setSortOrder((prev) => (prev === "asc" ? "desc" : "asc"))
      } else {
        setSortBy(field)
        setSortOrder("asc")
      }
    },
    [sortBy],
  )

  useEffect(() => {
    fetchUsers(currentPage, searchQuery)
  }, [fetchUsers, currentPage, searchQuery])

  useEffect(() => {
    const handleKeyDown = (e) => {
      if (e.key === "Escape") {
        setIsModalOpen(false)
        setSelectedUsers(new Set())
      }
    }

    document.addEventListener("keydown", handleKeyDown)
    return () => document.removeEventListener("keydown", handleKeyDown)
  }, [])

  const renderUserCard = (user) => (
    <div key={user.id} className="bg-white rounded-lg shadow-md p-4">
      <div className="flex items-center justify-between">
        <div className="flex items-center space-x-3">
          <img
            src={user.avatar || "/default-avatar.png"}
            alt={user.name}
            className="w-10 h-10 rounded-full object-cover"
          />
          <div>
            <h3 className="font-semibold text-gray-900">{user.name}</h3>
            <p className="text-sm text-gray-600">{user.email}</p>
          </div>
        </div>
        <div className="flex items-center space-x-2">
          <span className="px-2 py-1 text-xs rounded-full bg-green-100">
            {user.role}
          </span>
          <input
            type="checkbox"
            checked={selectedUsers.has(user.id)}
            onChange={() => handleUserSelect(user.id)}
            className="rounded border-gray-300"
          />
        </div>
      </div>
    </div>
  )

  if (loading && users.length === 0) {
    return (
      <div className="flex items-center justify-center min-h-screen">
        <div className="animate-spin rounded-full h-32 w-32 border-b-2"></div>
      </div>
    )
  }

  return (
    <div className="container mx-auto px-4 py-8">
      <div className="mb-6">
        <h1 className="text-3xl font-bold mb-2">User Dashboard</h1>
        <p className="text-gray-600">Manage users and permissions</p>
      </div>

      <div className="mb-6 flex flex-col sm:flex-row gap-4">
        <input
          type="text"
          placeholder="Search users..."
          value={searchQuery}
          onChange={(e) => setSearchQuery(e.target.value)}
          className="flex-1 px-4 py-2 border rounded-lg"
        />
        
        {selectedUsers.size > 0 && (
          <div className="flex gap-2">
            <button
              onClick={() => handleBulkAction('activate')}
              className="px-4 py-2 bg-green-600 text-white rounded-lg"
            >
              Activate ({selectedUsers.size})
            </button>
            <button
              onClick={() => handleBulkAction('deactivate')}
              className="px-4 py-2 bg-red-600 text-white rounded-lg"
            >
              Deactivate ({selectedUsers.size})
            </button>
          </div>
        )}
      </div>

      <div className="grid gap-4 md:grid-cols-2 lg:grid-cols-3">
        {filteredUsers.map(renderUserCard)}
      </div>

      {filteredUsers.length === 0 && !loading && (
        <div className="text-center py-12">
          <p className="text-gray-500 text-lg">No users found</p>
        </div>
      )}
    </div>
  )
}

export default UserDashboard

Timeline

  1. 2023-2025

    Computer Science Student — University Honors

    Pursuing Computer Science degree, focusing on software engineering, algorithms, and modern web technologies.

  2. 2023-2025

    Agency Owner — Web Dev

    Running web development agency, building modern websites and applications for clients using React, Next.js, and TypeScript.

  3. 2023-2025

    Graphic Designer — Cheat Community

    Creating visual designs and branding materials for gaming community, specializing in modern UI/UX design.

  4. 2018-2023

    Graphic Designer — Youtube Niche

    Designed thumbnails, channel art, and branding for YouTube creators, helping grow subscriber base through compelling visuals.

Website Performance Evaluations

Continuous optimization of load times, Core Web Vitals, and user experience across all production websites.

Page Load Speed (weekly)

Live data
Load Time
0.6s
-71% this week
Lighthouse
98/100
Perfect score
Bundle Size
45KB
Optimized

Eval Categories

Core Web Vitals100%
Lighthouse Score98%
Bundle Size Opt95%
SEO Score100%

Recent Tests

Image optimization pipeline
2 hours ago
Code splitting implementation
6 hours ago
CDN cache optimization
12 hours ago

Performance Framework

2,847 total tests

Automated performance monitoring with Core Web Vitals tracking, bundle analysis, and real user metrics. Monitors load times, cumulative layout shift, first contentful paint, and conversion rates across different devices and network conditions.

vegas

About

I architect and develop high-performance web applications with expertise in modern frameworks, advanced animations, and scalable system design. Specializing in React ecosystems, Three.js implementations, and performance optimization that delivers sub-second load times and exceptional user experiences across all devices.

2+

Years

15+

Projects

200+

Clients

Currently learning

WebGL shaders, advanced CSS Grid layouts, and micro-frontend architectures with Module Federation.

Let's collaborate

Design with </>.

Discord

76vegas

Portfolio

View Projects

Tech Stack

ReactNext.jsTypeScriptTailwindNode.jsPostgreSQLMongoDBGraphQLDockerAWSVercelGit

© </>— Available for freelance & contracts 2025