This repository was created as part of a technical interview, for a Senior Full-Stack Web Developer position, working with a stack that includes Ruby on Rails, VueJS, and TailwindCSS.
The goal is to simulate a real-world development environment. By focusing on how project logic is designed, implemented, and maintained, the work here aims to reflect practical, day-to-day decisions—just like in any real project.
All tasks, steps, and examples are tracked, with clarity in mind, and the intention to make the process both effective and realistic.
The stack used for this interview includes the following technologies and tools:
Ruby on Rails
- rspec-rails – for behavior-driven development (BDD).
- rack-cors – to handle cross-origin resource sharing.
ReactJS
- axios – for client-side HTTP requests.
Tailwind CSS
– for utility-first styling.
I’m following a set of practical code guidelines to ensure consistency, readability, and production-level standards. These are aimed at mimicking real development team practices, both in Ruby and in modern React.
- Use
snake_case
for variables, methods, and file names. - Structure controllers and models clearly, following REST conventions.
- Test all layers with
RSpec
, including models, controllers, and services. - Follow
rubocop-rails
for formatting, linting, and style enforcement. - Use meaningful names for all classes and modules, reflecting their purpose.
- Use
kebab-case
(`file-name.jsx`) for all file and component names. - Write functional components using React Hooks (`useState`, `useEffect`, etc.).
- Keep components small, focused, and reusable.
- Use
camelCase
for variable and function names in JS/TS. - Centralize API logic with `axios` instances and services.
- Keep side effects within `useEffect`, avoiding unnecessary re-renders.
- Format code using Prettier or ESLint if needed (not enforced in this repo, but followed as a habit).