Skip to content
Apurbo Islam

One engineer. The whole stack.

I am the engineering department at NV Store, a Bangladeshi e-commerce business selling home decor and appliances. I built and run the storefront, the ERP and CRM, CI/CD, monitoring, backups, databases and the phone system.

AI · PHOTO
Role
CTO at NV Store
Origin
Bangladesh
In production

The stack, top to bottom

Every parcel below is something I built and still run in production.

The store customers see

PKG 1/8

NV Store storefront

The customer-facing e-commerce site, in production at nvstore.shop.

Problem
NV Store needed its own online store for home decor and appliances, one it could change quickly without waiting on a vendor.
Approach

I built the full site: catalog, product pages, cart, checkout and the admin side the team uses every day. It shares its data with the in-house ERP, so stock and orders stay in one place.

Outcome
The store is live at nvstore.shop and is the main place customers browse and order. It is the demo for everything on this page.
  • Storefront
  • Checkout
  • Admin
  • Search

Where everything is stored

PKG 2/8

Four stores, each picked for one kind of job.

MariaDB
Main relational store for orders, products and customers. Also holds the vector index for product search.
Redis
Cache, sessions and short-lived job queues.
MySQL
Relational workloads for tools that expect MySQL.
MongoDB
Document data where a fixed schema would get in the way.

AI that saves the team time

PKG 3/8

Three features in daily use. Each one removes a manual step, and a person stays in the loop where mistakes would cost money.

  1. raw input
  2. prompt template
  3. language model
  4. schema check
  5. human review
Generation and extraction flow

AI product description generator

Turns raw product input into a polished description. Already used on nvstore.shop.

Problem
Writing a good description for every product took time, and quality varied by who wrote it.
Approach

Staff enter what they know: name, material, size, color, a few notes. The system builds a prompt from a fixed template, generates a draft, and puts it in front of a person to accept or edit before it goes live.

Outcome
New products get a consistent, readable description from a few raw notes. It is used on nvstore.shop today.
  • Language model
  • Prompt templates
  • Review step

product notes

name: Ceramic table vase
material: ceramic, matte glaze
color: white
size: 30 cm
notes: gift box, good for living room

generated description

A matte white ceramic vase, 30 cm tall, that fits a living-room shelf or a dining table. The soft glaze works with fresh or dried flowers. Arrives in a gift box, ready to give.
Example with made-up data.

AI customer detail parser

Moderators paste a messy customer message and the system fills the ERP order fields.

Problem
Customers send their details as free text in chat, mixed Bangla and English, in any order. Moderators had to copy each field into the order form by hand.
Approach

The moderator pastes the raw message into the order screen. A model extracts name, phone, address and order details into a fixed schema. Validation checks the phone format and matches the address against known districts and areas. The form is filled, and the moderator reviews it before saving.

Outcome
Less moderator effort when adding orders. They paste once, check the filled fields, and save.
  • Language model
  • Structured output
  • Validation
  • ERP form

pasted message

vai amar nam Rahim Example
01700-000000
basa house 00 road 0 example para mirpur 10 dhaka
2 ta lagbe, white ta

filled order fields

name      Rahim Example
phone     01700-000000
address   House 00, Road 0, Example Para
area      Mirpur
district  Dhaka
quantity  2
note      white
Example with made-up data.

Vector product search

Text search, image-to-image and image-to-product search with an embedding model and MariaDB as the vector database.

Problem
Customers and staff often know what a product looks like but not what it is called. Keyword search fails them.
Approach

Each product’s images and text are passed through an embedding model and stored as vectors in MariaDB next to the product row. A search query, typed or uploaded as a photo, is embedded the same way, and the nearest products come back ranked by similarity.

Outcome
Less effort to find products. People can search with words or a photo.
  • Embedding model
  • Vector index
  • MariaDB

search

query:  "white round vase"   (text)
   or:  photo of a vase       (image)

results

1  Ceramic table vase, white
2  Round glass vase, frosted
3  Ceramic bud vase, ivory
ranked by embedding similarity
Example with made-up data.
  1. text or photo
  2. embedding model
  3. vector index
  4. ranked products
Vector search flow

The system the team runs on

PKG 4/8

ERP + CRM

In-house system for orders, inventory, customers, roles and permissions.

Problem
Orders, stock and customer history lived in different places. Moderators lost time switching between them, and access control was all or nothing.
Approach

I designed the data model and built the application around how the team actually works: a moderator takes an order, the warehouse sees it, stock updates, and the customer record keeps the history. Roles and permissions decide who can view, edit or approve each step.

Outcome
One system the whole team works in, with roles that limit each person to what their job needs.
  • Orders
  • Inventory
  • Customers
  • Roles & permissions

Work that happens on its own

PKG 5/8

n8n Facebook comment automation

Replies to comments on NV Store's Facebook page and moves price or detail requests to the inbox.

Problem
Many Facebook comments ask the same thing, "price?" or "details?". Answering each one by hand was slow, and public replies are the wrong place for a sales conversation.
Approach

An n8n workflow listens for new comments on the page. It checks whether the comment asks about price or details. If so, it replies publicly and sends the person a private message so the conversation continues in the inbox.

Outcome
Comments get a reply without someone watching the page, and buyers are moved to the inbox where the sale actually happens.
  • n8n
  • Facebook page events
  • Message routing
  1. page comment
  2. n8n trigger
  3. asks price?
  4. public reply
  5. inbox message
Facebook comment to inbox

The phone line

PKG 6/8

Call system

FusionPBX on a VPS for NV Store's customer calls, with IVR and queues.

Problem
Customer calls needed to reach the right person, and calls should wait in line instead of being missed.
Approach

I set up and run FusionPBX on a VPS for NV Store’s support line: IVR menus route callers, and queues hold calls until an agent is free. Running it in production led to my upstream fix for the FIFO queue (FusionPBX pull request #8225).

Outcome
A self-hosted phone system with an IVR menu and call queues. While running it I found and fixed a FIFO queue bug upstream.
  • FusionPBX
  • IVR
  • Call queues
  • VPS
  1. caller
  2. IVR menu
  3. call queue
  4. agent
Inbound call path

Keeping it all up

PKG 7/8

Reliability & ops

CI/CD, monitoring, encrypted automated off-site database backups and database administration.

Problem
With one engineer, every deploy and every outage lands on the same person. The system has to be boring to operate.
Approach

Every push runs through GitHub Actions, builds a container image, and deploys it. Monitoring checks the public services and alerts me when something breaks; the 90-day history is public on the status page. Databases are backed up automatically, encrypted, and copied off-site.

Outcome
Deploys are automatic, uptime is public, and backups run without anyone remembering to do them.
  • GitHub Actions
  • Container images
  • Monitoring
  • Off-site backups
  1. git push
  2. GitHub Actions
  3. container image
  4. deploy
  5. monitoring
Deploy pipeline
Track it yourselfuptime.nvstore.shop90 days of uptime, in public.NV Store’s status page shows every check and incident for the last 90 days. Monitoring by Better Stack.View the status page

Open-source toolbox

PKG 8/8

Packing list: skills

19 items
Languages
  • JavaScript
  • TypeScript (Node.js)
  • Go
  • Rust
  • Java
  • Python
Data
  • Redis
  • MariaDB
  • MySQL
  • MongoDB
Frameworks
  • Laravel
  • React
  • Next.js
  • Astro
Ops & tooling
  • Docker / Compose
  • GitHub Actions
  • Cloudflare
  • n8n
  • FusionPBX

Private by design

Production code belongs to NV Store and stays private, and so does customer data. So this page shows the problem, the approach and the outcome instead of source code. The live store is the demo. Code I can share is in the open-source toolbox above.

Education
Diploma in Engineering, Computer Science & Technology (CST), Barisal Polytechnic Institute. Currently in 4th semester.
Next
Computer Science abroad, focused on AI, machine learning and deep learning.