4 ms·
I lead a team that went beyond this problem in an investment bank: we must make the trading resistant to volume increase, whatever the system. It's an exhausti
by secondaryacct 5y ago
I lead a team that went beyond this problem in an investment bank: we must make the trading resistant to volume increase, whatever the system.
It's an exhausting exercise: we must constantly join new team, extract the source code from their grippy hands, show them how to profile, explain the globality of the problem, how doing a good job only matters if down the line people can still trade whatever the volume and yes, even if it's a silly volume, what can we do.
We were able to really get creative solutions by stopping the absolute technical talk and just ask stupid questions: what's our upstream maximum rate, how fast are we feeding down stream, what's blocking in the middle, how do we scale (usually we can stop at profiling after we find 3 horrendous beginner mistakes, thank God lol)
- EastSmith 5y agoNot optimized code is not code with "beginners mistakes". It is simply code that need optimisation.
- Too 5y agoBoiling water in a pot without the lid on is a beginners mistake. The fix is easy, obvious and the gains are significant. Claiming that it eventually works anyway is setting a low standard. With code the factor can often be several magnitudes larger than the example above. Like using O(N*N) where O(N) is the norm, spawning a thread for every function call, doing rpc for things that should be local, and so on. These things are bad practices and it’s ok to call them mistakes. Beginners will make mistakes and that is acceptable. Everybody learns.
- mbrodersen 5y agoNot understanding how your software fits in the overall system and not understanding what is important is a beginner mistake.