DEV Community

Cover image for “It’s clear you are better than the reviewer” - said a Senior Software Engineer
Stanley Azi
Stanley Azi

Posted on

“It’s clear you are better than the reviewer” - said a Senior Software Engineer

I got selected to move forward for a Software Engineer (Frontend) role with a foreign company from a cold DM and was given a test assignment. I delivered beyond the expected result, only to receive feedback from a review that seemed out of touch with current web development best practices, especially within the Vue 3 and Nuxt 3 ecosystem. A senior engineer who looked over my work remarked, “It’s clear you are better than the reviewer,” which inspired me to share this story.

The Flawed Review

The review listed several shortcomings:

  1. No Composition API usage.
  2. No project architecture.
  3. Code repetitiveness.
  4. No cards stored in localStorage.
  5. Not following the Figma design.
  6. Bugs.

Many of these points were vague or incorrect. Let’s examine each claim.

1. Composition API Usage

Reviewer’s Claim: “No composition (Vue 3)”

Reality: Every component in the assignment used Vue 3’s Composition API with <script setup>, defineProps, defineEmits, reactive ref(), and other variables. This is idiomatic Vue 3 by design, enabling cleaner logic and better type inference with TypeScript.

Vue's official documentation recommends <script setup> for Vue 3 and Nuxt 3.

Vue's doc on composition API

The below component clearly shows the use of composition API which was used in every single vue component in the codebase with typescript.

Proof of composition API

Lesson: Always verify the reviewer’s technical context before accepting their conclusions.

2. Project Architecture

Reviewer’s Claim: “No project architecture”

Reality: The project follows Nuxt 3’s opinionated file-based architecture, which is industry-standard and recommended in the official documentation. The structure includes:

  • components/, composables/, stores/, utils/, types/, pages/, and server/
  • Type safety with TypeScript
  • Organized assets and server logic

Calling this “no architecture” is, frankly, misleading.

This structure aligns perfectly with Nuxt’s official guidelines and scales well for large applications.

Nuxt 3 file-based archetecture

Approach Hint: Embrace framework conventions to streamline setup and reduce boilerplate.

3. Code Repetitiveness

Reviewer’s Claim: “Code repetitiveness”

Reality: I built reusable components to avoid duplication wherever practical. Any repetition, such as Tailwind utility classes or minimal logic blocks, is contextually appropriate and does not constitute a flaw without concrete examples.

Hint at Organization: Group similar UI elements into shared components; use design tokens or helper functions for common patterns.

4. Card Persistence (LocalStorage)

Reviewer’s Claim: “No cards storing (local storage)”

Reality: The assignment’s Technical Requirements specified using the Composition API and Pinia for state management; it did not mandate data persistence. I implemented every requested feature; UI interactions, CRUD workflows, and design fidelity. If localStorage persistence was expected, it should have been explicitly outlined.

Technical requirements

Using localStorage would be a reasonable enhancement, but the task did not explicitly require persistence. The Technical Requirements section clearly mentions using the Composition API and Pinia store, both of which were implemented. The task primarily focused on UI functionality, the CRUD workflow, and accurate design implementation, all of which were completed. If persistence was an expectation, it should have been clearly stated in the task description.

5. Design Fidelity

Reviewer’s Claim: “Not following Figma design”

Reality: I matched structure, colors, spacing, and typography to the Figma mockups. Minor pixel adjustments may vary across environments, but no significant deviations occurred. All UI screenshots that were attached to the feedback were basic to fix and the feedback got me wondering what the use of 'code-review before merging to main' is for?

How on earth could a good reviewer point out inline padding on a closely implemented button that functions perfectly as a flaw, while ignoring everything else; pixel-perfect UIs, 100% functional implementation, ~100% performance, accessibility, SEO, best practices, speed, and animations? I mean, just look at what the reviewer is pointing out:

Filter buttons comparisons

Not a single review mentions key functionalities, performance, Git branching and commit messages, best practices, or the cool transitions shown below.

  • Scored ~100/100 scores on both Lighthouse and PageSpeed performance, accessibility, best practices, and SEO:
    Performance

  • Git branching and commit messages best practice:
    Clear git history

I mean, look at the performance stats, near-perfect Core Web Vitals, optimised asset loading, and a responsive, accessible layout. Yet the review chose to ignore all of that and instead pointed out something like button padding as a flaw.

It’s critical to understand that web development is far more than what you see on the surface. Good reviews go beyond static visuals and evaluate architecture, performance, maintainability, and user experience holistically.

Tip for Collaboration: If you spot a potential mismatch, always provide annotated screenshots, clear examples, or Git-style code review comments referencing the specific line or component, it saves everyone time and confusion. Also, know the weight of what you're pointing out. A slight inline padding difference is not a breaking change and should be treated as a minor refinement, not a critical flaw. Context matters when reviewing work, not all mismatches are created equal.

6. Bugs

Reviewer’s Claim: “Bugs”

Reality: The only minor issue involved checkbox selection logic, a trivial fix by targeting checkboxes via unique IDs. Moreover, displaying a fallback message when a card ID doesn’t exist is a deliberate, user-friendly enhancement, not a defect.

fall-back message

Best Practice: Provide meaningful defaults for nonexistent data to avoid blank screens.

Takeaways & Moving Forward

  • Verify feedback with examples: Vague criticisms aren’t actionable.
  • Leverage framework conventions for rapid, maintainable development.
  • Communicate clearly about expected features vs. nice-to-haves.
  • Embrace constructive critique while standing by correct implementations.

When a senior engineer affirms your strength, it’s a reminder to trust your expertise and seek reviewers who understand the technologies you use. Stay confident, keep learning, and always aim for clarity in both code and communication.

Thank you for reading this part of my story-turned-article. What are your thoughts on my experience?

Let’s keep building amazing things and expanding our skills.

Have any gig, offer, or questions for me? You can always hit me up.

Stanley Azi,
Full-Stack Engineer | Frontend Specialist

Top comments (9)

Collapse
 
oluwasetemi profile image
Ojo Oluwasetemi

The reviewer does not understand their job. Review to make the person a better engineer, or review out of fear for your role?

Collapse
 
brense profile image
Rense Bakker

This is true but, reviewing an assignment is a little bit different from a regular review for a pull request. For the interview process it's usually required to write down clear conclusions to reject or accept a candidate. Personally I would prefer to schedule a one on one to discuss the review results and draw conclusions based on that, but that's often not feasible due to the ridiculous amount of candidates who are invited to do an assignment.

Collapse
 
stan015 profile image
Stanley Azi

Exactly. A review should aim to uplift, not diminish. Clear, constructive feedback helps engineers grow, not vague comments made out of bias or insecurity.
If you’re ever in a position to review someone’s work, do it with the goal of helping them improve, not gatekeeping them.

Collapse
 
a2damn profile image
adam Ramdhani

I think point number 2, is about segeration of concern, file based structure is not architecture, it was default structure by framework, it is better to use modular with screaming architecture. In case of collaboration for support, and maintenance, we need to code with intents written in the projects not in one developer mind.

Collapse
 
qoizy profile image
Oladimeji Quyum

You've already said it all at the beginning, "It's clear you are better than the reviewer". The reviewer is just gatekeeping instead of giving a room for improvement.

Collapse
 
ashwin_entertainmentse profile image
Ashwin “Entertainment” Selvakumar

This post sounds like a masked rant 🤣...

Either ways, thanks for pointing this out, great post!

Collapse
 
ogheneovo12 profile image
ogheneovo12

Hope you sent him this article 😄

Collapse
 
stan015 profile image
Stanley Azi

I did reply to the feedback with these points! 😅

Collapse
 
moopet profile image
Ben Sinclair

Would it be better if this was passed and, say, the padding bug was raised separately later?

Some comments may only be visible to logged-in visitors. Sign in to view all comments.