Plan: Transitioning to Forward Deployed Engineer / AI Engineer
一份分阶段路线图,供后端工程师转向 FDE 与 AI Engineer 角色——解读头衔混乱、应用型 LLM 技术栈与面试循环。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证A simple practice problem generator for media preparation in microbiology
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗A self-contained web app that drills microbiology students on the math behind preparing dehydrated culture media. Students see a randomized problem, get three attempts to enter the correct mass in grams, and on either success or failure are shown a full step-by-step ratio-and-proportion solution.
Built for Preliminary Microbiology lab instruction. Drop it on GitHub Pages and share the link — no server, no build step, no dependencies.
Once deployed, the app lives at: https://calebhendren.github.io/mediacalc/
x g / V mL = gPerL g / 1 L, the unit conversion, the cross-multiplication, and the final 2-decimal-place answer.role="math" and a plain-English aria-label so screen readers describe the math instead of trying to parse the visual fraction layout.prefers-reduced-motion respected.The student's input is parsed as a number and compared to the true answer with a tolerance of ±0.02 g (configurable). This is loose enough to accept either round-half-up or round-half-down at the 2-decimal place, but tight enough that random guesses fail.
For example, for 1635 mL of MSA the exact answer is 181.485 g. Any of the following is accepted:
.
├── index.html # Markup only — no inline CSS or JS
├── css/
│ └── styles.css # All styles
├── js/
│ ├── config.js # Media list and tunable constants — edit this
│ ├── utils.js # Formatting and random helpers
│ ├── question.js # Random question generation
│ ├── solution.js # Worked-solution HTML builder
│ ├── calculator.js # On-screen calculator widget
│ └── app.js # Entry point — wires everything together
└── README.md
The JS is loaded as native ES modules (<script type="module">), which every browser shipped in the last several years supports. There is still no package.json, no bundler, no build step.
Everything you might want to change lives in a single file: js/config.js.
export const MEDIA = [
{ name: 'nutrient agar', gPerL: 23 },
{ name: 'tryptic soy agar', gPerL: 40 },
{ name: 'citrate agar', gPerL: 24 },
{ name: 'MacConkey agar', gPerL: 50 },
{ name: 'mannitol salt agar', gPerL: 111 }
];
name is rendered directly in the problem text. Use the spelling and capitalization you want students to see (the app capitalizes the first letter at the start of a sentence).gPerL is grams of dehydrated powder per 1 L of finished medium.These default values reflect common Difco/BD formulations; verify against your own manufacturer's label before using in the actual lab.
| Constant | Default | What it controls |
|---|---|---|
COMMON_VOLUMES_ML | [100, 150, 200, 250, 300, 400, 500, 600, 750, 1000, 1500, 2000] | The "clean" classroom volumes used 75% of the time. |
COMMON_VOLUME_PROBABILITY | 0.75 | Probability (0–1) of picking from COMMON_VOLUMES_ML instead of the random range. |
RANDOM_MIN_ML / RANDOM_MAX_ML / RANDOM_STEP_ML | 100 / 2000 / 5 | Random-volume range and step size in mL. |
ANSWER_TOLERANCE_G | 0.02 | Maximum allowed error in grams when grading a student's answer. |
ATTEMPTS_PER_QUESTION | 3 | Number of guesses before the solution is revealed. The pip indicator scales to match. |
No other file needs to change. The footer count, attempts pip count, and grading tolerance all derive from these values at runtime.
Because the app uses ES modules, opening index.html directly via file:// will be blocked by the browser's module CORS rules. Run it through a local static server instead:
# Python 3
python3 -m http.server 8000
# Node (with npx, no install needed)
npx serve .
Then visit http://localhost:8000.
main branch and the / (root) folder.https://calebhendren.github.io/<repo-name>/.GitHub Pages serves the files over HTTPS, so the ES modules load with no extra configuration. No build step or GitHub Actions required.
Tested on current versions of Chrome, Safari, Firefox, and Edge, on both desktop and mobile. The app uses no build tooling and no transpilation; it relies on ES2017+ features and native ES modules, which every browser released since 2018 supports.
This app is intended for use in higher-education courses and aims to meet WCAG 2.1 Level AA.
<label> associations, validation messages are surfaced via an ARIA live region, and equation blocks expose plain-English descriptions for screen readers.If you find an accessibility issue, please open an issue on the repository.
MIT. Use it, modify it, share it with your students.