Hello there! I'm Vitor Britto, a Senior Software Engineer based in Brazil with over 15 years of experience in the software industry. I'm passionate about improving skills, learning new technologies, enjoy influencing others and always advocate for technical excellence while being open to change. I have strong experience building SaaS applications and developing software products.
🚀 Feel free to visit my personal website: https://vitorbritto.dev
- A personal Framework with approaches and methods that I use to delivery high-quality softwares.
- Tools that makes my Workflow easy.
- My own code conventions, which is inspired by what is popular within the community and flavored with some personal opinions.
- Major dependencies that I use.
- Apply rules and be based on a principle and methodology of process which could maintain the structure of my standards.
- Not only have a code style guide, but relevant informations about my Workflow. Thus I always keep the same logic process and can initiate the development of my projects without any questions when making a scaffolding, building process, automation rotines, unit testing and others tasks.
You can find a complete list of applications, utilities, DevOps and Business Tools here:
This is a simple table with approaches and methods that I use at my Workflow lifecycle.
| Plan | Design | Develop | Deploy |
|---|---|---|---|
| Research | Concepting | Scaffolding | CI/CD |
| Observe | Prototype | Coding | Testing |
| Understand | Refine | Build | Monitoring |
| Analyze | Style Guide | QA | Optimization |
| Timeline | Approval | Review | Maintenance |
- Notion - Documentation and knowledge base
- Figma - Design and prototyping
- Draw.io - System architecture diagrams
- Slack - Team messaging and collaboration
- Discord - Community and team communication
- Google Meet - Video conferencing
- Loom - Screen recording and async communication
- Zed - AI-powered code editor
- Warp - Terminal emulator for macOS
- Tailwind CSS - Utility-first CSS framework
- Shadcn/ui - Re-usable components
- Radix UI - Unstyled, accessible components
- Material UI - React components that implement Google's Material Design
- Framer Motion - Animation library
- Zustand - Lightweight state management
- TanStack Query - Server state management
- Redux Toolkit - Predictable state container
- PostgreSQL - Primary relational database
- Prisma - Modern database toolkit
- MongoDB - NoSQL database
- Redis - In-memory data store
- Supabase - Open source Firebase alternative
- NextAuth.js - Authentication for Next.js
- Clerk - User management and authentication
- Supertokens - Complete authentication solution
- React Native - Cross-platform mobile development
- Expo - React Native development platform
- Ignite - React Native development platform
- Vitest - Fast unit testing framework
- Jest - JavaScript testing framework
- Testing Library - Testing utilities
- MSW - API mocking
- Playwright - End-to-end testing
- Cypress - Web application testing
- Detox - Mobile E2E testing
- Docker - Containerization platform
- Kubernetes - Container orchestration
- Terraform - Infrastructure as code
- CDK - Infrastructure as code
- GitHub Actions - CI/CD automation
- Vercel - Zero-config deployments
- pnpm - Fast, disk space efficient package manager
- ESLint - JavaScript linting
- Prettier - Code formatter
- TypeScript - Typed JavaScript
- Husky - Git hooks
- lint-staged - Run linters on staged files
For web projects in which I work from planning to delivery, I use the guides below. If I am on a team that already has established guides, I'll follow the rules already adopted. No bullshit, just follow the rules.
- [STRATEGY]: Kanban and/or Scrum method
- [AGILE]: Shape Up methodology for product development
- [PLANNING]: OKR framework for goal setting
- [ARCHITECTURE]: Clean architecture, Clean Code and The Twelve-factor app
- [DESIGN]: SOLID principles and DRY
- [SECURITY]: OWASP Top 10 security practices
- [PERFORMANCE]: Core Web Vitals optimization
- [STYLE]: Airbnb JavaScript Style Guide
- [COMMITS]: Conventional Commits
- [BRANCHING]: Git Flow or GitHub Flow
Be Consistent
The point of having style guidelines is to have a common vocabulary of coding so people can concentrate on what you're saying rather than on how you're saying it. We present global style rules here so people know the vocabulary, but local style is also important. If code you add to a file looks drastically different from the existing code around it, it throws readers out of their rhythm when they go to read it. Avoid this.
- Use React.memo for expensive components
- Implement code splitting with React.lazy
- Optimize images with next/image
- Use SWR or TanStack Query for data fetching
- Implement virtual scrolling for large lists
- Always validate input data
- Use HTTPS in production
- Implement proper CORS policies
- Sanitize user inputs
- Use environment variables for sensitive data
- Regular dependency updates
- Follow WCAG 2.1 guidelines
- Use semantic HTML elements
- Provide alt text for images
- Ensure keyboard navigation
- Test with screen readers
- Use next-seo for meta tags
- Implement structured data
- Optimize for Core Web Vitals
- Use descriptive URLs
- Create sitemaps
MIT License © Vitor Britto
