设计看不见的东西:我作为软件工程师的工作
我签署了一份保密协议,我不确定我能对我的日常工作说些什么,但我会尽力解释,但不会透露太多细节。
我是一家美国跨国公司的软件工程师,我正在编写一个中间件,确保聊天机器人人工智能和各种服务之间的安全、顺畅的通信,以便能够向与这些服务相关的客户提供信息.
我主要使用 JavaScript 和 Node.js,这是后端 Javascript 的运行时环境。该应用程序在多个 Red Hat Linux (RHEL) 服务器上运行。
我们选择 Node.js 是因为 Node 的早期开发速度很快,我们需要尽快向管理层展示进度。 Node.js 使用异步模型,非常适合高效处理大量 I/O 操作,例如传入和传出 API 的请求。 Node 还非常适合水平扩展,这意味着您可以轻松添加运行应用程序的其他服务器来处理增加的流量或工作负载。
我在 Windows 上开发,但应用程序本身在 RHEL 服务器上运行。我们选择 RHEL 是因为它具有高度可定制性并且以其强大的安全实践而闻名。在 Linux 上管理深层配置比在 Windows 上容易得多,这在处理多个安全层和认证时至关重要。此外,我们对微软等外部公司的依赖也较少。 RHEL 针对高性能应用程序进行了优化,提供比标准 Linux 更好的内存和资源管理。它还与其他企业级软件广泛兼容,并包含用于监控、日志记录和系统性能管理的工具,使其更容易集成到复杂的技术堆栈中。
该应用程序基于微服务架构,允许应用程序拥有尽可能多的模块,使其能够适应各种用途。例如,我的中间件不仅支持人工智能,还支持安全 I/O 和 API 通信必不可少的其他应用程序。
团队大约有30-40人,但我主要自己开发这个中间件,尽管我有一个实习生协助我
我想说工作中最困难的部分是与他人沟通。当我需要联系其他团队获取 API 或应用程序来实施服务时,或者当我需要其他工程师的意见时,有时他们不会回应,或者给出无用的答案,这可能会令人沮丧。你真的必须咄咄逼人,我不太喜欢这样做。
我工作中最具挑战性的部分是我们总是要赶时间,这让我们几乎没有时间遵循测试驱动开发等最佳实践。
工作中最好的部分是编码本身,并找出在中间件中实现不同功能的解决方案。
我未来的目标是成为技术领域的知名人物——撰写博客并就编程主题进行演讲。这就是为什么我发现英语如此重要,并且我正在努力提高我的口语和写作技能。我想成为一名出色的公共演讲者和技术作家。
我还想用 TypeScript 编写更多代码。目前,我们使用 JSDoc 确保类型安全,但我想更多地关注 TDD 并将 TypeScript 融入到我的工作中。
您还有与我的领域或我相关的其他问题吗?欢迎在评论中告诉我。
以上就是设计看不见的东西:我作为软件工程师的工作的详细内容,更多请关注硕下网其它相关文章!