Currently, I work for Ibeo on developing a runtime editor for a sensor simulation. This product is fairly similar to video games so the same tools, techniques, and patterns are employed. My routine is writing technical document, UI/UX prototyping, and time estimation for new features, and developing them after discussion in cross-team meetings. Some features that I recently added are physics-based lighting system, material assignment, and HDRP support. Repositories that I contribute to are:
- ScenarioEditor and ScenarioViewer in Unity/C# (find details on the links), it is similar to a game level editor, Many UI components, drag/drop, undo/redo, selection features. in scenario viewer I faced optimization challenges to perform rendering concurrent with receiving scenegraph nodes.
- Communication (we use binary flatbuffer for serialization and nanoMsg for network layer). This is a cross-platform, cross-language (C++, C#, Python) comm component. It provides requestHandler, pair, publish/subscribe channels for me to manage messages between the SimulationNode and ScenarioViewer. I also added a layer of C# friendly classes in this component on top of the machine generated type from flatbuffer schema to be used in Unity3D.
- SimulationNode (in C++, we use the Entity-Component-System), I mostly touch the ScenarioLoader, and SceneGraphSerializer/Deserializer.
- I also develop unit tests using Test Driven Development using Gtest and perform code reviews.

