我们在寻找谁?
要成为一名成功的首席软件工程师,您必须具备丰富的领域知识,并且在面对未知问题时不被吓倒。对于待办事项中的任何任务,您都应能够及时拾起并实施,以满足或超出质量期望、标准和业务价值目标。
职位描述:
软件工程师负责为客户的业务提供动力的所有系统、产品和服务的工程设计。这意味着要负责软件设计、代码实现、测试覆盖率以及在特定业务和技术领域内有效软件和支持工具集的操作。
职位持有人将花费时间探索、调查、开发、增强以及有时退役我们提供的工具、产品和服务,所有这些都是为了实现待办事项、路线图和整体公司战略,其成功通过实现的结果价值和与商定优先事项的一致性来衡量。
这涉及将需求转化为符合质量(满足所需指标)的技术解决方案,然后为产品和服务创建代码,遵循我们的工程标准,确保其可维护、可支持、操作风险最小,并能够安全部署到生产环境中供客户和同事使用。
首席软件工程师是我们客户工程轨道中个人贡献者的最高职位,因此确保软件交付符合质量标准并有效交付。他们是卓越中心中复杂实现的首选人员;任何问题都应该由首席工程师轻松解决。他们对其卓越中心的设计、拓扑、方法论和健康状况了如指掌,并能够帮助、指导和支持其他工程师实现成功的结果。
成功的关键在于创造一个多样化、包容和欢迎的环境。确保每个人都感到支持,能够做真实的自己,成长、发展,并积极为交付价值做出贡献是至关重要的。
主要职责:
人员
- 领导其卓越中心内的工程变革,能够指导和支持其他软件工程师解决问题、代码实现问题和相关挑战。
- 能够与其他人密切合作——工程主管、解决方案架构师、技术项目经理和负责人,帮助塑造工程方法,分享知识和经验。
- 能够通过不同的方法影响同事解决问题,以获得更广泛或更好的结果和/或推动更大的利益。
- 能够审查代码输出并为未来改进提出建设性建议。
- 在会议、论坛和行业活动中代表我们的客户,确保我们的客户被视为工程/信号行业的领先创新者。
- 作为思想领袖——软件问题、行业趋势和卓越中心内新兴技术的主要联系人,并被视为榜样,展示我们客户的价值观。
流程
- 负责解决技术冲突,能够平衡不同观点和看法,然后运用其领域知识为工程主管提供指导和支持以做出决策。
- 指导和发展高级、中级和助理团队成员,通过最佳实践的一般指导,确保开发出世界一流的软件。
- 能够从待办事项中获取任何任务,并将其分解为符合我们客户技术标准的定义、可实施的任务/子任务,并满足完成定义/故事/史诗的验收标准。
- 经常与他人配对,并审查和提供对他人代码的建设性反馈。
- 使用自动化测试驱动技术审查和编写测试,以确保代码质量和未来的可靠性。
- 向交付项目经理提供频繁且准确的票务进度更新、预期时间表、未完成的工作量、依赖性、风险、问题和花费的时间。
- 负责文档的准确性,并撰写、更新和审查所有领域文档。
- 乐于参与设计和技术模型的小组讨论/研讨会,阐明背景和边界及其背后的理由,塑造更广泛的应用程序格局并识别风险。
- 领导产品生命周期中问题的故障排除和解决,包括提供非工作时间的事件解决支持和执行根本原因分析。
技术
- 熟练掌握其领域(卓越中心)内交付的系统、使用的技术和采用的方法。
- 了解并能够提供历史选择的背景,并能够合理化和验证未来的决策,同时突出需要重新设计的风险或领域。
- 与产品紧密合作,了解并将路线图项目和需求转化为领域内的改进,将需求转化为任务和代码,并开发出高质量的代码,从而实现快速交付。这包括负责技术实现的范围、形状和原型方面。
- 运用对多种编程语言、相关框架和相应工具生态系统的深入了解,创造出优雅的解决方案。
- 采用新语言和新范式,并制作概念验证以评估新工具,将其应用于问题领域以提供显著的好处。
- 不断学习并保持对行业和竞争对手发展的了解。
- 具有Azure、.NET和REACT的经验。
理想的经验和知识要求:
- 具有可证明的设计和构建分布式系统的经验,具有可扩展性、可用性和性能,并运行整个系统环境。
- 在使用多种技术的领域中担任技术权威的经验。
- 在快速交付大型、结构良好的复杂解决方案方面具有务实和可行的记录。
- 自信且熟练地与其他用户、客户和其他团队成员分享知识。
- 对以安全、可靠和高性能的方式运行生产系统有深刻理解。