Course code: ROL-1
  • Years with company: 1.5yrs
  • Years programming: 7yrs
  • Primary programming language: C++
  • Other programming languages: Python, Java, SQL, bash. I used to work with ADA as well.
  • Unit test harnesses: Barely any, I got taught about gtest at school and a bit of tdd as well, but that was only basics in a perfect environment, nothing that could be easily extended to a real world situation (with legacy code).
  • Something else: During school, I was working on a private game server for >2k simultaneous players. The team consisted of around 20 people (8 developers and 12 gamemasters). We were adapting its c++ code and database to provide new features and events to the users. I was leading the dev team, planned and worked on low level stuff such as communication protocol between client and server, pathfinding and collision detection algorithms to improve interactions between the world and the users. This project lasted ~2.5yrs. After my studies, I went to the european spatial center in french guiana to work for the software maintenance of the ground segment operations. It mainly consisted of developping ADA procedures that check valves, temperatures, positions of the VEGA and Ariane 5 launchers and all the devices around. The validation was made separately by the ESA and ArianeGroup specifiers, running on the bench, and by specific devices. I worked there for 3.5yrs
  • Test practice now: Mainly with manual tests on the device. We run the software on the actual device, we try the functionality and we then force some issue on the device to check if the degraded branches work as well. We have a few tools made in python to connect and force values on the device so we can simulate issues on the device. Also, in my current job, we are mainly trying to unknit the monolithic software that we have, we don't develop new code, it's rather a cleaning that we are doing within the platform team.
  • Target system: We build the product for a linux target, it's a plain, monocore cpu board. we also compile it locally and run it on our linux dev VMs, for testing purposes.
  • Dev tools: QtCreator (CLion soon) Git (not properly used at all by the company, but that's another topic) We are applying a CI pipeline for 2 months now within the platform team, trying to push it to other teams as well as merge requests
  • Build time: 30-60 minutes
  • Coding standard: we are trying to apply C++ code guidelines, but the code is so intricated that it's nearly impossible to make it clean, and we have around 25% of the code that is written in german (comments, but also method and variables names)
  • Function too long: personally : when I have to scroll to see the variable declaration in this company : we are far from having this in mind
  • Code reviews: we had none
  • Code time: 40%
  • Test time: 10%
  • Debug time: 50%
  • Favorite thing about dev: solving algorithmic problems, finding the best complexity to solve the problem. Developing reusable code. Be proud of what I develop
  • Least favorite thing about dev: copy pasting things. cmake and devops, often looks like magic to me (things suddenly work or break, you never know).
  • Tdd knowledge: Developing tests first gives you a frame of where you go and what you want to achieve. It's also a way to be sure tests will be developped because no one wants to develop tests when they have finished the product,and companies dont offer time for it
  • Why are you attending: honestly, I want to produce clean code, and it's an opportunity to learn how to do it well. I hope to learn realistic ways to do them, not only like at school with perfect situation. How to do it in a pro environment with legacy code and limits