If you can't make a race condition in a device driver into an interesting story, you need to work on your story telling :)
And compilers are fascinating - you are, essentially, formalizing the act of translating between languages. Something anybody who speaks more than one language can understand.
You probably can't translate everything you do into a great story, but the basics of your field should be straightforward.