On C++ codebases and Software Engineering, can you get it 'right'?

Published May 13, 2026

Let's take Avkon, Avkon (https://github.com/ne-app/avkon) is a C++ SDK to deploy applications using a webview API. It also includes PDF support.

Know the internals before expanding

That is because there is a high risk of expanding the wrong API, and thus making the library/software less readable and maintainable.

Take the PDF API for example:

int main(int argc, char** argv) {
    if (argc < 2) return 1;
    return ::ne_app::pdf::render(argv[1], ::strlen(argv[1]));
}

This required expanding webview.h to include direct PDF rendering support. For that, let's dissect the steps in order to do this successfully. You need to ask yourself:

"How would I design this myself if I were the library maintainer/owner?"

For that, take a look at the codebase, how tradeoffs are dealt with, the design choices...

You can't get it 'right'

It is because we're doing Software Engineering, not Mathematics. Precision is not what we aim for.

We actually aim for solving a business problem. Not finding the Reimann sum.

Pouring water on my wine...

It is because we're doing Software Engineering, not Mathematics. Precision is not what we aim for.

This is where I have to nuance this, there is business cases where you definetely need that. (Embedded, and Fintech comes to mind.)

But, that's correctness, not being 100% right. (Which is impossible by the way.)

Taking away from this...

Action over inaction in Engineering is better than waiting to get it 'right'.