Tại sao bạn sẽ yêu thích làm việc tại đây
What Makes Us Different
Key Principles & Our "Real Frontend" Philosophy
Don&039;t test UI components directly in complex ways → test business logic and important user interactions
Test only what should be tested → functions must work, not every component needs tests
Don&039;t over- abstract unnecessarily → if your logic is separated well enough, you can maintain it
Use real API calls for integration testing → instead of mocking everything
Frontend Architecture We Love
Separate components into 3 clear types:
Layout Components → page structure, navigation, common layouts
UI Components → reusable, no business logic, pure presentation
Feature Components → business logic, data fetching, state management
Consistent error handling → error boundaries, fallback UI, retry mechanisms
Clear state management → local state vs global state vs server state
Analytics Architecture We Want
Cross- session Persistence → UTM and campaign data must persist across sessions
Performance Monitoring → track Core Web Vitals and custom performance metrics
Parameter Consistency → use same naming convention throughout system
Event- driven Design → every user interaction must have meaningful event
Error Tracking Integration → js_error, api_error must go to analytics and error monitoring
Anti- patterns We Reject
🚫 What We Don&039;t Want to See
Fire Analytics Events without system — no naming convention, no parameter consistency
Don&039;t track complete user journey — just track page view, not interactions
Write Tailwind until class name is 4 lines long (should use @apply, component class)
Don&039;t separate concern / logic / UI / data
Use Hooks for everything until you can&039;t understand
Don&039;t store UTM persistence — just read from URL and throw away
Write unnecessarily complex code / over- abstract
Use Zod but don&039;t actually validate / or just use isString
Convert Figma inaccurately / just do "similar"
Use Zustand with stores too big to control
Write TypeScript with any everywhere / don&039;t use type safety
Tech Stack We Actually Use (No Bloat)
Core Frontend:
- Tailwind CSS (Utility- first, custom design system)
- TypeScript (Strict mode, advanced types, type- safe APIs, branded types)
- Next.js (App Router, Server Components, Server Actions)
- React 18+ (Concurrent Features, Suspense)
State Management & Data Fetching:
- Zustand — client state management
- TanStack Query (React Query v5) — server state management
- Zod — schema validation and type inference
Analytics & Tracking:
- Performance Monitoring — Core Web Vitals tracking
- Google Tag Manager — tag management and custom events
- Google Analytics 4 — comprehensive event tracking
- Custom Analytics SDK — type- safe event tracking with TypeScript, strongly- typed event parameters
- UTM Persistence Library — cross- session campaign tracking
UI & Animation:
- Framer Motion — animations and transitions
- React Hook Form — form handling and validation
- Radix UI / Headless UI — accessible component primitives
Development & Testing:
- Playwright / Cypress — end- to- end testing
- Jest + React Testing Library — unit and integration testing
- Storybook — component development and documentation
- ESLint + Prettier — code quality and formatting
Infrastructure & DevOps:
- Sentry — error tracking and monitoring
- GitHub Actions — CI/CD pipelines
- Google Cloud Platform — backend services
- Vercel / Netlify — deployment and hosting
Why You&039;ll Love Working Here
💰 Be Part of Something Real
Build real things, used by real people, with real users — not just concepts
Grow fast with biannual performance reviews and real ownership of your work
Salary increases based on your growth — not years of experience or politics
🌟 Learn from World- Class People
Write clean code with real code reviews, not just approval passes
Learn from mentors who understand both theory and practice of Frontend
No toxic people, no politics — just passionate developers who want to build great things
⚡ Work Environment That Actually Works
Clear guidelines on what to do and what not to do
Office- based collaboration — work together in our office environment
No micromanagement — we trust you to deliver results
UX/UI ready for you — Dev just "Focus on Logic and Quality"
Fast iteration cycles — see your code in production quickly
Flexible working hours — we measure output, not hours
🎯 What We Value in People
Take feedback without getting emotional — you understand code can always improve
Have fighting spirit — you don&039;t give up when things get challenging
Love learning and growing — you want to become better every day
Ask thoughtful questions — you think before you ask
Deliver more than expected — you surprise us in good ways
Can read documentation independently — no hand- holding needed