Software Engineer
Notes on learning (human) languages
How to design a new programming language from scratch