Skip to main content

Engineering Notes

Understanding Population in NestJS with MongoDB

When working with MongoDB and NestJS, relationships between collections are often necessary. MongoDB uses references (ObjectIds) to link documents, and Mongoose provides population to resolve these references. In this blog, we will explore different scenarios of population in NestJS with examples.

Setting Up NestJS with MongoDB

Before diving into population, let’s set up a NestJS project with MongoDB.

  1. Install NestJS CLI:

    npm i -g @nestjs/cli

  2. Create a new project:

Apr 04, 2025
Jeff Githae
Jeff Githae

Keep Widgets Short and Sweet by Moving Styles to a Separate File

In an age where attention spans are shorter than ever, keeping your Flutter widgets concise and manageable is key to ensuring your code doesn’t get lost in the noise. To achieve this, we would need separation of concerns into different dedicated files. Doing this does not only reduce the size of code in a single file and improve its manageability but also enables reusability of the same piece of dedicated functionality across the application. Isn't that just awesome?

Mar 29, 2025
Tonny Muli
Tonny Muli

The Algorithm Behind Music: How Does It Work?

I love discovering new music, and a few weeks ago, I stumbled upon an intriguing website called Music-Map while searching for new artists similar to my favorites. The site presents a visual “map” of musicians, where related artists appear closer together. The concept fascinated me. How does this algorithm determine which artists are similar? Is it the same technology that powers music streaming recommendations?

Mar 26, 2025
Charity Masila
Charity Masila

Quantum Leap: What's Really Happening in Quantum Computing?

Imagine a future where computers solve problems in seconds that would take today's machines centuries. Picture designing life-saving drugs before they even enter a lab or optimizing global logistics in real-time. This isn't science fiction; it's the promise of quantum computing. While the buzz can feel distant, its implications are rapidly becoming real.

Mar 21, 2025
Mervin Wachira
Mervin Wachira

Handling Email Misfires: Using Exchange Online to Recover from Wrongly Sent or Delivered Emails

We've all been there – that heart-dropping moment when you realize you've sent an email to the wrong group of users. Whether it's an embarrassing typo or confidential information meant for a select few, the panic can be overwhelming. Fortunately, if your organization is using Exchange Online, you have a powerful tool at your disposal to rectify the situation. In this article, we'll explore how to manage the aftermath of a wrong email and use a simple script to delete it efficiently.

Jan 08, 2024
Amos Wachanga
Amos Wachanga

Designing User-Friendly Error Messages

Picture this: you're browsing your favorite online store, excitement building as you add things to your cart, you click "checkout," but instead of a confirmation, a jarring "Payment Error" message flashes on the screen. Your shopping spree hits a snag, and you get massively frustrated. This, my friends, is a roadblock that can transform a smooth online journey into a mess of confusion.

Dec 18, 2023
Charity Masila
Charity Masila

Kickstart Your Microsoft Teams Adventure: Developing Tabs for Seamless Collaboration and Enhanced Productivity

Microsoft Teams offers a range of useful functionality for achieving different needs in an organization. My bet is that all the basic needs for effective collaboration and communication has been achieved by Teams as it is out of the wrap and this explains it's wide-spread adoption among different organizations of different sizes. Some of the cool things that Teams is capable of are that teams can chat, meet, share files, and integrate various apps and services.

Dec 15, 2023
Tonny Muli
Tonny Muli

The Essential Guide to New Features and Changes in .NET 8

.NET core stands out as a high-performance and versatile framework, offering many features contributing to its speed and broad applicability. One key factor is its cross-platform compatibility, enabling seamless deployment across Windows, macOS, and Linux environments. 

Performance gains are achieved through optimizations like Just-In-Time (JIT) compilation and the lightweight CoreCLR runtime. With a focus on scalability, asynchronous programming patterns enable the handling of numerous concurrent operations. 

Dec 08, 2023
Felex Onyango
Felex Onyango

The Importance of Code Reviews and How to Conduct Them Effectively

The significance of code reviews cannot be overstated in the dynamic world of software development. Code reviews ensure the quality, maintainability, and reliability of software projects. This article delves into the key role that code reviews play in the software development lifecycle and provides a guide on how to conduct them effectively.

Nov 15, 2023
Charity Masila
Charity Masila

Drupal Unveiled: Exploring the Latest Developments and Innovations in the Web Development World

In the ever-evolving world of web development, staying on top of the latest trends and innovations is crucial for any company. As we strive to provide our clients with the most valuable and up-to-date insights, this blog post will be a deep dive into Drupal, one of the leading content management systems (CMS) that powers countless websites worldwide. We will explore the recent developments and groundbreaking features within the web development industry. So, fasten your seatbelts and grab some coffee, as we embark on this exhilarating journey through the world of Drupal! 

Jul 25, 2023
Patrick Kimemia
Patrick Kimemia

Running Angular with Vite

We have long relied on ng serve as the go-to command for serving Angular applications during development. However, there is a new tool called Vite that performs the same function. So what is the difference and what advantages does it offer?

Apr 03, 2023
Charity Masila
Charity Masila
Subscribe to Engineering Notes