Xerox Software Engineer, 3D Modeling/CAD in North Carolina
Software Engineer, 3D Modeling/CAD
City: Palo Alto, Cary
State/Province: California, North Carolina
Country: United States
Department: Research & Development
Date: Friday, March 5, 2021
Working time: Full-time
Job Level: Individual Contributor
Job Type: Experienced
Job Field: Research & Development
Description & Requirements
PARC, a Xerox company, is in the Business of Breakthroughs®. Practicing open innovation, we provide custom R&D services, technology, expertise, best practices, and intellectual property to Fortune 500 and Global 1000 companies, startups, and government agencies and partners. We create new business options, accelerate time to market, augment internal capabilities, and reduce risk for our clients. Since its inception, PARC has pioneered many technology platforms – from the Ethernet and laser printing to the GUI and ubiquitous computing – and has enabled the creation of many industries. Incorporated as an independent, wholly owned subsidiary of Xerox in 2002, PARC today continues the research that enables breakthroughs for our clients' businesses.
PARC is seeking a Software Engineer with a strong technical background in 3D modeling, visualization, computer graphics, and geometric processing coupled with excellent programming skills to build software tools that enable generating, editing, visualizing, and computing on geometric and physical models. The ideal candidate will have strong frontend and backend development skills, professional software engineering experience, deep understanding of geometric processing algorithms, ability to convert research ideas or partial specifications into robust code, ability to transform research-grade prototypes to commercial-strength software, and an appetite for computational research. The Software Engineer will work on ongoing projects funded by Xerox, government agencies (e.g., DARPA, ARPA-E, and NIST), national labs and industrial partners, on a range of topics including digital design and manufacturing software and hardware technologies, process modeling and simulation, hybrid (additive and subtractive) manufacturing, design for assemblies, design for manufacturing, and physics-informed AI. The candidate must be comfortable and experienced with computational geometry, algorithms design, UI development, DevOps, CI/CD configuration, cloud computing, and writing unit tests. Familiarity with any of CAD/CAE/CAM and PLM, advanced topics in geometry, topology, physics, and materials science, AI/ML, and engineering design research are a plus.
Developing software prototypes (backend and frontend) for computer-aided design, analysis, manufacturing, process planning, and process simulation.
Supporting researchers to convert research ideas or partial specifications into robust code.
Transforming research-grade prototypes into commercial-grade software.
Participating in research activities and generation of intellectual property.
Implementing new geometric algorithms as well as reproducing published work.
Designing modular libraries and composing them into new software prototypes.
Building desktop and web UI.
Developing and maintaining build systems on different operating systems.
Developing unit tests, deployment, and documentation.
Bachelor’s degree in Computer Science and/or Engineering from a recognized university. Master’s or doctoral degrees in related areas of science and engineering are a plus.
Excellent programming skills (e.g., modern C/C++ and Python) and related debugging and profiling tools.
Expertise in 3D solid and geometric modeling, processing, and algorithm development.
Hands-on experience with CMake, CI/CD configurations, and cloud architectures.
Hands-on experience with computer graphics and APIs (e.g., OpenGL or Vulkan).
Hands-on experience with, or ability to quickly learn and use, 3D software tools such as CAD kernels (e.g., Parasolid or OpenCASCADE) and volumetric storage and rendering libraries (e.g., OpenVDB or OSPRay).
Desirable Technical Skills:
Willingness to learn new software tools as required by the projects.
Familiarity with additive manufacturing and CNC machining is a plus.
Professional software engineering experience (open-source or commercial projects) is a plus.
Experience with any of the following is a plus: DevOps, machine learning frameworks (e.g., PyTorch or TensorFlow), parallel computing (e.g., CUDA, OpenCL, or MPI).
Desirable Personal Skills:
Independence and creativity in problem solving.
Eagerness to learn new technologies and commercialize fundamental research for solving real-world problems.
Ability to work in fast-paced environments and with evolving requirements.
Strong organizational, inter-personal, communication, and teamwork skills.
Candidates are encouraged to provide pointers to previous software engineering projects with high impact (e.g., Git repositories) and reference letters from previous supervisors.
Xerox is an Equal Opportunity Employer and considers applicants for all positions without regard to race, color, creed, religion, ancestry, national origin, age, gender identity or expression, sex, marital status, sexual orientation, physical or mental disability, use of a guide dog or service animal, military/veteran status, citizenship status, basis of genetic information, or any other group protected by law. Learn more at www.xerox.com and explore our commitment to diversity and inclusion! (https://www.xerox.com/en-us/jobs/diversity) People with disabilities who need a reasonable accommodation to apply or compete for employment with Xerox may request such accommodation(s) by sending an e-mail to XeroxStaffingAdminCenter@xerox.com. Be sure to include your name, the job you are interested in, and the accommodation you are seeking.
© 2021 Xerox Corporation. All rights reserved. Xerox® and Xerox and Design® are trademarks of Xerox Corporation in the United States and/or other countries.