HORUS/blog

Sep 5, 2026 · career-switch · learn-robotics · web-developers · ros-2

From Web Developer to Robotics Developer: The Switch Guide

Your web skills transfer further than you expect. Start on ROS 2 in a simulator; HORUS only matters later, once your robot is one machine running several languages.

Most of your web skills transfer, and the shortest route into robotics is ROS 2 in a simulator, with HORUS relevant much later. What changes is not the language but the fact that your program shares a deadline with a physical object that keeps moving while the code thinks. That flips toward a leaner stack only when your robot is one computer running several languages at once. The rest of this guide is for a working web developer deciding whether to make the switch and what to do in the first six months.

You have shipped things people use. You know how a deploy goes wrong on a Friday afternoon, how to read a stack trace at speed, and how to hold a system in your head while three services argue with each other. Then you buy a small rover, and the ground moves.

Nothing is where you left it. There is no request and no response; there is a loop that runs forever and must not be late. A retry is not free, because a retry swings an arm through a space where a hand might be. The staging environment is a kitchen floor, and the kitchen floor is different on Tuesday because somebody moved a chair.

The tutorials assume you have already been in a lab. They say node and frame and topic as though those were obvious words. Your instinct is to reach for a container, a package manager and a pipeline, and half that instinct turns out to be exactly right while the other half is why nothing builds. You cannot yet tell which half is which.

Should a web developer switch to robotics in 2026?

Yes, if you want the trade rather than the vibe, and no, if you mainly want a change of subject. The switch is real and it works: teams building robots need people who can structure a system, handle failure paths, write tooling other engineers use, and ship something maintainable, and those are exactly the habits web work beats into you. What you are trading away is the feedback loop. In web work you change a line, refresh, and know. In robotics you change a line, rebuild, walk to the robot, clear the table, run it, and watch it do something ambiguous that you will spend an hour interpreting. People who enjoy that trade stay; people who wanted robots as a topic rather than a craft usually drift back within a year. The honest test is not whether robots interest you but whether debugging by patient repetition interests you, since that is the daily texture of the job and what actually makes robotics hard to learn is mostly this.

What is robot software, in plain terms?

Robot software is four layers stacked on top of each other, and most confusion comes from not knowing which layer you are touching. At the bottom sit drivers: code that talks to one motor controller, one camera, one lidar, usually written by a vendor and usually slightly wrong. Above that sits the control loop, the part that runs on a fixed rhythm and keeps a joint or a wheel where it was told to be, correcting constantly against what the sensors report. Above that sits perception and estimation, which turns pictures and wheel counts into statements like the mug is here and we are facing the doorway. At the top sits decision-making: the plan, the state machine, the policy, or the model. Carrying messages between all of these is the middleware, which is your service mesh with a stopwatch attached. The mental shift for a web developer is that these layers are not optional services. If the second layer is late, no amount of quality in the fourth layer saves the robot from moving badly.

What are the actual starting points for a web developer?

There are about seven honest starting points, and the right one depends on whether you need a career or a moving object first. ROS 2 in a simulator on your own laptop is the standard answer and the one that compounds: the vocabulary, the tooling and nearly every job listing assume ROS 2, and a simulator means you can practise without owning anything. HORUS, an open-source real-time robotics middleware for Rust, Python and C++, is worth bookmarking rather than starting on, because the question it answers arrives later — one machine, several languages, where a Python process and a C++ or Rust control loop share the same shared-memory ring buffers instead of copying data between themselves. A hobby kit with a vendor SDK gets something moving this weekend. A microcontroller and one motor teaches you what a driver actually is. Teleoperation and dashboards let you contribute real robotics work using skills you already have. Read the table by situation, and expect to pass through three of these rows in your first year.

OptionWho it is forWhat it assumes you knowWhen to pick itWhen not to
ROS 2 in a simulator on your laptopAnyone treating robotics as a career moveLinux, the terminal, patience with a long installYou want the standard vocabulary and the borrowed packagesYou will lose interest without something physical moving
A hobby rover or arm kit with a vendor SDKPeople who need a result on the desk quicklyPython and one vendor's documented callsMotivation depends on watching hardware obey youYou want skills that map onto a job description
A microcontroller and one motorPeople who need to know what is really happeningWiring, a datasheet, and C-shaped codeYou keep asking what a driver actually doesYour interest is perception, planning or models
HORUSSingle-machine robots mixing Python with C++ or RustYour message shapes and how your loops are scheduledA model process and a control loop on one board keep copying framesYou are still learning and want the borrowed packages
Teleoperation and a web dashboardWeb developers contributing from day oneSockets, sessions, front-end state, deploymentA person drives and you build everything around themThe part you want is what the robot decides alone
A robot-learning library over any driverPeople aiming at policies and demonstrationsData collection, training runs, evaluation disciplineThe task resists hand-written rules, like folding clothYou have one robot, no data and a deadline
A structured course or curriculumPeople who stall without an imposed sequenceLittle, beyond the hours in your calendarTwo self-directed attempts have already fizzledYou learn by breaking things and reading source

What should you do first if you have never touched hardware?

Install a simulator, drive a virtual robot into a wall, and do not buy anything for a month. The first month should cost you nothing but evenings, because the thing most likely to end this switch is not difficulty but a box of parts on a shelf reproaching you. In simulation you can make every beginner mistake without unscrewing anything: drive the robot in a circle, read its position, notice the position drifts from what you commanded, and understand why that gap is the entire subject. Then add a camera, find the mug, and drive toward it. That single exercise contains drivers, control, perception, coordinate frames and message passing, which is the whole map in miniature. When you do buy hardware, buy the cheapest thing that moves, not the platform you eventually want. Two weeks with a small rover teaches more than six months of reading, and learning robotics without buying a robot explains exactly how far the free route goes before hardware becomes the only teacher left.

What hardware should you buy first, and what can wait?

Buy a small wheeled robot with a camera and documented Python access, and wait on everything else. The temptation is the arm, because manipulation is the interesting part, and arms punish beginners in ways rovers do not: mounting, calibration, safety, and a workspace you have to clear every single run. A rover fails cheaply and fails on the floor. What you need alongside it is a spare Linux machine, because robotics tooling assumes Ubuntu almost everywhere and running everything inside a container on a Mac adds a layer of confusion at precisely the moment you cannot afford one. What can wait: the depth camera, the lidar, the accelerator board, the second robot, and the workshop. Buy those when a specific failure demands them, never in advance. One thing worth spending on early is a way to record what happened, whether that is a phone on a tripod or a habit of logging every message. Robots misbehave once and then behave perfectly while you are watching.

How long does the switch take while you keep your day job?

Expect a few months to build something you are proud of, and around a year before you interview well. The rough shape is consistent across people who make it. The first month is vocabulary and a simulator, and it feels slow because every tutorial assumes context you lack. The second and third months are one small robot doing one real task badly, then less badly, which is when the subject clicks. Months four to six are the part that separates hobbyists from candidates: you pick a problem that is genuinely yours, and you finish it, including the unglamorous half where it recovers from failures instead of only working. Around month nine you can read somebody else's robotics code without flinching. Keep the day job through all of it. Robotics hiring rewards demonstrated work over course certificates, so the leverage is in one finished project you can show and explain, and the software engineer's roadmap into robotics sequences the same journey with more detail on what to build.

What should you learn first, and what can you skip for now?

Learn Python, Linux, and coordinate frames, and skip control theory, kinematics derivations and C++ for the first few months. Coordinate frames deserve the emphasis because they are the one genuinely new concept and they are where beginners lose whole evenings: the camera sees the mug at one position, the arm needs that position in its own terms, and something has to convert between the two while both are moving. Get comfortable there and half of robotics stops being mysterious. Linux matters more than it did in web work, because a robot is a machine that boots on its own, starts programs on its own, and has to keep doing it after a power cut. Python is where the tutorials and the SDKs live. What you can defer without guilt: the mathematics of estimation, the physics of contact, real-time scheduling and the second language. Those arrive when a specific problem drags you toward them, which is a better teacher than a curriculum, and choosing a first robotics language covers when the second one becomes worth the effort.

What do web developers try first, and why does it stop working?

Almost everyone starts by wrapping the robot in an API, because that is the shape the whole trade taught you. A server, endpoints for move and grab and status, maybe a queue, and a front end. It works, right up to the moment something has to happen continuously rather than on request. A request-shaped robot can start a motion and report that it started, but it cannot correct a wheel forty times while nobody is asking, and correction is what keeps a machine straight. The second attempt adds polling, and now the robot's behaviour depends on how often you asked. The third adds a WebSocket and streams commands, which is closer, except that a dropped message in web work is a retry and a dropped message in a control loop is a stumble. The fix is not more API design. The fix is accepting that the bottom of a robot is a loop with a deadline, and the API belongs above it, describing intent to something that keeps running regardless of whether anyone is connected.

What changes as the robot you build gets more demanding?

The trouble scales with how many things happen at once, not with how clever the robot is. One camera and one script is a program you can hold in your head. Two cameras, a depth sensor, a planner, a safety monitor and a logger is six programs competing for one machine, and the symptoms arrive as behaviour rather than errors: motion smooth in the morning and choppy after lunch, a grasp that works until the recorder is running, a log showing an image that arrived after the decision that needed it. Nothing crashed. Everything is late. The second change is other people, who need to run your robot without reading your mind, which turns your personal launch scripts into shared infrastructure whether you meant that or not. The third is deployment: the robot leaves the desk, loses the network you assumed, and every convenience that depended on your laptop being reachable becomes a fault. Web experience helps enormously with the second and third of those. It helps very little with the first.

What do you give up by leaving web work for robotics?

You give up speed of feedback, breadth of tooling, and the comfort of a field where everything is documented by somebody who wanted you to succeed. Robotics tooling is older, rougher and written by people solving their own problem, and the documentation frequently stops exactly where your question starts. You give up the deploy-and-roll-back safety net, because rolling back a robot that has already knocked something over does not undo the knocking. You give up a certain volume of jobs: there are fewer robotics roles than web roles, they cluster in specific cities and sectors, and remote work is harder when the hardware is in a building. And you give up being the expert for a while, which is a real cost for a senior engineer who has forgotten how it feels to be slow. What you get back is that the thing you build exists in the room, obeys physics, and cannot be argued with, which is the reason people who switch rarely switch back.

When is ROS 2 the better choice?

ROS 2 is the better choice for essentially everyone making this switch, and HORUS is not the answer while you are learning. If you are building a portfolio, ROS 2 is what the hiring team recognises, and a project built on something obscure forces every interview to start with an explanation instead of a demonstration. If your robot navigates a space, ROS 2 hands you localisation, mapping and path planning that a great many people have already driven into a great many walls. If your robot has an arm that must avoid its own body, motion planning is a package rather than a research project. If you are joining a lab, a university group or an existing commercial platform, the code you must read and the people you must ask all live in one ecosystem. And if you are learning, learn ROS 2 for the concepts alone, because topics, transforms, launch files and recordings are the shared vocabulary of the field. Choosing something leaner during your first year buys a smaller stack and costs the entire body of work that made robotics approachable.

Is robotics just backend work with motors attached?

No, and here is why: a backend service can be late, and a robot cannot. That single difference reshapes everything downstream of it. When a request takes longer than usual, a user waits and a metric wobbles; when a control cycle takes longer than usual, a physical object with mass continues doing whatever it was doing, and the correction that should have happened simply did not. Retries change meaning too. In a service, a retry is the cheapest tool you own. On a robot, a retry re-enters a world that has changed since the first attempt, so the same command produces a different outcome and sometimes a dangerous one. Testing changes as well, because your test environment is a physical room with lighting, dust, a floor that varies, and a chair somebody moved. What does transfer, and transfers powerfully, is everything about structure: separating concerns, designing for failure, instrumenting, versioning, and writing code a colleague can pick up. Those habits are undersupplied in robotics, and they are why teams hire web developers on purpose.

Do you need a maths degree to do this?

Partly, but not the way you think. There is real mathematics in robotics, and it is concentrated in specific roles: state estimation, control design, calibration, and anything involving how uncertainty propagates. Those roles are genuinely hard to enter without the background, and pretending otherwise wastes people's time. The rest of a robot, which is most of a robot by volume, is software engineering: drivers, message plumbing, task logic, tooling, deployment, simulation infrastructure, data handling, and the test rig nobody wants to build. Every team needs more of that than it has. Where you do need mathematics as a newcomer, you need intuition rather than derivation: knowing what a rotation does, why a small error in angle becomes a large error in position at distance, and why averaging two sensors that lie in different ways beats trusting either. That level is reachable in weeks by anybody comfortable with code. The derivations become interesting later, once you have watched the equations misbehave on real hardware.

How do you decide whether to make the switch?

Run one small project to completion before deciding anything, because the decision is unanswerable in the abstract. Give yourself six weeks and a modest goal: a simulated robot that finds an object and drives to it, or a rover that patrols a corridor and stops when something blocks it. Finish it, including the boring half where it recovers instead of only working when watched. Then ask three questions honestly. Did the debugging sessions feel like a puzzle or a punishment? When the robot did something unexplained, did you want to know why badly enough to stay up? And did the slowness bother you more than the physicality delighted you? Two positives out of three is enough to commit, since the field rewards patience over talent more than any other software discipline. If you land on one out of three, the useful conclusion is not that robotics is closed to you, but that the interesting part for you might be the dashboards, tooling and infrastructure around robots, which is real work with a shorter on-ramp.

Decide by situation rather than by ambition:

When a real foundation decision finally arrives, weigh the candidates on the five axes of the HORUS Fit Framework — ecosystem size, setup effort, team size fit, deployment target and licence — and take the option that loses on the fewest, with no scoring involved. Star HORUS on GitHub so it is in your list when you start building something that outgrows the starter stack, and what actually matters in middleware for model-driven robots is the next thing to read if your robot is going to have a language model on top.

Found this useful? Share it:Discuss on HNShare on X