职位:首席软件开发工程师 - Java
地点:马萨诸塞州波士顿和加拿大多伦多
职位类型:合同/全职
职位描述:
职责
- 领导团队开发产品、解决方案和流程。
- 与其他积极、友好、以原则为先的工程师合作,了解客户使用情况并实施核心工程能力。
- 努力提高流程和产品设计的效率和可持续性,提高质量。
- 指导工程师学习并应用软件开发的最佳实践。
- 与工程经理合作,优先处理产品待办事项,并帮助分配任务给其他工程师。
- 在多个层次上操作,设计和构建容错性分布式系统,优化配送基础设施和机器人的车队。
- 发明新功能,设计、开发和部署可靠的应用程序。
- 参与软件架构和设计。
- 将业务和功能需求转化为可交付的软件和客户体验。
- 开发工具来测试和分析复杂系统,包括在生产环境中部署的系统以及日志记录、跟踪和指标等关键部分。
基本要求
- 7年以上非实习专业软件开发经验
- Java编程经验(核心Java和Spring / SpringBoot等框架),包括面向对象设计
- 2年以上领导和指导团队的经验
- 1年以上参与新系统和现有系统的架构和设计(架构、设计模式、可靠性和扩展性)
- 1年以上云计算经验(AWS / Azure / GCP)
- 1年以上DevOps - CI / CD经验
- 数据结构和算法方面的扎实基础
- 理解问题并选择合适的数据结构和算法
- 处理时间和空间复杂度
- 对系统设计有很好的理解。
- 能够解释某些设计决策中的权衡
- 以易于理解的方式解释复杂的技术概念
首选条件
- 计算机科学、数学或其他算法为核心的学科的学士/硕士学位或同等经验
- 在快节奏环境中设计、实现和测试软件的能力
- 多线程和并发经验
- 自我激励,能够独立解决问题
- 对数据处理和工作流程有深入的理解
- 良好的沟通能力,能够在团队环境中良好地工作
- 使用工具和环境的经验(例如JSON / XML、Restful服务、版本控制系统、容器化、蓝绿部署、错误/问题跟踪工具)
- 前端经验 - React JS / Angular
- 在构建大规模工业系统的软件方面具有经验和知识