跳到主要内容

我的故事

一段关于代码、开发者工具与构建软件的个人叙述。

Emil Krebs(爱米尔)是德国基尔 TypeFox 的软件工程师。

我一直想发明新东西,解决问题,做些有意思的东西。许多项目从未发布,有一些留在了这里。

前传

发明家的雏形

在一切成真之前,我把自己的构想和发明画在一个小本子上,梦想着发明出某种革命性的东西。如今我才明白,这才是最重要的部分:去梦想不可能的事,并保持创造力。

10 岁 - 起点

第一台电脑,第一行代码

10 岁那年,我有了第一台电脑,还有一本讲可视化编程语言 Scratch 的书。那是我第一次接触软件工程。

用它做了些东西之后,我开始不满:这些游戏没法脱离 Scratch 独立运行。正是这份不满,点燃了我对专业软件开发的兴趣。我学的第一门文本编程语言是 Python,它教会了我所有基础,也带我初步走进了这个新世界。

很快,我对这个生态的探索越来越深,但我想做游戏,于是接触了 Unity 和 C#。我很快发现 C# 对当时的我来说太复杂,于是通过编写简单的桌面应用来学习它,主要靠阅读 GitHub 上其他项目的源代码。与此同时,我迷上了 Web 开发,做出了自己的第一个前端,尽管并不真正明白自己在做什么。

工具

ScratchPythonUnityC#HTMLCSS

十二三岁

Java、Minecraft 插件与 Discord 机器人

在第一批脚本和第一批客户之间,是一段为做而做的时期。

Minecraft 服务器插件教会了我 Java,而且是用最难的方式:配置文件、堆栈跟踪,还有一天重启上百次的服务器。

差不多同一时期,我开始写 Discord 机器人:有些有用,大多数毫无意义,但每一个都很好玩。重点从来不是机器人本身,而是我可以在傍晚做出点什么,朋友们当晚就能用上。

那些早期实验有一部分仍在 GitHub 上。这些卡片上的图标是我自己设计的,在 AI 设计工具出现之前亲手绘制。

工具

JavaMinecraft 插件Discord 机器人
PlayerPrefs 截图

PlayerPrefs

在 Spigot 中为每位玩家设置和读取偏好的简易工具。

JavaSpigot
Sound-Bot 截图

Sound-Bot

在语音频道中不间断播放音效或音乐的 Discord 机器人。

TypeScriptDiscord

少年时代

第一批客户,第一批课程,第一次登台

我一步步开始真正理解事物的运作方式,也接到了最初几份有偿的专业咨询工作,为朋友和熟人提供简单的前端支持。

我第一次体验了大学:在 OpenCampus 修读游戏开发、JavaScript、市场营销和创业课程,拿到了正式证书和我的第一批 ECTS 学分。我也投身创业圈,参加了 Waterkant 等活动,完成了第一次路演和演讲。我的第一次演讲是在 15 岁,在 OpenCampus 的学期开幕式上。从那以后,OpenCampus 和 Waterkant 一直是推动我职业发展的最重要力量之一。

在代码之外,我也在学习如何打动观众:我制作的 3D Minecraft 动画,先用 Mine-Imator,后来用 Blender,让我的 TikTok 涨到了 9.7 万粉丝。这个账号至今仍在,虽已沉寂,但仍属于我。

OpenCampus 课程

游戏开发JavaScript市场营销创业
Nitrado-Bot 截图

Nitrado-Bot

用来控制 Nitrado 游戏服务器的 Discord 机器人。

TypeScriptDiscord

15 岁 - Initial Commit

在 TypeFox 实习

我真正的职业生涯,始于在 TypeFox 的第一次学生实习。在这里,我学到了企业级工程与版本控制的基础,并和一位前同事一起创建了 SimpleUI-DSL。

SimpleUI-DSL 截图

在线 - github.com/TypeFox/langium-ui-framework

SimpleUI-DSL

一种描述用户界面的领域特定语言,实习期间与一位前同事共同构建。

LangiumTypeScriptDSL

在 TypeFox 的一年半

兼职:前端架构与语言工程

不久之后,我申请并拿到了 TypeFox 的一份 “Minijob”(德国的一种小额兼职),在那里工作了一年半,主要负责前端架构和语言工程。工作之余,我一直在做个人项目,其中三个至今仍在线。

WatchLock 截图

在线 - github.com/emilkrebs/WatchLock

WatchLock

用智能手表锁定手机。支持 WearOS 与 Android,为个人安全而造。

KotlinAndroidWearOS
Langium Showcase 截图

在线 - langium.org/showcase/minilogo

Langium Showcase

用 Langium 构建的 DSL 示例集:状态机、算术运算、MiniLogo 与领域模型。

LangiumTypeScriptDSLs

中学毕业后

自由职业,与一次重启

随着毕业考试结束,中学生涯画上了句号。那段时间我主要零星接些自由职业的活,运用过去几年积累的经验,同时对网络安全的兴趣与日俱增。那时的两个项目至今仍在运行。

VailNote 也诞生于这段过渡期:开发始于我中学的最后几年,大约一年后公开发布,至今仍在积极开发中。

随后,我暂时放下了一切专业事务,大部分时间都和朋友与大自然在一起。

BIPoC Climate Justice Conference 截图

在线 - bipoclimatejusticenetwork.org

BIPoC Climate Justice Conference

BIPoC Climate Justice Conference 2024 与 2025 的官方网站,支持本地化,完全由 Markdown 驱动。

Next.jsTypeScriptLocalization
VailNote 截图

在线 - vailnote.com

VailNote

活跃

隐私优先的笔记分享应用。

TypeScriptFreshDenoMongoDB
本站 截图

在线 - emilkrebs.dev

本站

活跃

静态导出。无服务器,无数据库。按你正在阅读的这份规范排版。

Next.jsTypeScriptTailwind CSS

2025/26 冬季学期 - 至今

正式职位,全日制学业

在我的第一个学期,也就是 2025/26 冬季学期开始时,我重返 TypeFox,这次担任正式的专业职位,与客户、大型团队和复杂项目打交道。与此同时,我还在全日制攻读计算机科学与社会学学士学位。随着 AI 的迅速崛起,我正在探索如何让技术赋能于人,并构建更好的开发者工具。

我也常到线下活动露面:照例去了基尔的 Waterkant Festival;2026 年 9 月又去了上海,参加 AGNTCon + MCPCon China,以及 Inclusion·外滩大会的开幕日。两天听智能体协议,一天看 AI 新经济,其间是许多交流。MCP 借鉴了语言服务器协议(LSP)的设计,而 LSP 正是我每天打交道的协议。

我目前在做的产品是 Prami、Healthstack 和 VailNote。

Prami 截图

测试中 - Prami

Prami

预览

主动回忆与间隔重复,复习日程经精心设计,近乎无感。

Next.jsPWATypeScript
Healthstack 截图

概念页

Healthstack

概念

基于 Eclipse Theia 的生活方式优化专用 IDE:生物标记追踪、单位转换,以及为干预协议量身打造的 DSL。

TheiaLangiumTypeScriptElectron

受现行保密协议约束,详情不予公开。

客户项目

受保密协议约束的项目,不在此展示。

NDA
私有

受现行保密协议约束,详情不予公开。

客户项目

受保密协议约束的项目,不在此展示。

NDA
私有

受现行保密协议约束,详情不予公开。

客户项目

受保密协议约束的项目,不在此展示。

NDA
私有

我偏爱的学习方式塑造了我的道路:做中学。动手去做,才是根本。