MicroStar Tech · Algorithm Engineer ·
An internship algorithm that grew into a production system.
A loading chute has to know where each open-top train car begins and ends. As an intern in 2021, I developed the LiDAR wall detection behind that estimate, and the system entered production before my internship ended. Over the following years, I kept extending it to handle material debris, blocked views, new sensors, mixed car types, and the uncertain motion of shunted trains.

The situation
The loading system needs reliable car-wall positions to start and stop material flow in the right places. Material debris, a chute that blocks the LiDAR’s view, and a growing mix of car and container configurations make it hard to separate useful observations and keep tracking them over time.
Motion was its own problem. When a shunting machine pushed or pulled the train, its encoder could move before an individual car did, as coupling slack and friction were taken up. The tracker had to account for that gap between measured and actual motion.
What I did
I wrote the C++ algorithms that detect car walls in overhead LiDAR point clouds and supply measurements to a position estimator. As installations changed, I adapted the processing for different LiDARs and reworked data association for mixed trains: open cars, empty flatbeds, and container pairs whose positions varied.
For shunted trains, I designed separate wall and car estimators. Each car estimate started from its associated wall estimates, and the surrounding algorithm decided when encoder data could reliably contribute to the coordinate transformations. That let the tracker handle the uncertainty of initial engagement and keep tracking through temporary loss of view.
When an installation that had been running well developed a problem, I traced it to a faulty LiDAR rather than the algorithm before making maintenance and release changes. Onsite, train loading wasn’t reliably scheduled, so I stayed ready to test whenever a train arrived, working directly with the electrical engineer responsible for the PLC.
I built the testing and diagnostic tools to see what the tracker was doing. My reusable C++ filtering work went on to support production estimation across several machine types, with tooling to inspect state uncertainty and compare estimates with ground truth.
What changed
The tracker entered production in 2021, and later releases expanded its sensor and car-configuration support as conditions in the field changed. It became one of the team’s most robust systems, running with little servicing or redeployment.
What started as an internship project became a system I carried through production and kept improving as the physical setup changed underneath it.
Bring the model closer to the machine.
If sensing, software, and hardware aren’t behaving as expected, I can help trace the problem and work through the next step with you.
Discuss your system