I work on a browser rendering engine. I write Rust. No, it's not frontend, backend or systems engineering.
I have struggled to explain what I do. So here's my attempt.
You know when you write "display: flex" in your CSS and it just works? Someone had to make it work.
Here's how a language feature goes from idea to your screen:
Someone proposes a new feature in HTML/CSS/JS language. for example a new CSS property or a new way to handle text.
A standards body (W3C for CSS, WHATWG for HTML, TC39 for JavaScript) discusses it, debates it, refines it. If it gets accepted, they publish a specification.
A document that describes exactly how the feature should behave.
Now browser engines (Chrome uses Blink, Firefox uses Gecko, Safari uses WebKit, and there's Servo which is written in Rust) need to actually implement it.
Someone reads the spec, writes the code in the engine that says "when you encounter this property, here's how to calculate it, here's how to lay it out, here's how to paint it."
Then it gets tested against thousands of web platform tests. Then it ships in a browser release.
Then you install a browser update. Then you write that CSS property in your project. Then your users see it render correctly on their screen.
That middle step, turning the specification into working code inside the engine, that's what I do.
These days I am working on making sure one is able to debug things in Servo DevTools!