HappySkeptic Wrote:If you don't know what they are looking for, your hobby projects could sink you rather than help.How is having only done bad projects more alarming than having done no projects whatsoever? Everyone starts with writing bad code and they progress.
HappySkeptic Wrote:as well as what languages to be familiar with. You can't just know oneWell, I've written a compiler for my programming language in JavaScript (the old compiler targeting x86) and C++ (the new compiler targeting WebAssembly).
Though, I haven't used frameworks typical for them. I know nothing about VueJS, React, Angular and other frameworks typically used with JavaScript. I used the Duktape framework, which was useful for what I wanted to achieve. With C++, I have been able to do everything I wanted until now using only the standard library, I haven't used any frameworks. I don't even know which C++ frameworks are commonly used, to be honest.
HappySkeptic Wrote:I also like someone who regularly uses a unit-testing framework.Well, I use some automated testing in my new compiler, for the things that are easy to test automatically (the tokenizer, compiler and semantic analyzer). It's not as easy to completely automatize testing of the core of the compiler (outputting assembly code), and I think it's not worth the effort.
HappySkeptic Wrote:It is a real pain to get a new hire that never writes a unit-test, and just finds bugs via running the debugger.Well, to be honest, I don't even know how to install a debugger on the Linux machine at which I am working.
HappySkeptic Wrote:unoptimized outputOptimizers are a double-edged sword. On one hand, they can make a program faster. On the other hand, they can introduce bugs. Nearly all compiler bugs are in the optimizer. And even without compiler bugs, there are still undefined behaviors in languages that are not exposed unless you turn on the optimizer.
That's the reason embedded devices are still programmed in assembly, rather than C or higher level languages. You can't trust the compilers to produce both correct and fast code for them.
HappySkeptic Wrote:Then, with the right tool chain, the LLVM intermediate bytecodes can be compiled to any platform.How is that better than my new compiler targeting WebAssembly? Except that very few computers have LLVM virtual machines already installed, and nearly all computers today have WebAssembly virtual machines already installed.