Feeling Let Down After a Job Rejection — Where Did I Go Wrong?

Understanding Why You Might Not Have Made the Cut: Reflecting on a Junior React Developer Interview

Navigating the interview process can be challenging, especially when you’re self-taught and still gaining professional experience. Recently, I participated in a second-round interview for a junior React developer role—a position focused on migrating a PHP-based website to React. Although I felt I performed well, I was ultimately told my skills weren’t sufficiently advanced for their needs. I want to share my experience in detail to seek insights and advice from the community.

The Interview Scenario

The task was to conceptualize a React form component with specific requirements:

  • Collect first name, last name, and email, with placeholders and required indicators marked by red asterisks.
  • Limit the first name to 160 characters, with a live character count.
  • Validate fields before submission, including email format checks.
  • Ensure the form is accessible, with appropriate ARIA labels.
  • Submit data as JSON to a third-party service that verifies email uniqueness.
  • Display validation errors directly beneath each input if validation fails.
  • Handle submission asynchronously, indicating loading status and preventing multiple submissions.

Instead of live coding, the interviewers presented a scenario and asked me to describe my approach. I had 30 minutes to plan and outline my solution.

My Approach

Given the tight timeframe, I focused on a methodical plan:

  1. Version Control: Start a new Git branch to safeguard production code.
  2. Context Review: Familiarize myself with existing codebases to integrate the new form smoothly.
  3. Component Design: Decide on a single React component for simplicity, managing three inputs.
  4. State Management: Use a state object to store form data, updating via a handleChange function.
  5. Accessibility: Incorporate labels and ARIA attributes for usability.
  6. Form Skeleton: Build out the basic form layout, including placeholders and required attributes.
  7. Validation Logic: Implement a validate function to check input lengths, required fields, and email format via regex.
  8. Error Handling: Use a separate state object to track validation errors and display messages appropriately.
  9. Submission Workflow: Draft a handleSubmit function that triggers validation, performs asynchronous email verification, and manages submission state.

Due to time constraints, I couldn’t delve deeply into error state management or the live character count feature, but I outlined how I would handle these if given more time.

Post-Interview Feedback and Reflection

The interviewers


Leave a Reply

Your email address will not be published. Required fields are marked *