Half of the technical work is built around compiler technology (and more generally the implementation of programming languages, such as the various runtimes). It's been fascinating to understand how widely-used programming languages are implemented, which I talked about in a blog post about inner classes in Java (https://blog.primitive.io/inner-classes-in-java-1804ed51b7de). Similarly, it's been great to look at large open-source codebases and try to understand them. For example, we dug around the internals of IntelliJ IDEA (https://blog.primitive.io/how-intellij-idea-knows-your-code-...).
It's true that we often use compiler APIs that are already available, but we still have to understand how those compilers work, and what language features we have to support in our data extractions. Right now, we're a small, scrappy team, but in the future, we'll surely have to build out more infrastructural technology ourselves.
The other half of the technical work is working with 3D graphics and in data visualization, another area of CS I really enjoy. Making code _accessible_ at a glance is always challenging, but when I get to use that visualization to understand new code, all the hard work is worth it.
Combining all this with the non-technical work a startup entails (business development, UX, etc.) means I get to really flex my mental muscles!