Internship - Programming & Automation
Fiducial · Delft, Netherlands
You apply on the site where the job is posted. I never handle applications.
WE CANNOT PROVIDE VISA SPONSORSHIP
Details
Preferred starting date: ASAP
Weekly availability: Full-time (5 days/week)
Period: 6 months
Location: Aerospace Innovation Hub, Delft, the Netherlands
About the company
Fiducial is a young but fast-growing deep-tech start-up with big ambitions at the frontier of autonomy, perception, and defence. Currently, we are developing software for advanced onboard UAV situational awareness in military applications. Using low-cost and widely available sensors and compute, our solutions are built for scalability. From there, we plan to develop a line-up of interconnected solutions to safeguard European safety.
Our team consists of engineers who are passionate about the technology and solutions they develop. The only time most of us are not thinking about the technology is when we are asleep, and sometimes even then. Our team members come from different backgrounds such as Aerospace Engineering, Computational Science and Engineering, Robotics, and Computer Graphics. Our office is located in the Aerospace Innovation Hub, a start-up hub on the TU Delft campus in the Faculty of Aerospace Engineering.
We work closely with top-tier partners, ranging from government agencies and prime contractors to academic research institutes and other start-ups. Our projects span from large tender orders in collaboration with partners to low-TRL research with government agencies. Whether through formal R&D programs or rapid prototyping tracks, we operate at the intersection of innovation and deployment.
The project
Sensor calibration is a manual job today, and it does not scale to the number of sensor units we intend to ship. We are building automated test and calibration infrastructure to fix that, starting with a cell built around a UFactory UF850 robotic arm on a linear rail.
We already have the arm and the calibration software. What we do not have is the physical cell around it, or the software that drives it. This first project is split into two internships that run side by side:
- Robot programming and automation — this position
- Mechanical design and integration — separate posting
The two interns will work closely together. Neither half of this project is any good on its own. This calibration cell is the first thing we are building on this front, not the last, so there is a good chance the right person carries on to other robotics and automation projects once it is running.
Your role
If you are the kind of person who is not satisfied until an automated system actually works reliably, not just once, this internship is designed for you.
We are looking for a Robot Programming & Automation Intern to help build the software behind our robotic test and automation infrastructure. Your first project is turning a robotic arm on a linear rail into a system that reliably captures good calibration data — but the skills involved are the same ones we’ll lean on for whatever we automate next: getting a robot to move well, knowing whether the data it’s collecting is any good, and building something solid enough to run unattended.
Getting that right is the substance of this internship, on this project and on whatever comes after it.
What you’ll do
- Build the robot control layer: drive the arm through its SDK, coordinate the linear rail, and plan safe motion inside a cell that also has a target, cables, and an operator in it.
- Design pose generation that’s actually informed by the calibration problem, including getting proper coverage across a multi-camera rig rather than just one lens at a time.
- Get the timing and synchronisation right between the robot, the cameras, and the captured data — this is where automated rigs usually go wrong.
- Gate data quality at capture time, and retry within the run rather than finding out later that a dataset is unusable.
- Close the loop with our existing calibration pipeline: feed it data, read back its results, and use that to decide what to capture next and when a run is done.
- Package captures with the metadata needed to make a calibration reproducible, and make the whole thing robust to failures mid-run.
- Build a simple operator-facing workflow: mount the rig, pick a profile, press go.
- Work closely with the mechanical intern — your requirements shape their fixture design, and their measurements shape your motion limits.
Who you are
- You are enrolled in a relevant study program (Robotics, Computer Science, Computational Science and Engineering, Mechatronics, Aerospace, Electrical Engineering, or similar).
- You are strong in Python. C++ is a plus.
- You are comfortable with 3D geometry: rigid transforms, rotation representations, coordinate frames, and keeping your conventions straight when it is 6pm and nothing lines up.
- You are interested in robot programming specifically — motion, reachability, collisions, repeatability — and not only in the vision maths around it.
- You understand enough about how camera calibration works to reason about what makes a dataset good or useless. You do not need to be able to write the solver.
- You have worked with real sensors and real robots, and you have learned that they lie about timing.
- You care about reliability. An automated process that works four times out of five is not automated.
- You write code that another engineer can pick up and extend.
- You are comfortable taking responsibility for software that moves physical hardware.
- You are independent, curious, organized, and resourceful.
- Linux does not scare you, and neither does a robot that moves the moment your code says move.
We care much more about what you have built and made work than about grades.
Nice to have
These are strong pluses, but not strict requirements:
- ROS 2, MoveIt 2, tf2, and motion planning in practice
- Experience with industrial or collaborative arm SDKs (UFactory / xArm, UR, Franka), or motion control more generally
- Hands-on camera calibration experience: OpenCV, Kalibr, ChArUco or AprilTag targets, hand-eye calibration
- Multi-camera rigs, and the specific pain of calibrating cameras with little or no overlapping field of view
- Machine vision cameras: triggering and synchronisation, GenICam, exposure control, rolling versus global shutter
- Coverage or observability reasoning: understanding why some poses inform a parameter and others do not
- Simulation environments (Gazebo, Isaac Sim, MuJoCo)
- Docker, CI, and the habit of writing tests before you need them
- Experience turning a research script into something an operator can actually use
Please include
When applying, please include links, repositories, or writeups that show us you build things that work. For example:
- GitHub repositories, with a note on which parts you actually wrote
- robot arm or robot motion projects
- camera calibration, multi-view geometry, SLAM, or structure-from-motion work
- data capture pipelines, test automation, or anything that had to run unattended
- computer vision projects
- simulation work
- a short writeup of something that broke and how you found the cause
- anything that demonstrates hands-on technical ownership
If you have ever chased a calibration error you couldn’t explain, eventually traced it to a timestamp, and fixed it properly, you’ll probably fit right in.
Requirements
- Enrolled in a relevant study program (Robotics, Computer Science, CSE, Mechatronics, Aerospace, Electrical Engineering, or similar)
- Strong programming skills, Python at minimum
- Comfortable working in Linux
- Strong interest in robotics, automation, computer vision, or perception
- English proficiency
- Organized and proactive working style
What we offer
- 1000 euro monthly compensation
- 10 vacation days during the internship period
- Flexible working hours and the option to work from home 2 days per week where practical
- A direct and significant influence on highly innovative products
- The opportunity to work close to the hardware and the product, with fast iteration and tight feedback loops
- Full ownership of a self-contained system that the rest of the company will depend on
- A team environment where practical experimentation, learning, and ownership are expected
The application procedure
- If after reading the above you are convinced you are the right person for the job, send us some information about yourself. This can be a resume, website, portfolio, or any other source that gives us a clear impression of your background, technical skills, and hands-on experience.
- We will get back to you ASAP. If we think you could be a fit for the position, we will invite you for an informal introduction so we can get to know you, and equally important, you can get to know us. After this, a more technically focused interview may follow.
- If at that point we believe you are the person we are looking for, we will discuss the specifics such as starting date and internship period.
Welcome to the team!