<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Engineering | Dylan Chiang</title><link>https://dylanchiang-dev.github.io/en/tags/engineering/</link><atom:link href="https://dylanchiang-dev.github.io/en/tags/engineering/index.xml" rel="self" type="application/rss+xml"/><description>Engineering</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>en-US</language><lastBuildDate>Sat, 03 Oct 2026 00:00:00 +0000</lastBuildDate><image><url>https://dylanchiang-dev.github.io/media/icon_hu_982c5d63a71b2961.png</url><title>Engineering</title><link>https://dylanchiang-dev.github.io/en/tags/engineering/</link></image><item><title>Quotabase-Lite: Quotation and Receipt Management</title><link>https://dylanchiang-dev.github.io/en/project/quotabase/</link><pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate><guid>https://dylanchiang-dev.github.io/en/project/quotabase/</guid><description>&lt;p>Quotabase-Lite is an open-source web application for small-business quotation workflows. I integrated customers, products and services, quotations, states, and receipts using native frontend code, PHP, and MySQL/MariaDB.&lt;/p>
&lt;h2 id="my-work">My work&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Business workflow&lt;/strong>: Connected customer management, catalog data, quotation creation, and status tracking.&lt;/li>
&lt;li>&lt;strong>Amounts and transactions&lt;/strong>: Stored amounts as integer cents and used database transactions for related writes.&lt;/li>
&lt;li>&lt;strong>Frontend and backend&lt;/strong>: Implemented PHP with limited Composer dependencies and native HTML/CSS/JavaScript, including tab navigation and dark mode.&lt;/li>
&lt;li>&lt;strong>Basic safeguards&lt;/strong>: Used PDO prepared statements, CSRF checks, and output escaping without claiming an independent security audit.&lt;/li>
&lt;li>&lt;strong>Print and receipts&lt;/strong>: Built A4 print views, personal receipts, and QR/hash verification entry points.&lt;/li>
&lt;li>&lt;strong>Export and deployment&lt;/strong>: Supplied CSV/JSON exports and installation documentation within a lightweight, framework-free architecture.&lt;/li>
&lt;/ul>
&lt;h2 id="workflow">Workflow&lt;/h2>
&lt;figure>&lt;img src="https://dylanchiang-dev.github.io/project/quotabase/workflow.png"
alt="Quotabase-Lite customers, catalog, quotation states, printing, and receipt-verification flow.">&lt;figcaption>
&lt;p>An original functional diagram with no real customer names, amounts, transaction IDs, or documents. It is not a product screenshot.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="boundaries">Boundaries&lt;/h2>
&lt;p>This page presents engineering work, not unverified performance benchmarks. Receipt verification is not presented as a guarantee of legal validity or regulatory compliance.&lt;/p>
&lt;p>
&lt;/p></description></item><item><title>ShellMate: A Browser-Based SSH Workbench</title><link>https://dylanchiang-dev.github.io/en/project/shellmate/</link><pubDate>Sat, 03 Oct 2026 00:00:00 +0000</pubDate><guid>https://dylanchiang-dev.github.io/en/project/shellmate/</guid><description>&lt;p>ShellMate is a Web SSH workbench I developed for managing multiple hosts. It brings host settings, interactive terminals, and reusable commands into a deployable single-machine prototype.&lt;/p>
&lt;h2 id="my-work">My work&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Live terminal integration&lt;/strong>: Connected React, TypeScript, and xterm.js to Node.js/ssh2 through bidirectional WebSocket communication.&lt;/li>
&lt;li>&lt;strong>Hosts and tabs&lt;/strong>: Implemented host editing, grouping, and terminal-tab switching.&lt;/li>
&lt;li>&lt;strong>Command snippets&lt;/strong>: Organized reusable commands into groups and sent them to the active terminal.&lt;/li>
&lt;li>&lt;strong>Basic access controls&lt;/strong>: Integrated login, JWT API authentication, password hashing, and encrypted host-password storage.&lt;/li>
&lt;li>&lt;strong>Backend structure&lt;/strong>: Separated authentication, host data, snippets, SSH sessions, and WebSocket handlers, with clearer connection errors.&lt;/li>
&lt;li>&lt;strong>Deployment tradeoffs&lt;/strong>: Supplied Docker/Compose deployment and lightweight JSON storage without claiming large-scale multi-user capability.&lt;/li>
&lt;/ul>
&lt;h2 id="architecture">Architecture&lt;/h2>
&lt;figure>&lt;img src="https://dylanchiang-dev.github.io/project/shellmate/architecture.png"
alt="ShellMate host management, terminal interaction, WebSocket backend, and SSH connections.">&lt;figcaption>
&lt;p>A conceptual diagram containing no real hosts, addresses, accounts, or credentials. It does not expose a live SSH service.&lt;/p>
&lt;/figcaption>
&lt;/figure>
&lt;h2 id="scope">Scope&lt;/h2>
&lt;p>This project demonstrates frontend, realtime communication, backend, and deployment integration. Basic safeguards are not independent security certification; finer permissions and scalable multi-user storage remain extension areas.&lt;/p>
&lt;p>
&lt;/p></description></item></channel></rss>