Hello Bernd
Ah yes, the hypocrisy of Google insisting you make things fast, while their own bloat (in particular, ads for those sites that can't survive without them) is the thing that most significantly slows down the Web these days.
In your case, your page speed is not bad (better than most pages I analyse). Here are some suggestions to speed things up (at least for initial page load, which is what Pagespeed Insights is mostly concerned with).
(1) Make use of a CDN, so that your pages are served from a server closest to the user. I've been using Cloudflare for a few years now and their free account is more than adequate. I use the "cache everything" setting and once the cache servers have got your content, it speeds things up enormously. As you have hosted MathJax on your server, this will potentially be even faster than using the MathJax CDN, as there is one less server for your page to access.
You should also increase the cache time for most assets - one year is recommended.
(2) The first MathJax math on your page doesn't occur until about 1/2 way down. You could make use of lazy loading so it doesn't start to process your math until just before the user needs it. This would involve:
b) Making use of an efficient lazy loading script which doesn't use mountains of CPU (and therefore battery and causes lag) as the user begins to scroll down the page. See
https://developer.mozilla.org/en-US/docs/Web/API/Document/scroll_event When the user reaches a predefined point (say 500 px above the first bit of MathJax) it would trigger MathJax to process your math.
MathJax v 3 is already quite efficient. It needs time to scan the page, load what fonts it needs and format the math, then paint. I know Davide has put a lot of effort into this aspect for version 3. So there's not much you can do about that. By processing the math after the initial page load, the user's experience isn't held up unnecessarily - only when they actually need the math.
(3) I looked at several other pages apart from this page and your home page and I found most of them don't used MathJax at all. I suggest you only load the mathjax.js script on pages that actually have math on them - otherwise unnecessary javascript gets loaded and MathJax tries to process math which isn't there (although that's practically instant).
(4) There is actually an error occurring with your startup.js script:
Uncaught TypeError: Cannot set property Package of #<Object> which has only a getter
I'm not quite sure what your sequence is there but it may also be adding to the processing time.
Also, usually the configuration needs to go before MathJax is loaded, but it seems it comes after on your page, and then startup.js runs. You may wish to revise this flow.
(5) The huge image
fibonacci_score.png is 228 kB on your page is way bigger than the recommended max of 100 kB. use an image optimising service to reduce this and any others on each page.
I hope it helps.
Regards
Murray