
Internship - Software Engineering
Job Description
Here at Humanoid, we believe in a future where robots amplify human potential. That’s why we’ve set out on a mission to build the world’s most capable, commercially-scalable, and safe humanoid robots. We’re bringing that mission to life with HMND‑01 Alpha - our rapidly developed humanoid platform now running in real industrial pilots - and we’re growing the team to take it even further.
Our Mission
We’re building software systems that enable robots to operate effectively in the real world expanding human capability and redefining how work gets done.
The Opportunity
We’re looking for Software Engineering Interns who are curious, proactive, and excited to work on real-world systems.
This is an open-track internship within software engineering, which means you won’t be confined to a single layer of the stack. Instead, you’ll work across different parts of our systems and collaborate closely with the team to find where you can have the most impact whether that’s backend services, internal tooling, data workflows, or product-facing features.
This is a full-time internship (5 days per week) over the summer (mid June - mid September), based in our London Paddington office, where you’ll be contributing to real systems early on with support and guidance from experienced engineers.
Duration: 12 weeks | Start date: June | Compensation: Competitive pay + we'll keep you fed (seriously, the food is good)
What you might work on
Contributing to backend systems, APIs, and services
Building or improving internal tools and engineering workflows
Working on data pipelines, automation, or system integrations
Prototyping features and supporting product development
Collaborating with engineers across platform, robotics, and operations
What we’re looking for
Strong interest in software engineering and real-world systems
Some experience writing code (any language)
Curiosity about robotics and how software interacts with physical systems
Ability to learn quickly and adapt in a fast-moving environment
Comfort working through ambiguity and solving problems
Ownership mindset and attention to detail
Clear communication and collaborative approach
Nice to have (not required)
Experience with Python and JavaScript or any other programming
Familiarity with APIs, backend systems, or web development
Exposure to Linux, Git, or development workflows
Projects (personal, academic, or professional) you can share
What you’ll get
Hands-on experience working on real software systems
Exposure to full-stack and system-level engineering
Mentorship from experienced engineers
A fast-paced, low-ego, highly collaborative environment
Potential pathway to a full-time role
How to apply
Complete the challenge below and submit your solution as a public GitHub repository — include a README with instructions to run your system and a short note on your design choices. You will be able to include your GitHub repository URL when you fill out the application form - alongside your name and CV.
Intern Challenge: LLM Agent in a Virtual World
Build a system that places an LLM agent into a virtual world where it can perceive its environment, take actions, and accomplish goals.
The core challenge isn't the world itself — it's the harness: the interface between an intelligent agent and an environment it can act in.
At a minimum, your system should:
Create a virtual environment the agent can exist in (2D grid, 3D scene, text-based world — your choice)
Define an observation format that represents the agent's current state and surroundings
Define an action space the agent can use to interact with the world (e.g. move, turn, look, pick up)
Wire up an LLM (e.g. Claude, GPT, or any model with an API) to observe state, reason, and choose actions in a loop
Demonstrate the agent completing at least one goal-directed task (e.g. "go to the red cube", "find the key and open the door", "explore and describe the room")
We're intentionally leaving the approach open — use any tools, frameworks, or libraries you find effective.
What to submit
A working codebase
Clear instructions on how to run your system
Example input(s) and output(s) — ideally a recording or log of the agent acting in the world
(Optional) A short note explaining your design choices: how you represent observations, why you chose your action space, what worked and what didn't
What we care about
Quality of the agent harness — how well you've designed the interface between the LLM and the environment
Whether the agent can actually accomplish tasks, not just generate plausible text
Thoughtfulness about observation representation — what does the agent need to know, and how do you tell it?
Creativity in the world, the tasks, or the agent's capabilities
Simplicity and usability of your solution