Latest Articles

Some of my recent thoughts on design, development, and the tech industry.
My Initial Server Setup Checklist

My Initial Server Setup Checklist

A comprehensive checklist for setting up a secure VPS server with Ubuntu. Covers system updates, user management, SSH configuration, firewall setup, and security tools.
Enums as arrays in PostgreSQL - Updated 2024

Enums as arrays in PostgreSQL - Updated 2024

Learn how to use PostgreSQL enums with arrays for data validation and integrity. Complete guide with examples and PostgreSQL 16 updates.
KidzLog

KidzLog

KidzLog is a comprehensive childcare management system designed to streamline operations for childcare providers, from attendance tracking to billing and payments.
3 Ways to Run NestJS Cron Jobs When Running Multiple Instances

3 Ways to Run NestJS Cron Jobs When Running Multiple Instances

Learn three effective methods to handle cron jobs in a multi-instance NestJS environment. From named instances to database locking strategies.
FindChildcare.ca

FindChildcare.ca

FindChildcare.ca is a comprehensive directory of home and center-based childcare providers across Canada, designed to help parents find childcare easily.
Debugging Multiple NestJS Applications in VSCode

Debugging Multiple NestJS Applications in VSCode

Learn how to set up and debug multiple NestJS applications simultaneously in VSCode. Complete guide with launch.json configuration and debugging tips.
SpellCheckMySite.com

SpellCheckMySite.com

SpellCheckMySite.com is a simple tool that finds spelling mistakes on a web page. You provide a URL, it scans it and shows possible spelling mistakes.
How to Integrate Google reCAPTCHA v3 with NestJS in 3 Easy Steps

How to Integrate Google reCAPTCHA v3 with NestJS in 3 Easy Steps

Learn how to integrate Google reCAPTCHA v3 with your NestJS application in just 3 easy steps. Complete guide with code examples for spam protection.
Using Check Constraints in PostgreSQL for Value Validation

Using Check Constraints in PostgreSQL for Value Validation

Explore how check constraints in PostgreSQL can be used for effective value validation, offering flexibility and control over data integrity.

Building MapleStack: Enhancing Email Capabilities with Mailgun

Explore how Mailgun enhances MapleStack’s email capabilities, ensuring reliable delivery, scalability, and detailed analytics for effective user communication.

Building MapleStack: Securing Connections with Let's Encrypt

Explore how Let’s Encrypt provides free SSL/TLS certificates, enhancing security and trust for MapleStack.

Building MapleStack: AWS S3 for Data Storage

Explore how AWS S3 provides scalable and secure storage for MapleStack, handling everything from job listings to user data.

Building MapleStack: Simplifying User Authorization with AWS Cognito

Explore how AWS Cognito simplifies user authorization in MapleStack, enhancing security and scalability while streamlining user management.

Building MapleStack: Tailwind CSS for Streamlined Styling

Explore how Tailwind CSS enhances MapleStack’s UI with utility-first styling, enabling rapid design iterations and responsive layouts.

Building MapleStack: React for an interactive user interface

Explore how React powers MapleStack’s frontend, enabling dynamic and interactive user experiences.

Building MapleStack: NestJS for Server-Side Operations

Discover how NestJS serves as the backbone of MapleStack, handling server-side operations like API requests, data scraping, and scheduled tasks.

Building MapleStack: PostgreSQL for Data Storage

Discover how PostgreSQL serves as the backbone of MapleStack, providing reliable and scalable data storage for job listings, applications, and user management.
MapleStack

MapleStack

MapleStack is a job board connecting companies to tech talents in Canada. It focuses on jobs in the technology field from software developers, to product managers, UX designers and social media managers.
How to resolve a blacklisted domain

How to resolve a blacklisted domain

Learn how to quickly resolve a blacklisted domain issue with SpamHaus. Step-by-step guide to get your domain removed from blacklists and prevent future issues.
How I built MapleStack's waitlist with AI: ChatGPT vs Bard

How I built MapleStack's waitlist with AI: ChatGPT vs Bard

Comparing ChatGPT and Bard AI tools while building MapleStack's waitlist form. Learn how I used AI to generate React components and AWS Lambda functions in minutes.
Using DataLoader in GraphQL

Using DataLoader in GraphQL

Learn how to solve the N+1 problem in GraphQL using DataLoader for batching and caching requests. Practical examples with Apollo Server and TypeScript.
GraphQL Server - Apollo, KoaJS and Typescript implementation

GraphQL Server - Apollo, KoaJS and Typescript implementation

Learn how to set up a GraphQL server in NodeJS using Apollo, KoaJS and TypeScript. Complete guide with schema creation, resolvers, and practical examples.
Using Typescript in NodeJS development

Using Typescript in NodeJS development

Learn how to set up your NodeJS development environment with TypeScript for type safety and better error handling. Build a simple KoaJS web server with TypeScript configuration.
Building a Custom Content Slider (Carousel) in Angular

Building a Custom Content Slider (Carousel) in Angular

Learn how to build a custom content slider or carousel in Angular that can display any type of HTML content, including images, text, and videos.
Saza: Open Source mobile and desktop Stellar wallet release.

Saza: Open Source mobile and desktop Stellar wallet release.

Saza wallet is an open source mobile and desktop wallet for Stellar. It supports all Stellar operations, including the sparsely supported path-payment operation.
Pre-authorized transaction on the Stellar network

Pre-authorized transaction on the Stellar network

Learn how to create pre-authorized transactions on the Stellar network using JavaScript. This guide covers the multi-signature feature and how to build a pre-authorized payment transaction.
Welcome!

Welcome!

Hi, welcome to oliha.dev! Here, I will be sharing my thoughts and experiences on things that I am currently working on, past work and my interests.
Copyright © 2025