full stack developer / software engineer — malaysia

hai!

I'm Myra Annatasha

I enjoy building software for people. quick to adapt, driven by curiosity — in it for the coding adventure.

~/about

Tech Enthusiast — Constantly exploring and experimenting with web, mobile, and blockchain development.

Dreamer — Aspiring to contribute to the tech world with creativity and meaningful solutions.

Adaptability — Quick to adapt to new technologies, frameworks, and methodologies.

in short

endlessly curious.highly adaptable.always shipping.

~/stack

Stack

Frontend

  • React
  • Next.js
  • TypeScript
  • JavaScript
  • HTML
  • CSS
  • TailwindCSS
  • Bootstrap

Backend

  • Node.js
  • Express
  • PHP
  • Laravel
  • Solidity
  • MySQL

Tools

  • AWS
  • Python
  • Figma
  • Unity
  • Postman
  • Git

~/experience

Experience

  1. March 2024 — Present

    Web Application Developer · 123RF Technology Sdn. Bhd.

    • payment gateways & third-party APIs for global checkout.
    • reusable React components, production debugging, and scripted automation.
    • guiding the team on AI-assisted workflows and tooling.
  2. January 2020 — July 2020

    Intern Trainee · Sarawak Information Systems Sdn. Bhd. (SAINS)

    • secure CRUD apps with PHP & MySQL, built to OWASP standards.
    • computer forensics research + evidence-management tooling.

~/agentic

Shipped with agents

Case studies of what I've shipped with a team of AI agents.

  1. 01 · 123RF MCP Server
  2. 02 · more coming soon

Live · Claude Connectors DirectoryOpenAI · in review

123RF MCP Server

built at 123RF, 2026

Lets AI assistants search and license 123RF images. Built with my own agent workflow: its loop, graph, tools and skills.

  1. meticket (my decision)
  2. plan
  3. meapprove (my decision)
  4. build & check
  5. push & report
  6. code review
  7. agent QA
  8. memerge (my decision)
  9. QA team
  1. 1 of 9 · ticket · meI handed a Jira ticket to the lead agent, which started a developer agent in its own worktree.
  2. 2 of 9 · planThe agent planned; Opus wrote the plan and critiqued it.
  3. 3 of 9 · approve · meNothing was built until I approved the plan.
  4. 4 of 9 · build & checkTests first, then the code. Lint, type check and tests ran on their own.
  5. 5 of 9 · push & reportThe agent pushed its own branch and wrote a report.
  6. 6 of 9 · code reviewA read-only Opus reviewer read the changes and gave a verdict.
  7. 7 of 9 · agent QAA QA agent checked each acceptance criterion in a browser first.
  8. 8 of 9 · merge · meI merged it to staging.
  9. 9 of 9 · QA teamThen it went to our QA team to test.

~/agentic/123rf-mcp

123RF MCP Server

Lets AI assistants search and license 123RF images. Built with my own agent workflow: its loop, graph, tools and skills.

role
Web Application Developer, 123RF
year
2026
status
Live in the Claude Connectors Directory · OpenAI in review

01

The problem

More and more work now happens through AI agents. When an agent builds a landing page, a slide deck or a blog post, it needs images, and they have to be properly licensed.

123RF wanted its library exposed as tools an agent can call, so people could automate that part of their workflow: search, license and drop in the image without leaving the conversation.

02

What it does

  • Search millions of stock images in plain language
  • License and download an image to your 123RF plan from inside your AI assistant
  • search_assets: search the 123RF library in plain language
  • download_stock: license an image to your 123RF plan and download it
  • get_stock_balance: check how many downloads are left on the plan
The 123RF MCP landing page
The landing page at 123rf.com/mcp, also built with the agent workflow.

03

The graph

A lead agent sat in the middle. Each Jira ticket got its own developer agent in its own git worktree, so agents never touched each other’s files. Big tickets split into parts (database, API, UI) built in parallel by sub-agents in that same worktree. A live board tracked every agent, and the lead brought me only the decisions.

worktreeagent · ticket Adbapiuiworktreeagent · ticket Bapiuiworktreeagent · ticket Cmeteam leadthe board
  • Me

    Approved plans, posts to Jira and merges.

  • Team lead · Opus

    Picked a playbook per ticket, started the developer agents, and brought me only the decisions.

  • Developer agents · Sonnet

    One per ticket, each in its own worktree; big tickets split into parts built in parallel.

  • The board · herdr mod

    A live panel of every agent: its goal, checklist and next step.

  • Review lead · Sonnet, own session

    Watched Jira every 15 minutes and ran code review and QA, so the team lead was never interrupted.

  • Code reviewer · Opus, read-only

    Read each branch’s changes and gave a verdict with findings.

  • QA agent · Sonnet + Playwright

    Tested each acceptance criterion in a headless browser, with a screenshot per check.

  1. meticket (my decision)
  2. plan
  3. meapprove (my decision)
  4. build & check
  5. push & report
  6. code review
  7. agent QA
  8. memerge (my decision)
  9. QA team

04

The loop

Every ticket ran the same loop inside its agent. A failing check or a major review finding sent it back to fixing; approving the plan always stopped for me.

fails → fixmajor finding → fixplanapprovetests firstbuildchecks3 reviewsreport
  • The same check failing 3 times: recorded as stuck, no more retries
  • 30 minutes without progress: one nudge; 60 minutes: it came to me
  • No report after 3 hours: a status check
  • The lead answered the same question twice at most, then asked me

05

The harness

Everything around the agents: what they read, what ran on its own, and what they couldn’t do.

  • herdr: a terminal workspace per agent; the lead talked to each one through it
  • Rules in layers: short global rules for every agent, then the repo’s rules, skills and a playbook, loaded only when they applied
  • Playbooks per kind of work (feature, bug, refactor, QA), each with a "done when" finish line
  • Hooks: lint after every edit; type check and tests before finishing, committing or pushing; no pushes to main or staging
  • Auto mode: routine commands ran without asking; risky ones stopped for my approval
  • Models: Opus for the lead, planning and review; Sonnet for building and testing
  • Anything that spends money, like paid APIs or live payments, waited for me

06

Code review and QA

QA was agent-run end-to-end acceptance testing: an agent drove the running app in a headless browser, like a user would, and checked every acceptance criterion on the ticket. The checks were planned fresh from each ticket rather than kept as a scripted suite.

  • At Code Review in Jira, a read-only Opus reviewer read the branch and gave a verdict; after two failed re-reviews it came to me
  • At Ready for Test, a QA agent planned one check per acceptance criterion, plus edge cases
  • It ran the app in its own worktree, port and headless Playwright browser, logged in with a test account, and took a screenshot per check
  • It never started the background worker, so nothing it clicked could spend money
  • Its report was linked in Jira: a pass moved the ticket to Done, a fail to Pending Bug Fix
  • Only after that did I merge to staging for our QA team to test

07

Testing, layer by layer

  • Developer agents: unit and integration tests written first, before the code
  • Hooks: lint after every edit; type check and related tests before finishing, committing or pushing
  • Code reviewer: a read-only verdict on every branch
  • QA agent: end-to-end acceptance checks in a headless browser, one per criterion
  • QA team: manual testing on staging after I merged

08

Getting listed

  • Built to Anthropic's and OpenAI's published guidelines for listing an MCP server
  • Passed automated review and went live as a community connector in the Claude Connectors Directory
  • Submitted to OpenAI; currently in review
The 123RF listing in the Claude Connectors Directory
The 123RF listing in the Claude Connectors Directory.

09

Results

  • Live in the Claude Connectors Directory since October 2026, and in review with OpenAI
  • Works across assistants: Claude, Claude Code, Cursor, OpenClaw and Hermes
  • Three tools for agents: search_assets, download_stock and get_stock_balance
  • The connector and its landing page were both built with this agent workflow

~/work

Selected Work

  1. This Site preview

    01 / 04 · portfolio · you are looking at it · 2026

    This Site

    A living WebGL fluid under a starlit sky, choreographed with GSAP — designed and built from scratch.

    Next.jsTypeScriptWebGLGSAP

  2. Code With the Motion preview

    02 / 04 · algorithm visualizer · web app · 2026

    Code With the Motion

    LeetCode solutions you can watch — the executing line lights up in sync with an animated walkthrough, frame by frame.

    Next.jsTypeScriptReactVitest

  3. Speak Out preview

    03 / 04 · game-based learning · research · 2020 — 2021

    Speak Out

    A Unity game-based learning app, built with a hybrid Agile approach and evaluated through the IS Success Model with SPSS statistical analysis.

    C#UnityIBM SPSSAgile

  4. Thirst Milkshake preview

    04 / 04 · e-commerce · web app · 2019 — 2020

    Thirst Milkshake

    A Laravel e-commerce platform built hands-on with Thirst Milkshake & Smoothies Bar's founder — from storefront to order flow.

    LaravelPHPMySQLBootstrapJavaScript

~/hackathons

Built in a weekend

2026 · 48h

FinHack · Touch 'n Go

Participant

A POS system for SMEs with automated e-invoicing baked into checkout and AI-driven insights on sales data.

Next.jsNode.jsPythonGenAI

2025 · 48h

CyberView Hackathon

Top 4

A GenAI travel planner that skips the tourist traps — surfacing authentic local experiences and turning hours of review-scrolling into a solid itinerary in minutes.

Next.jsPythonGenAI

2024 · 24h

123RF Hackathon

Participant

An AI slide generator that writes the deck content and pulls matching visuals straight from the 123RF photo stock library.

GenAINext.jsPython

~/contact

Let's build something.

github ↗