"When Code Works, But Feedback Works Better — A Backend Engineering Lesson"

Ajiri OsiobeAjiri Osiobe
2 min read

We had just deployed the backend API server for a property management product built with NestJS, JWT authentication, and hosted on DigitalOcean.

Everything worked as expected.

Then a new developer joined the team. During our first technical session together, he reviewed the existing codebase — and started asking some thoughtful questions.

At first, I braced for criticism. But what came next was constructive, practical, and eye-opening.


🛠️ Here’s what he pointed out:

  1. Documentation with JSDoc over Decorators

    “Why not use JSDoc for Swagger? It’s cleaner and gives more flexibility.” I had been using NestJS decorators for Swagger, but his suggestion helped us future-proof the docs and simplify maintenance.

  2. Implementing Refresh Tokens

    “If you want users to stay logged in longer, consider a refresh token strategy.” We were only using short-lived access tokens. His point made sense — user experience matters too.

  3. Switching to dotenv-flow

    “Managing multiple .env files with dotenv-flow can make switching between staging and production smoother.” A simple package, but it solved a very real problem.


😬 My Initial Reaction?

Honestly? Defensive.
My code worked. I had reasons for the decisions I made. But instead of shutting down the discussion, I did something different this time:

I listened.

I asked more questions.

I explored his suggestions — and realized they weren’t just good ideas; they were better than what I had.


🚀 The Result?

We adopted dotenv-flow, implemented a secure refresh token flow, and improved our API documentation setup.
We shipped faster, onboarded new devs more easily, and improved our app’s security posture.

All from one conversation.


💡 Takeaways for Developers:

  • Working code is good, but collaborative code is better.

  • Feedback isn’t a threat — it’s a gift.

  • You can be experienced and still have blind spots.

  • Ego kills innovation. Curiosity fuels growth.


👋 I’m OSIOBE AJIRI

I’m a software engineer who believes in building solid products and stronger teams.

I write here on Hashnode, post regularly on LinkedIn, and share code on GitHub.
Follow along if you value backend development, real-world engineering stories, and continuous improvement.


What’s a time you got feedback that changed how you write code? I’d love to hear your experience.

0
Subscribe to my newsletter

Read articles from Ajiri Osiobe directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Ajiri Osiobe
Ajiri Osiobe

Ajiri Enoch Osiobe is a highly skilled software Engineer with a strong background in building scalable and user-centric web and mobile applications. At the forefront of the engineering team, he contributes across both frontend and backend stacks—leveraging technologies such as React, Next.js, React Native, TypeScript, Node.js, NestJS, Python and C# to deliver reliable digital solutions. Ajiri has played a key role in the development of platforms across fintech, real estate, and e-commerce industries. His work includes implementing secure financial dashboards, real-time chat interfaces, document workflows, and cloud-based API architectures. He is proficient in designing scalable backend systems, integrating third-party services like Cloudinary, Firebase, and AWS, and ensuring seamless user experiences through efficient UI engineering. Beyond his technical expertise, Ajiri is known for his attention to detail, collaborative mindset, and ability to align engineering solutions with business goals. He brings a deep sense of ownership to every project and consistently drives innovation within the team.