European Rover Challenge 2024, 17th of more than eighty, GStreamer 60 FPS, ZED 2 at 2M+ points per second, costmap, stale occupancy. Eight hackathons as named on the resume. IEDC Tech Team — no mentee count. Job 10454435 still none. Unnamed stays unnamed. R1/R2 done. This book is for R3 and R4. Labels: Resume-derived IE-asked.
Do not invent a missed ERC. Do not mix Argus YOLO into this rover. Do not merge StratifyLabs WebGL into Gazebo. Do not invent radio specs, a GPU bill, headcount, or the five hackathon titles the resume does not name. Live Code is Java; rover nodes were ROS2 Python/C++. Gstreamer-UDP is a supporting webcam artifact, not a second product. Full ERC / hackathon / IEDC spoken: _answers/07-ylogx-horizon-live.md.
From February to June 2024 I was a software developer intern on Team Horizon at CUSAT, core software on a semi-autonomous Mars rover for the European Rover Challenge 2024. More than eighty international teams. The event date does not move because your Gazebo world is still ugly. Perception, mapping, and planning had to run on the hardware we had, in dirt and lighting the simulator did not fully copy. I was not a side script. I owned the software path that had to run on challenge day: a live camera feed, a dense map, and a costmap the planner could trust. A lab video was not a result. A rover that maps in bags and still collides is not a result either.
I shipped a real-time camera pipeline at 60 FPS with GStreamer instead of a naive web stream that would have dropped the operator feed. UDP-family transport: loss versus latency. TCP MJPEG stalls the operator to retransmit. In parallel, a Stereolabs ZED 2 produces a dense cloud at more than two million points per second into RViz and Gazebo. That cloud cannot all go to a remote laptop: downsample for visualization, keep density for the local costmap. I put costmap path planning and sensor fusion in front of the actuators so we were not waiting on extra sensors as the default spend. Obstacle detection accuracy improved 40 percent on that pipeline. Collision risk dropped 55 percent after fusion, not after a purchase order. We placed 17th globally out of more than eighty teams.
ZED 2 → point cloud → costmap
Camera → GStreamer 60 FPS → operator / autonomy
Sensors → fusion → planner → actuators
all ROS2 nodes; Gazebo = sim; dirt = field
Do not start with “I trained a model.” mAP belongs to Argus. Horizon is drivers, time sync, GStreamer latency versus ROS2 callbacks versus ZED rate. If they ask where YOLO sits: it does not, unless they switched products.
Proud-of / Deliver Results / current-internship-if-they-go-back. Pick this or GiftedBooks, not both, unless they ask for two.
Horizon was core software on a semi-autonomous Mars rover for ERC 2024. ROS2 carried camera at sixty FPS through GStreamer, ZED 2 mapping at two million plus points per second into RViz and Gazebo, plus costmap and fusion. Obstacle detection plus 40 percent, collision risk minus 55 percent, 17th of more than eighty teams. The hard part was stale occupancy, not a model card. Live Code is Java; rover nodes were ROS2 Python and C++.
ERC is localization, planning, and comms. ROS2 is the integration bus. A weights file is one node. OpenCV blob-only is not how plus 40 percent obstacle happened. No costmap and bump-and-turn is not how minus 55 percent collision happened. TCP MJPEG is not how 60 FPS happened. Replacing the stack with a giant vision model still leaves you without time sync, a costmap, or a 60 FPS operator feed. I will not tell Argus’s YOLO story here.
Think system: drivers, callbacks, occupancy. Not a notebook. StratifyLabs is a browser CV lab — do not merge stacks.
Two million plus points per second cannot all go to a remote laptop. Downsample for viz; keep a dense cloud for the local costmap. Frugality is student hardware, not a cloud GPU bill I will invent, and software fusion versus buying another sensor — that is the minus 55 percent. Extra hardware week-of is the discarded spend. Bias for Action is ship 60 FPS plus costmap on the sensors we had. The date does not wait on a purchase order.
Backup Frugality if Ylogx Redis already used. No invented radio specs.
There is no JWT on a rover. If they stretch: I do not expose an unauthenticated field telemetry endpoint. RLS depth points to Ylogx. I will not fake OAuth on ROS2.
Gazebo and RViz playback, then field runs. Metrics I can defend: 60 FPS, plus 40 percent obstacle, minus 55 percent collision, 17th of more than eighty. Not LangSmith. Not mAP. Gazebo lighting and dust are not the field, which is why field time existed. There is no named Jira. I will not invent one.
I would invest in sim-to-real for dust and stricter time-sync between ZED and costmap. I would keep the same ROS2 split: perception versus planning versus comms. I would still ship 60 FPS plus costmap before a new architecture the week of the contest. I would pair earlier on launch files so knowledge is not in one head. I would time-box “one extra sensor versus fusion” against the collision-risk number earlier. I would not invent a miss. The resume does not state that we missed ERC.
This is Deliver Results depth, Bias for Action, Dive Deep optional, “urgent requirement / trade-off,” “outside your scope,” “strict deadline.” Same bug. Do not retell 17th as a victory lap if the intro already used the rover — go to this failure mode.
The rover mapped. The planner still lied when occupancy was old. Field lighting was not Gazebo. Frames that were fine in sim arrived late in dirt. The operator feed can look healthy at 60 FPS while the costmap is already a second behind. Those are different bugs. I debugged GStreamer pipeline latency versus ROS2 callbacks versus ZED point-cloud rate. Those are three clocks, and any one of them can make the costmap stale. We kept dense cloud for the local costmap and downsampled for viz because more than two million points per second cannot all go to a laptop. Fusion and a live costmap dropped collision risk 55 percent. Obstacle detection improved 40 percent. 17th of more than eighty is the result of that bug dying in time, not of a last-week architecture rewrite.
Operator sees 60 FPS. Planner sees last second’s rocks. The feed can be healthy while the costmap is stale. Measure both. Extra hardware was not the first fix. Software fusion on the ZED 2 we had was. A new architecture in the last week would have been motion, not a result.
Why it was a ship-blocker I owned. On paper a webcam-quality demo stream was enough for a lab screenshot. Sixty frames per second on the operator and autonomy path was outside that screenshot and inside the challenge. ZED mapping into a costmap was the same expansion. I was software team, not “the camera person” on an org chart that did not exist. GStreamer and mapping were still ship-blockers, so I owned them. Public Gstreamer-UDP shows a pipeline shape. It is not a second internship and not extra metrics.
Deadline without a fake miss. ERC is a calendar date. It mattered because more than eighty teams show up whether or not your costmap converged. I sequenced 60 FPS and a live costmap first. The compromise was software planning versus more hardware, not skip safety. Communication if a ship-blocker is late: early and specific — the feed is late, or the costmap is stale. Then we cut extra hardware. We do not skip the occupancy grid to look busy. “We might miss ERC” in week twelve is useless. I will not invent that we missed.
Perception without planning failed first — a fast video that still collides. Reckless action would skip the costmap. Waiting for extra sensors failed as a default. I did neither. If intro already used Horizon, switch Deliver Results to Ylogx 40 percent / 99.9 percent and keep stale occupancy only if they ask why the rover placed.
Process is an address space; threads share it. Camera callbacks versus a separate mapping process is the honest split — keep it short. GStreamer 60 FPS is the honest UDP-family example if they ask CN. Deadlock: four Coffman conditions; break one. I will not write ROS2 in the Live Code editor unless they ask a data-structure analog. Banker's algorithm appeared on an older GFG last live — know the one-liner; do not pretend the rover used it.
Resume: “Won 1st place (CodeRecet), Best Project (MLH.io), Runner-up (Magnathon 2.0 - IEEE) across 8 national/regional hackathons demonstrating rapid software development and production-ready deployment skills.” I will not invent the other five titles, hours-to-prize, or a hackathon architecture the resume does not name. If they pick a named product after a hackathon prompt, walk StratifyLabs, GiftedBooks, or Argus — those are resume projects, not fake prize stacks.
| Named on resume | Result | Use as |
|---|---|---|
| CodeRecet | 1st place | Bias for Action backup; shortest clock |
| MLH.io | Best Project | Ship in the window; pair on the risky module |
| Magnathon 2.0 (IEEE) | Runner-up | Same; do not inflate to 1st |
| Five others | Unnamed on the PDF | Say “eight national and regional”; do not invent names |
Eight national and regional hackathons. The resume names three: first at CodeRecet, MLH Best Project, Magnathon 2.0 runner-up. Rapid software development and production-ready deployment is the wording I will defend. I will not invent hours-to-prize. I paired on the risky module instead of hoarding it. That is Hire and Develop backup and Earth’s Best optional, not a mentee count. If they want a named architecture after “tell me about a hackathon,” I walk StratifyLabs (browser inference, marketplace 50+, minus 30 percent iteration), GiftedBooks (hours to 3–10 minutes), or Argus (73 to 89 percent mAP) — those have metrics. I will not fake a hackathon system design.
Strict deadline backup if Horizon already used. Learn and Be Curious optional: a stack in hours and ship. No fake prize metrics. Do not make hackathons a fourth Horizon primary.
What I will not do in the room. List eight event brands I cannot spell from the PDF. Claim I was a “CTO for 24 hours.” Merge a hackathon into Ylogx 99.9 percent. Use hackathons as Customer Obsession — the customer on that LP is GiftedBooks students or Ylogx analysts. Rapid ship is Bias for Action backup, not a fake architecture.
Resume leadership line: Software Team Member of Team Horizon (Mars Rover, CUSAT) and Tech Team of IEDC CUSAT. Education: CUSAT CSE, October 2022–May 2026, CGPA 8.42/10. Hire and Develop primary. Earth’s Best backup. Bhavya “helped teammates/juniors” teammate half.
I was on the Tech Team at IEDC CUSAT while doing CSE at CUSAT with a CGPA of 8.42. New people joining club and hackathon work did not share one stack. If only one person could run the build, the next event failed when that person was on another laptop. I was a team member, not a manager. I did not hire anyone. I do not have a mentee count. I did not run promotions or Career Choice. Raise the floor so a teammate could ship: shared environment setup, reviews, and “here is the failure we already hit” on tools we actually used. CGPA is education, not this LP’s metric.
On Horizon the same honesty: I shared GStreamer, ZED, and costmap constraints so others could integrate. If only I understood the GStreamer launch order, the rover failed when I was on mapping. Sharing topic names and launch order is developing the team. Writing a ten-line runbook earlier is what I would do next; the resume does not claim a wiki, so I will not say we had one. 17th of more than eighty is a team score. I will not fake skip-levels. I will not invent ratings or headcount.
Earth’s Best versus Hire and Develop: do not collapse them into one sentence. Hire and Develop is coaching so they can ship. Earth’s Best is environment — growing, empowered, ready for what’s next, can they launch perception without my laptop. Both: no Amazon HR fiction.
Bhavya two-part prompt. Customers first: GiftedBooks, doubts to 3–10 minutes — do not mash into IEDC. Teammates second: this IEDC / Horizon sharing. Two products. If I use one metric for both, they will think I have one story.
| If they ask | Horizon / IEDC / hackathons role |
|---|---|
| Deliver Results (unnamed default 2) | Primary: 17th / 80+, stale costmap as setback |
| Bias for Action | Primary: ship 60 FPS + costmap; hackathons backup |
| Earth’s Best Employer | Primary: launch files / not one-head |
| Hire and Develop | IEDC primary; Horizon teammates backup |
| Frugality backup | Fusion vs extra sensor; −55% |
| Ownership backup | Ship-blockers not “someone else’s camera ticket” |
| Learn backup | ROS2 / GStreamer / ZED, not a web intern stack |
| Missed deadline | Do not invent a miss; sequence + communicate |
| Proud of (pick one) | This, or GiftedBooks if rover already used |
Horizon is already at three primaries (Bias, Deliver, Earth’s Best). Do not promote a backup into a fourth. Do not retell GiftedBooks here.