软件工程师
Software Engineer
关于职位
GibbsCAM是制造行业中历史最悠久的CAM平台之一,拥有超过40年的历史。我们正在寻找一名软件工程师加入我们的工程师团队,他们真正以工艺、可靠性为荣,并打造了每天被真实机床操作员依赖的软件。
这是一名具备扎实C++基础并对复杂、领域丰富的软件充满好奇心的工程师难得的成长机会。你将与经验丰富的高级工程师一起工作,他们致力于指导和知识传递,从第一天起你就能承担有意义且具有挑战性的工作。该职位适合希望学习专业领域、能够舒适地阅读和理解他人代码,并在稳定、长期的产品中提升技能的人。
该职位为全远程工作,仅限于在美国合法工作并居住的候选人。
主要职责
- 为大规模Windows桌面CAM应用程序开发和维护软件功能,根据产品管理团队和高级工程师提供的规格进行工作。
- 在高级团队成员的指导下诊断和解决现有代码中的缺陷,处理涉及大型或不熟悉子系统的复杂问题。
- 执行软件组件的修复、增强和维护,编写符合团队质量标准的干净且经过充分测试的代码。
- 积极参与代码审查——作为作者和评审者,推动共享所有权和持续改进的文化。
- 学习并应用相关的CAM和制造领域概念,以有效贡献于产品。
- 保持对现代C++和软件开发最佳实践的了解,并在成熟代码库的限制下适当应用。
- 参与技术文档的编写,并协助保持内部知识库的更新。
- 与高级工程师和管理层就项目状态、技术问题和实现方法进行咨询。
所需资格
- 3–5年在生产环境中的专业软件开发经验。
- 精通C和C++;熟悉现代标准(C++11/14/17)者优先。
- 有阅读、调试和扩展现有代码库的经验——而不仅仅是从头开始编写代码。
- 熟悉Windows桌面应用程序开发。
- 掌握调试工具的使用。
查看英文原文
About the Role
GibbsCAMis one of the most established CAM platforms in the manufacturing industry, with a history spanning more than 40 years. We are looking for a Software Engineer to join our team of engineers who take genuine pride in craft, reliability, and building software that real machinists depend on every day.
This isa strong growthopportunity for an engineer with a solid foundation in C++ and a curiosity about complex, domain-rich software. You will work alongside experienced senior engineers who are invested in mentorship and knowledge transfer, and you will have the opportunity to take on meaningful, challenging work from day one. The role suits someone who is eager to learn a specialized domain, comfortablereadingand reasoning about code they did not write, and excited to grow their skills within a stable, long-lived product.
This is a fully remote opportunity for candidates authorized to work and residing in the United States.
Primary Responsibilities
- Develop andmaintainsoftware features for a large-scale Windows desktop CAM application, working from specifications provided by Product Management and senior engineers.
- Diagnose and resolve defects in existing code, with guidance from senior team members on complex issues spanning large or unfamiliar subsystems.
- Perform repair, enhancement, and maintenance of software components, writing clean and well-tested code that meets the team’s quality standards.
- Participate actively in code reviews — both as an author and a reviewer — contributing to a culture of shared ownership and continuous improvement.
- Learn and apply relevant domain concepts in CAM and manufacturing as needed to contribute effectively to the product.
- Maintain currency with modern C++ and software development best practices, applying them appropriately within the constraints of a mature codebase.
- Contribute to technical documentation andassistin keeping internal knowledge bases current.
- Consult with senior engineers and management on project status, technical questions, and implementation approaches.
Required Qualifications
- 3–5 years of professional software development experience in a production environment.
- Solidproficiencyin C and C++; exposure to modern standards (C++11/14/17) preferred.
- Experience reading, debugging, and extending existing codebases — not just writing code from scratch.
- Familiarity with Windows desktop application development.
- Working knowledge of debugging tools and the ability to systematically isolate and resolve software defects.
- Understanding ofcore data structures, algorithms, and object-oriented design principles.
- Experience with version control in a team setting.
- Solid math fundamentals and willingness to engage with technical or geometric concepts as needed by the domain.
Preferred Qualifications
- Experience with Win32, MFC, COM, or other Windows application frameworks.
- Exposure toC# in a mixed-language (C++/managed) application context.
- Any experience or academic background in CAD, CAM, CNC machining, or manufacturing.
- Familiarity with 3D graphics concepts or APIs (OpenGL, DirectX, or similar).
- Background or coursework in applied mathematics, linear algebra, or computational geometry.
- Experience with Perforce or other enterprise version control systems.
- Exposure to large-project build systems.
Education
- Bachelor’s degreerequired, with preferred focus in Computer Science, Computer Engineering, or Mechanical Engineering.
- Equivalent practical experiencedemonstratingthe required technical foundation will be considered.
What to Expect
We understand that a specialized product likeGibbsCAMtakes time to learn. New team memberswork with ourexperienced engineers who providedirection andmentorship during onboarding, and we set realistic expectations for ramp-up time. We are more interested in hiring someone with strong fundamentals and genuine curiosity than someone who already checks every domain-specific box.
Our team values steady, high-quality work over heroics.You’llhave the opportunity to grow into greater ownership and technical leadership over time as you build familiarity with the product and codebase.
Originally posted on Himalayas