Work Services Stack About Contact Blog Start a project →
Software studio · Thailand

Software,
marked good.

From microcontrollers to mobile, CodeDMark designs, builds, and tests software that ships on time — and holds up after the next engineer reads it. C, Qt, Flutter, and a healthy obsession with tests.

โค้ดดีมาก · ทดสอบแล้ว ส่งแล้ว
We work across Embedded · CSTM32 / MCUFlutterQt / C++WebLinux SBCTesting & CI
What we do

One studio, the whole stack — from silicon to screen.

We take products from a napkin sketch to a tested, shipped build. Pick a layer, or hand us the whole thing.

Mobile apps

Cross-platform apps in Flutter — one codebase, iOS and Android, native-feeling and offline-ready.

FlutterDartiOS · Android

Embedded & firmware

Bare-metal and RTOS firmware on Cortex-M and friends. Drivers, comms, bring-up, and unit-tested logic.

CSTM32RTOS

Web apps & sites

Fast, static-first sites and dashboards. Built to deploy anywhere — including GitHub Pages — and score green on Lighthouse.

AstroJS/TSStatic

Desktop & HMI

Qt/C++ interfaces for instruments, kiosks, and industrial panels — boots cold and runs for years.

QtC++Linux SBC

EdTech & learning

Classroom-ready learning tools — adaptive practice, progress tracking, and content built for real students.

FlutterCurriculumOffline

Consulting & code audit

A second set of eyes — architecture reviews, test-coverage rescue, and getting a stalled build out the door.

ReviewCI/CDTesting
Selected work

Things we built, tested, and shipped.

A slice of the portfolio across mobile, embedded, and desktop.

M1 Hero: The Mythic Academy
EdTech · Web App

M1 Hero: The Mythic Academy

Thai-first M.1 entrance exam prep for grades 4–6 — 5 OBEC subjects, 8,000+ questions, gamified with Himmapan mythology and daily 15-minute sessions.

  • 5 OBEC subjects with 8,000+ curriculum-aligned questions for P4–P6
  • Gamified with Himmapan Magitech theme — quests, XP, ranks, and boss fights keep students coming back
  • Parent dashboard shows daily progress without interrupting the child's session
Next.js 16TypeScriptSupabaseTailwind CSSFly.io
alphascreen
FinTech · AI · Web App

alphascreen

Personalised daily AI intelligence reports for retail investors — what moved overnight, what moved your positions specifically, and what's on the calendar this week.

  • AI report grounded in live market data + your exact holdings — no hallucinated numbers
  • Delivered by email every morning before the market opens, readable in under 5 minutes
  • Dashboard shows portfolio P&L, performance vs S&P 500, and sector allocation live
Next.jsTypeScriptSupabaseClaude APIPolygon.ioResendFly.io
หุนหวย — ตรวจผลลอตเตอรี่
Mobile · Utilities

หุนหวย — ตรวจผลลอตเตอรี่

Check Thai lottery results instantly — scan your ticket or browse the full draw. Clean, fast, and works on every Android phone.

  • Results published within minutes of the official GLO draw
  • Ticket scanner using device camera — no number entry needed
  • Works offline once results are cached from the last sync
FlutterDartGoPocketBaseFly.io
English Vocab: Word Builder
Mobile · Education

English Vocab: Word Builder

TOEIC and everyday English vocabulary for Thai learners — spaced-repetition flashcards, word categories, and progress tracking.

  • 4.5-star rating on the App Store with consistent reviews on vocabulary retention
  • Spaced-repetition engine adapts review intervals to each learner's pace
  • Covers TOEIC, IELTS, and everyday categories — over 3,000 words total
FlutterDartSQLiteiOSAndroid
Learn English: Kids Flashcards
Mobile · Education · Kids

Learn English: Kids Flashcards

Early-literacy English flashcards for young Thai children — bright illustrations, audio pronunciation, and simple tracing activities.

  • Designed for ages 3–7 — large touch targets, simple navigation, no text reading required
  • Native English audio for every word — consistent pronunciation from day one
  • Covers colours, animals, food, numbers, and everyday objects across 200+ words
FlutterDartiOSAndroid
อ่านเขียน ก.ไก่ — Kids Edu Zone
Mobile · Education · Thai

อ่านเขียน ก.ไก่ — Kids Edu Zone

Thai reading and writing for young learners — consonants (ก.ไก่), vowels, numbers, and A-B-C in one app, with tracing and matching games.

  • Covers the full Thai consonant set (44 ก.ไก่), vowels, tone marks, and numbers 1–100
  • Letter tracing with stroke-order guidance — builds correct handwriting habits early
  • Matching and quiz games reinforce recognition without feeling like a test
FlutterDartiOSAndroid
Parcel Tracking — ไปรษณีย์
Mobile · Utilities

Parcel Tracking — ไปรษณีย์

Track Thailand Post parcels and registered mail instantly — paste a tracking number and see every scan event, from origin post to your door.

  • Supports all Thailand Post service types: EMS, registered mail, parcels, and COD
  • Push notifications when a parcel status changes — no manual refresh needed
  • Tracking history saved on-device — past parcels retrievable without re-entering numbers
FlutterDartiOSAndroidFirebase
Tally — Personal Expense Manager
Mobile · Finance

Tally — Personal Expense Manager

Log expenses in seconds — choose a category, enter the amount, done. Weekly and monthly summaries show exactly where the money went.

  • Expense entry in under 3 taps — designed for the moment, not the end of the month
  • Category budgets with visual progress bars — over-budget categories turn red
  • Fully offline — no account, no subscription, no data sent anywhere
FlutterDartSQLiteiOSAndroid
~/fw $ codedmark build --target=stm32f4
› compiling firmware/… (142 files)
› text=48k data=2.1k bss=8.4k
› unit tests ……………… ✓ 84 passed
› flash /dev/ttyACM0 ✓ ok

build complete · marked good ✓
Embedded · Capability

Wireless Sensor Nodes

Low-power firmware for wireless sensor nodes — a layered architecture, host-side unit tests, and CI that can flash real hardware. This is how we approach embedded work.

  • Host-side unit tests with Ceedling/CMock — logic is verified before a board exists
  • Thin HAL keeps drivers swappable and the protocol stack fully mockable
  • Low-power design patterns: Stop mode between measurements, peripherals power-gated
CSTM32LoRaCeedlingCMockGitHub Actions
Desktop · Capability

Touchscreen HMI Panels

Qt/C++ touchscreen HMIs on fanless Linux SBCs — live telemetry, configurable alarms, and a fast cold boot that runs unattended. This is how we approach industrial UI work.

  • Qt EGLFS on bare Linux — renders straight to the framebuffer, no desktop needed
  • Unified driver layer so Modbus RTU (RS-485) and Modbus TCP look the same to the UI
  • Watchdog + systemd auto-recovery patterns for unattended, long-running deployments
QtC++LinuxModbus RTUModbus TCPsystemd
Deploy ✓
Web · Static

Marketing & Docs Sites

Fast static sites and product docs built with Astro — component-driven, content in Markdown, auto-deployed on push. This site is the reference implementation.

  • 95–100 Lighthouse score on performance, accessibility, and SEO — consistently
  • Content authors update copy in Markdown — no CMS login, no build step on their end
  • Sub-2-second TTFB from Thailand via GitHub Pages CDN, zero server to maintain
AstroTailwind CSSGitHub ActionsCloudflare DNSMarkdown
Tech & skills

The tools we reach for.

Deep where it counts, pragmatic everywhere else. We pick boring, proven tools and test them hard.

Mobile

  • Flutter
  • Dart
  • Riverpod / Bloc
  • SQLite / Isar
  • Offline-first sync

Embedded

  • C / C++
  • STM32 · Cortex-M
  • FreeRTOS
  • I²C · SPI · UART
  • Ceedling / Unity

Desktop & Web

  • Qt / C++
  • Linux SBC
  • Astro · TypeScript
  • Tailwind
  • Static / Jamstack

Quality & ops

  • Unit & integration tests
  • GitHub Actions CI
  • On-target test rigs
  • Git · code review
  • Semantic releases
How we work

Plain. Precise. Proven.

No buzzwords, no surprises. Numbers over adjectives, evidence before promises.

— 01

Scope

We map the real problem, the constraints, and what "done" means — in writing, before a line of code.

— 02

Build

Short cycles, working software early. You see progress every week, not a black box for a month.

— 03

Test

Unit tests, integration tests, and on real hardware where it matters. If a teacher would tick it, we keep it.

— 04

Ship

A clean handoff — tested build, docs, and a repo your next engineer can actually read. Marked good.

About

A small studio that ships like a big one.

CodeDMark is a software studio out of Thailand. The name is a promise that works in two languages: in English it reads as a developer's mark on the work; in Thai, โค้ดดีมาก — "code that's very good."

We come from embedded — where a bug means a field return, not a hotfix — so testing isn't a phase, it's a habit. That discipline travels with us up the stack to mobile and web.

Founded by Bancha Rajainthong. We take on a small number of engagements at a time, so the people who scope your project are the ones who build it.

Tested Shipped Measured
CodeDMark.
Software studio · est. Thailand
Entity บริษัท โค้ดดีมาก จำกัด
Registered CODEDMARK Co., Ltd.
Focus Embedded · Mobile · Web
Email eswizardry@gmail.com
GitHub github.com/eswizardry
Start a project

Have something to ship?

Tell us what you're building. We'll come back with a plain, precise answer — scope, timeline, and what "done" looks like. No buzzwords.