Contributing to an open source project as part of this SA was very exciting.
I am really looking forward to our features getting merged and released as part of clangd.
It was really helpful that I already have experience working with GitHub and open source projects.

Actually programming was quite tedious at times due to builds taking a long time and useful functions not being easily discoverable.
Also, some advanced language features could not be used, as clangd itself is using C++17.
This means that, funnily enough, concepts could not be used.
However, in the end, the actual code required to add the refactorings was quite simple.
There was no need to adjust large configuration files, and the abstraction from the language server protocol felt at the right level.

Like with most projects my biggest struggle was the documentation.
What helped a lot was restructuring the outline early on.
I also had a pretty hard time finding the appropriate tone to write in.
My highlight was that I got to try out a new documentation tool (Typst @typst),
which made writing the documentation quite a bit more fun than LaTeX.

As for teamwork, Vina and I worked great together, and I had a lot of fun.
Especially towards the end, when we had a great workflow with pull requests and issues to work on the project asynchronously.
The weekly meetings with our advisor were also really helpful, since he has a very deep understanding of C++.

In conclusion, I found the project to be a good learning experience, and I now know a lot more about the language server protocol.
It feels like the time was spent well, because we were able to submit the entire work upstream, where it will hopefully live on.
