JOBSEARCHER

Software Engineer – AI/ML

As a Software Engineer, you will play an active role in designing, developing, testing, and maintaining our FLOW-3D product line and supporting applications, including new machine learning-driven capabilities. You will work on a variety of projects that will actively challenge your software engineering skills and promote career growth. You will collaborate with cross-functional teams, including other software engineers, quality assurance engineers, applications engineers, solver developers and other staff, to produce high-quality software that meets the needs of our customers and industries. Principal Responsibilities The role requires a solid understanding of software engineering principles and experience with multiple technologies. Key responsibilities include: Design, develop, and deliver new features and functionality across our software packages, with an emphasis on AI/ML capabilities. Develop and execute unit and integration tests to ensure software reliability and performance. Troubleshoot, analyze, and resolve software defects. Participate in code reviews and provide mentorship to less experienced software engineers. Contribute to architecture discussions, including recommending frameworks and technologies for new initiatives, and evaluating tradeoffs between competing design approaches. Coordinate with cross-functional teams to gather requirements, translate them into deliverable solutions, and communicate progress and changes throughout. Stay current with industry trends, tools, and technologies, and actively seek further growth. Required skills & experience The background, skills and experience listed below are necessary for success in this role: A Bachelor’s degree in Computer Science, Computer Engineering, or a related field Professional experience with modern C++ and Python Experience with machine learning frameworks (PyTorch, TensorFlow, or similar) Experience with natural language processing, including integrating LLMs into software, retrieval-augmented generation (RAG), embeddings, or vector search Experience with cross-platform user interface development using event-driven frameworks, such as Qt Understanding and ability to communicate modern software design concepts, including: Object-oriented programming (OOP) Reusable design patterns SOLID design principles Test-driven development (TDD) Experience developing high-quality software in a structured, professional, or academic setting with an emphasis on: Source version control with Git or similar tools Team collaboration, including mentoring and code reviews Software development methodologies, such as Agile/Scrum Strong problem-solving and excellent written and verbal communication skills Ability to adapt quickly to new and changing technology stacks – the AI/ML tooling landscape shifts fast Preferred skills & experience The skills and experience listed below are relied upon in this role. While we will provide training on these as needed, preference will be given to candidates who can demonstrate knowledge in one or more of the following: Experience with Qt framework, CMake, and GoogleTest Experience packaging, distributing, or serving ML models Familiarity with UI/UX design principles and design tools, such as Figma Experience with full-stack web development