Software Engineer & Tech Lead · Tokyo

Nabin Shahi

Software engineer in Tokyo. I build mobile and web products — recently StreakSpot, an offline habit app for iPhone and Android.

Work

StreakSpot

2026

Offline habit app for iPhone and Android. Build streaks for the gym, class, or any place you go — check in when you arrive or by hand. Keep daily macros on the same phone.

React Native · Expo · SQLite · Next.js · App Store in review · Android APK live

Details

No account. No cloud. No ads. Streaks, visits, and meals live in on-device SQLite until you export them. Apple App Privacy: data not collected. Backup is a file you keep, not a cloud account.

  • Place-based streaks

    Tie a habit to a real place. Geofences can check you in when you arrive, even if the app is closed.

  • Manual when you need it

    Log visits by hand, confirm automatic check-ins, or skip Always location. Rest days and a start date stay in the streak math.

  • Clock reminders

    Optional times on any activity — medication, a class, a walk. They ping on active weekdays only and never log a visit.

  • Macros, simply

    Log meals with calories; protein, carbs, and fat optional. No camera, barcode, food search, or AI.

  • Private by design

    No StreakSpot account or backend. Location and notifications stay on-device. Export JSON through the share sheet.

  • Marketing site

    Next.js site at streakspot.com with i18n, privacy/terms, and the sideload APK until Play is live.

More work

NabiJapan

2025

Scan Japanese notices, letters, and documents, then stay on local garbage and recycling days.

React Native · Next.js · Supabase · OpenAI

Details

React Native client with a Next.js and Supabase backend. Built for people living in Japan who need the paper on the wall to make sense, and the collection calendar in their pocket.

  • Scan & understand

    Point the camera at a Japanese notice and get a clear explanation.

  • Garbage schedules

    Burnable, recyclable, and other collection days by address.

  • Reminders

    Local reminders so a collection morning does not sneak up.

ShifuTori

2025

Multi-tenant shift scheduling for teams: orgs, roles, invites, and AI-assisted generation.

React · Supabase · Stripe · Edge Functions

Details

Stripe billing (Free / Pro / Pro Max). Postgres RLS so one workspace never sees another. Staff see only their published shifts; admins manage the org.

  • Multi-tenant RLS

    Memberships are per-org. Cross-tenant reads and writes are blocked in the database.

  • AI scheduling

    Generate shifts, query the roster in natural language, and parse availability — keys stay in Edge Functions.

  • Billing

    Checkout and Customer Portal. Seat caps and AI quotas enforced in RPCs and triggers.

WayToJapan

2025

Language support, visa guidance, translation, and booking for people settling in Japan.

Next.js · Prisma · Resend · Docker

Details

Next.js marketing and product surface with Prisma, Resend email, and Docker for deploy.

  • Services

    Translation, Japanese learning, visa help, and cultural consulting.

  • Booking & contact

    Appointment booking and contact management on the same site.

MyRemit

2025

For foreign workers in Japan: live JPY → NPR rates, fee comparison, transfer logs, and alerts.

Next.js · Python · Supabase · Prisma

Details

Next.js and Supabase on the front. A Python scraper watches Wise, Smile, and Kydai every few minutes.

  • Rate compare

    See what each provider actually costs after fees, not just the headline rate.

  • Alerts

    Notify when the rate moves into a range you set.

  • Transfer log

    Keep a personal history of what you sent and when.

Interview Helper

2026

Desktop interview prep: live Japanese transcription, romaji and English, optional GPT answers.

Electron · OpenAI · Supabase · Stripe

Details

Electron app. Whisper realtime for speech, Kuroshiro + MyMemory for a free local path, GPT-4o-mini when you turn AI on. Stripe plans after a 10/day free cap. Notes mode with a cheat-sheet grid.

  • Interview mode

    Three panes: local translation, AI translation, AI answers. Font size and always-on-top.

  • Notes mode

    Q&A cards, focus overlay, hidden from screen capture when stealth is on.

  • Usage

    Free 10/day. Monthly, yearly, and lifetime via Stripe Checkout.

Barber Ohana

2025

Bilingual site for an appointment-only shop in Ichigao — English and Japanese, three themes.

HTML · CSS · Vercel

Details

One self-contained HTML file: hero, services and prices, booking form, hours, and a map. Theme and language persist in localStorage.

  • EN / 日本語

    Floating switcher: English, Japanese, or both.

  • Themes

    Warm sepia, indigo dark, and indigo light.

Appointo

2025

Tutoring marketplace: teachers, courses, calendars, bookings, messages, and progress.

Next.js · Prisma · SQLite · shadcn/ui

Details

Next.js App Router with Prisma and SQLite. Teachers, time slots, my-bookings, certificates, and a messages inbox.

  • Booking

    Pick a teacher and a slot; upcoming vs completed in one list.

  • Courses

    Math, English, programming, physics — each with duration and rate.

CoinLotto

2025

Mobile lottery: tickets, daily draws, invites, and ads. Expo client with a Django API.

Expo · React Native · Django · Appwrite

Details

Tabs for the wheel, gems, invite, and account. Appwrite/auth on the client; lottery CRUD and draws on the backend.

  • Draws

    List and enter lotteries; daily draw on the home tab.

  • Ads & invites

    Watch ads for coins; invite flow for extra entries.

MillionairesTrust

2025

Investment platform shell — auth, theming, and a Next.js app ready for live market data.

Next.js · Supabase · shadcn/ui

Details

Supabase Auth with SSR, light/dark/system theme, shadcn/ui. Prisma/SQLite and Stream SDKs stubbed for later.

LocalVault

2025

Raycast extension that searches secrets on your machine without showing the full value.

TypeScript · Raycast

Details

Built so you can find a key while screen-sharing. Search from the Raycast bar; only the key name plus first and last character of the secret are shown.

Learning26 items

Course work, clones, and labs from private backups — including the vscode and pycharm repos. These are how I learned the stack, not products I ship.

  • Django

    Django · Python · Bootstrap

    Full course path — HTML/CSS/JS, forms, users, class-based views, then a blog clone and a social clone.

  • Storefront

    Django · SQLite

    A Django shop playground with likes, tags, and store models.

  • Evo Blog

    Django · Templates

    A Django blog with posts and a todo app — an early personal CMS.

  • EvoAus

    Django · React

    A Django API with a React front — an early full-stack experiment.

  • JapanEasy Engine

    Django · DRF · Python

    Django REST for kanji, vocabulary, chat, and translation.

  • Flask

    Flask · Python

    Small Flask sites and APIs from the PyCharm practice folder.

  • React

    React · TypeScript

    Expense tracker, Material UI app, and the Game Hub course project.

  • Game Hub

    React · TypeScript

    A RAWG game browser — search, filters, and dark UI.

  • Next.js playground

    Next.js · TypeScript · Prisma

    Issue tracker and course notes while learning the App Router.

  • JapanEasy web

    Next.js · Prisma · NextAuth

    A Next.js blogs app: auth, likes, search, and a post editor.

  • JapanEasy Expo

    Expo · Auth Session

    Expo app wired to Google login on iOS, Android, and web.

  • WhatsApp clone

    Expo · React Native

    Expo chat UI — gifted-chat, OTP field, and a custom dev client.

  • Evo Mart

    Expo · Expo Router

    React Native job search — popular roles, nearby listings, detail pages.

  • Nihongo Chat

    Next.js · AI SDK

    AI chatbot from the Vercel Chat SDK — Next.js, Neon, Auth.js.

  • DSA lab

    Python

    Data structures and algorithms practice in Python.

  • Python practice

    Python · Jupyter

    OOP, everyday scripts, Jupyter notebooks, and API drills.

  • Web scraping

    Python · Selenium · pandas

    Scrapers and pandas notebooks for collecting and cleaning data.

  • Small tools

    Python · JS

    OCR, QR codes, PDF, email, notify, and a YouTube downloader.

  • Docker & Kubernetes

    Docker · Kubernetes

    Hello-docker labs plus Kubernetes notes and operator examples.

  • gRPC

    gRPC · Python · Flask

    Hello world, calculator, Flask, and todo services.

  • HashiCorp Vault

    Vault · Python

    Vault CLI, auth methods, policies, tokens, and a local server lab.

  • Evo CLI

    Python

    A small command-line tool packaged with setup.py.

  • Auth web

    Node · EJS

    Early email/password pages in EJS.

  • CI/CD hello-world

    Python · CI

    A tiny Python app used to wire up a pipeline.

  • Ops notes

    AWS · Jenkins · Linux

    AWS, Jenkins, Linux, SQL, Git, WSL, and Kali / Sherlock notes.

  • School web

    HTML · CSS · Kotlin

    HTML/CSS sites, a group project, and a Kotlin prime-number assignment.

Stack

Used in shipped work and in labs — Django, gRPC, Vault, Docker, Kubernetes, scraping, DSA — kept as notes, not as products.

Languages
TypeScript, Python, SQL, HTML/CSS, Kotlin
Product
React Native, Expo, Next.js, React, Electron, Raycast
Backend
Postgres, SQLite, Django, Flask, gRPC, Prisma, Supabase
Infra
Docker, Kubernetes, HashiCorp Vault, AWS, CI/CD, Stripe

About

I design and ship products end to end: React Native apps, Next.js sites, and the backends that keep them running. Day to day that is TypeScript, Python, and Postgres.

I work in Tokyo. Recent personal work is privacy-first mobile and tools for people living in Japan.