I spent 5 years in DevOps – Solutions engineering gave me what I was missing
DevOps工程师的转型之路:成为解决方案工程师的经验分享
这篇文章讲述了一位在大型金融服务公司拥有五年DevSecOps经验的工程师,如何从枯燥的DevOps工作岗位转型到销售相关的解决方案工程师(Solutions Engineer) 岗位的故事。作者分享了转型的原因、过程以及所学到的经验,希望能帮助其他同样面临类似困境的DevOps工程师。
核心问题:DevOps工程师的倦怠
作者坦诚,虽然在DevOps岗位上表现出色,受到团队尊重,但大约在第四年开始,他逐渐感到工作变得单调和停滞不前。具体表现在:
- 重复性工作: 日常工作模式化,包括查看仪表盘、处理工单、调试问题、部署Terraform,维护HashiCorp Vault集群等,工作内容缺乏新鲜感。
- 停滞性学习: 早期学习了Vault架构、PKI基础知识、密钥轮换等新知识,但随着核心工具和代码库的熟练掌握,学习曲线变得平缓,不再有挑战。
- 孤立感: 大部分时间与CI/CD工具和YAML文件打交道,与人交流时通常是解决问题或解除阻塞,缺乏真正的协作和人际互动。
解决方案工程师的角色:一个未知的职业选择
作者从未考虑过解决方案工程师这个职业,因为他认为销售相关的工作意味着放弃技术深度。然而,朋友的建议让他意识到,解决方案工程师是“解释技术问题并帮助客户解决问题”的职业,这似乎能解决他所面临的困境。
他最终加入了Infisical,一家Vault的竞争对手,利用自己对Vault和相关领域的了解,迅速适应了新的角色。
转型一年后的变化
- 人际互动增多: 每天与大量客户沟通,涵盖了不同行业(金融科技、航空航天、医疗保健、制造业)和技术栈。
- 建立客户关系: 从“被阻塞”的内部团队转变为客户的信赖技术顾问,能够深入了解客户的工作方式,建立长期关系。
- 影响产品方向: 通过与客户的沟通,收集需求、发现问题、提出改进建议,并反馈给工程和产品团队,参与产品开发的决策过程。
- 持续学习: 接触到各种不同的技术环境和应用场景,保持学习状态,摆脱了DevOps中的停滞感。
- 利用DevOps经验: 能够理解客户所描述的问题,并分享自己的实际经验,建立信任,避免了销售的套路。
解决方案工程师的挑战
虽然转型带来了很多积极的变化,但也存在挑战:
- 需要学习演示技巧。
- 需要快速适应不同的环境和问题。
- 压力不同,更侧重于人际关系和问题解决。
适合人群
该职业并非适合所有人。如果喜欢深入研究单一系统、进行长期优化,或者更喜欢独立工作,那么解决方案工程师可能不适合。但如果DevOps工程师感到停滞不前、缺乏人际互动、喜欢解释技术概念并帮助他人解决问题,那么解决方案工程师可能是一个值得考虑的选择。
总结
作者的经历表明,DevOps工程师可以通过转型成为解决方案工程师,获得更多的人际互动、持续的学习机会和更广阔的职业发展空间。 这条道路需要重新评估自己的职业目标,并勇敢地尝试新的方向。
|
Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox
BreezyBox Shell Demo for ESP32-S3 总结
This document describes a demo project that transforms an ESP32-S3 microcontroller into a "tiny instant-on PC" with its own shell, editor, compiler, and online app installer, akin to a Raspberry Pi but with reduced overhead. The project utilizes BreezyBox, a mini-shell ESP-IDF component.
What is BreezyBox?
BreezyBox is a project inspired by cyberdeck crafting, designed to leverage the capabilities of the ESP32-S3. The ESP32-S3, despite being underutilized in hobbyist communities for PC-like applications, possesses significant potential. BreezyBox aims to provide essential missing components:
- vterm: A basic terminal emulator.
- CWD Tracking: Current working directory support.
- UNIX-like Commands: A selection of familiar command-line tools.
- App Installer: A mechanism for installing applications.
BreezyBox utilizes existing ESP-IDF components, including elf_loader with dynamic linking, to achieve its functionality. It is described as a "mini shell" or "userland layer" running on top of FreeRTOS, not a full operating system. The name is a playful reference to BusyBox.
Demo Project Details:
This specific repository serves as an example and is tailored to the Waveshare ESP32-S3-Touch-LCD-7B development board. However, the core BreezyBox component is designed to be adaptable to different displays and boards. Developers can utilize the provided code snippets and adapt them to their projects. Using LVGL text label control is suggested as an easy path to stdout on LCDs.
How to Use:
The project encourages users to fork, clone, and adapt the code to their hardware. Starting with a basic setup over USB console is recommended for ease of use.
License and Contributions:
The project is released under the MIT License. Contributions are welcome, including:
- ELF Applications: Developing and sharing more ELF applications (examples available in breezyapps repo).
- Example Firmware Repositories: Sharing complete firmware projects for various boards and development styles (e.g., LVGL examples, C++ projects, GUI implementations, retro game ports).
- Hardware Adaptations: Porting BreezyBox to other microcontrollers (like P4 or C6), integrating external gadgets, or crafting custom cyberdeck cases.
The goal is to foster community adoption and provide more ready-to-clone examples for others to explore the potential of BreezyBox on the ESP32-S3.
|
|
Monty: A minimal, secure Python interpreter written in Rust for use by AI
好的,以下是根据您提供的内容生成的摘要,使用 Markdown 格式书写,并为中文:
Monty:用于 AI 的安全、轻量级 Python 解释器
Monty 是一个用 Rust 编写的最小、安全的 Python 解释器,专为 AI 应用设计。它旨在避免使用完整容器沙箱带来的成本、延迟和复杂性,从而安全地运行 LLM (大型语言模型) 生成的代码。
核心特点:
- 轻量级: 启动时间极快(单数字微秒),运行时性能与 CPython 相当。
- 安全: 严格限制对主机环境的访问,包括文件系统、环境变量和网络访问。外部函数调用由开发者控制。
- 类型检查: 支持现代 Python 类型提示,并集成了
ty 工具进行类型检查。
- 状态快照: 可以在外部函数调用时将解释器状态快照保存到文件或数据库,以便稍后恢复。
- 多语言支持: 可以在 Rust、Python 或 JavaScript 中调用。
- 资源控制: 跟踪内存使用、分配、堆栈深度和执行时间,并在超过预设限制时取消执行。
- 输入/输出: 收集
stdout 和 stderr 并返回给调用者。
- 异步/同步支持: 支持主机上的异步或同步代码。
Monty 的限制:
- 功能受限: 不支持标准库(仅支持部分模块,如
sys、typing、asyncio、dataclasses、json),不支持第三方库,不支持定义类和 match 语句。
- 单一用途: 主要设计用于运行 LLM 生成的代码,而不是作为通用的 Python 解释器。
应用场景:
Monty 适用于需要安全运行 LLM 生成代码的场景,例如:
- Codemode: Cloudflare 的 Codemode
- Programmatic Tool Calling: Anthropic 的 Programmatic Tool Calling
- Code Execution with MCP: Anthropic 的 Code Execution with MCP
- Smol Agents: Hugging Face 的 Smol Agents
使用方法:
Monty 提供了 Python、Rust 和 JavaScript 的调用接口。
- Python: 使用
pydantic-monty 包,可以定义代码、输入、外部函数、类型定义等,并运行 Monty 解释器。支持迭代执行和外部函数调用。
- Rust: 使用
monty crate,可以创建 MontyRun 对象,并运行 Python 代码。
替代方案比较:
| 技术 |
语言完整性 |
安全性 |
启动延迟 |
成本 |
设置复杂度 |
文件挂载 |
快照 |
| Monty |
部分 |
严格 |
0.06ms |
免费 |
简单 |
简单 |
简单 |
| Docker |
完整 |
良好 |
195ms |
免费 |
中等 |
简单 |
中等 |
| Pyodide |
完整 |
差 |
2800ms |
免费 |
中等 |
简单 |
困难 |
| starlark-rust |
非常有限 |
良好 |
1.7ms |
免费 |
简单 |
不可用? |
不可能? |
| 沙箱服务 |
完整 |
严格 |
1033ms |
非免费 |
中等 |
困难 |
中等 |
| YOLO Python |
完整 |
无 |
0.1ms / 30ms |
免费 |
简单 |
简单/危险 |
困难 |
未来展望:
Monty 将被用于实现 Pydantic AI 中的代码模式功能。
总而言之,Monty 是一个专注于安全运行 LLM 生成代码的轻量级 Python 解释器,为 AI 应用提供了一种高效且可控的解决方案。
|