On the other hand, my job consists of working on poorly managed sphaghetti code with very low velocity, the system is very inefficient, and the tooling, debugger support, etc., are pretty terrible.
This is resulting in burnout, my job is frankly, too boring. I want to know if anyone found themselves in a similar situation, and how they would deal with it.
I like the company, but I do not feel like I am living up to my potential in my current role. How does one aquire or transition into "interesting" roles, especially regarding new development? What do hiring managers for new development look for? And what do I look for in job/role listings to weed out legacy/maintinence work?
So far my best idea is "Magnesium" but it doesn't roll off the tounge very well.
Anyone want to volunteer a suggestion?
It is a low level (C/C++-like) systems programming language.
1. Develop faster than C++, by being context free and simplify the syntax where it can be done without causing problems with the other 2 goals,
2. Drastically improve compile and link times v.s. C++, and
3. Improve execution speed and efficiency v.s. C++,
With that in mind, there are a few different cases I am interested in:
1. Standard library benchmark suggestions. e.g. "Insert X random entries into a map"
2. Benchmarks for problems that C++ has issues with, where you might turn to assembly instead. For example, if you find that Clang++ and GCC generate sub-optimal assembly when multiplying two matrices even with -O2. Super helpful if you point out what the compiler is doing wrong.
3. Benchmarks for problems you think that might show the language is fit as a high performance language. Example: "Serve X concurrent https requests".
4. Areas where C++ has performance portability issues. E.g. "I can't write a fast matrix multiply that is fast on both ARM and x64 without doing #ifdef __aarch64__ ... etc..
5. Any ideas for performance improvement that requires language frontend support (example, allowing the programmer to assign pointers and references to user-defined alias groups, as opposed to only using alias groups that result from compiler analysis)