This year, we are continuing modernization of the Synthesis software. We are actively trying to find people that fit into both specific and general development roles. Some things we are currently looking into include compute shaders and graphical parallelism, GRPC, Protobuf, Networking, and Unity Physics. Many of these we need to refine our codebase. We have undergone a modernization in our codebase for the engine, exporter, and controller (formally emulation) so this summer will be important to ironing out the remainder of the codebase and re-adding features.
What makes a good candidate? We’re looking for people both excited about making robotics more accessible and who are willing to learn. Share about a cool project you have worked on! We look for people with experience working on a project or a GitHub repo with previous project experience that are willing to learn. Demonstrate an interest in improving Synthesis and share your GitHub repo or project with us on your application!
Our development team is split into three component areas: the exporter, engine, and controller. Below are the different responsibilities for these positions. If you are familiar with any of these subjects please indicate your experience in your application. Although all interns will have a chance to dip their toes in different types of work, consider the following to get a better understanding of how you would like to spend the majority of your time.
- Work on Fusion and Inventor add-ins
- Use Google protobuf to make modifications to robot and field proto definitions
- Fix bugs, add features, and modify field and robot exporters using Python and C++
- Learn about the glTF file format and the Fusion/Inventor exporter process to create readable file formats for the Synthesis engine
- Work in Unity on UI and usability of Synthesis engine
- Collaborate with multiple developers and subteams
- Refactor and incorporate healthy code development practices (e.g. solid foundation of programming language with using classes, methods, etc.) to abstracting for current and future development
- Preferred Qualifications:
- Familiarity with Git
- Experience with Unity Physics engine for continuous dynamics and discrete
- Work with the engine team on receiving and managing code inside of Unity
- Create/update protocol buffers for serializing data
- Expand controller and fix bugs for C++ and Java emulation
- Familiar with Linux and C/C++
- Familiar with JSON/XML and protobuf
- Networking is a plus
- Create media content for marketing (e.g. social media, promotional, etc.)
- Photo, video, and graphics editing
- Plan, organize, and coordinate user events
- Assist with testing code developers have produced
- Make decisions about the look and feel of Synthesis to define the user experience
- Work with technical lead to manage deadlines and goals throughout the summer
- Deliver presentations to Autodesk employees and at external events
- What is the skill level required of an intern? We interview and look for interns in all skill ranges from beginners to super users, our recommendation is if you get excited about robotics simulation we would love for you to apply. Honestly a lot of what makes developers crazy good is their passion to improve a project.
- What age do I need to be? You need to be 16 by the start of the internship. For any more information or questions regarding this please email firstname.lastname@example.org.
- Where is the internship located? The internship is located in Portland, Oregon, but will be remote due to COVID-19 for 2021.