About the website
apotheca.io is the brainchild of Leo.
About the author
Leo D.
Computer engineer, scientist, and mathematician
Reader, writer, technologist, and baker
A lifetime of curiosity
My favorite and deepest areas of exploration relate to computers, programming, and information science, but they smoothly blend into many other domains. I enjoy the study of the intricate nature of computation, and its links to the greater world through physics, chemistry, biology, linguistics, and cognitive science.
I'll never stop learning, because there are far too many interesting things to study. When you know enough about the right topics, it reveals even more unexplored areas to learn about.
Interests
Game engines
Games are what got me into programming in the first place. They're highly concurrent systems that require a lot of serious consideration to make run smoothly, and I've always enjoyed the challenge. I'd like to build the game engine of the future, using what I've learned.
Mobile engineering
A smart device in my pocket? This is normal now, but it wasn't always. I started my career doing mobile development when it was the new frontier. These days, there's a well-established ecosystem, but there's still unexplored space as the technology continues to develop.
Distributed systems
There's no difference between one computer and many - it's just a larger computer. The dynamics of distributed systems, and the requirements to build a stable, self-correcting network is a problem that I have aimed to solve, making it the heart of my research.
Functional programming
The deeper into programming and computer science I get, the more rigor I need to express my program. Functional programming and higher-kinded types have made my programs safer, smaller, and smarter.
Languages and Compilers
I started with Java, ended up with Swift and Haskell, and went through C, Python, Javascript, and others along the way. I've learned and used so many languages that syntax no longer matters, only semantics. Now, I'm writing a book on how to build own distributed compiler and operating system.
VR and Interfaces
Every computer / program needs an interface - there is no point to a computation if its result cannot be observed. As computers grow in power, so does our ability to interface with them. We're especially excited about the coming days of VR as devices become ergonomic enough for casual everyday use.
Professional
I've got a decade of professional experience in the mobile / technology engineering space, filling almost every role imaginable for someone who likes to stay close to the code. Whether it be front-end user interfaces or back-end networking and distributed systems, I've done a little bit of everything, big and small - from television apps developed when the iPad was released, to comic book readers and smart lightswitches, to vr development and food e-commerce.
Academics
I've been an avid reader and lover of knowledge my whole life. I got into computers at an early age, and I took my first programming class in high school - AP Computer Science 1, learning late 90's Java. By the next year, I had outpaced my teacher, and was the only AP Computer Science 2 student, helping teach the CS 1 course that I had taken the year before. I passed my CS AP exams that year with a perfect score.
I graduated from RIT (the Rochester Institute of Technology) in 2012, and received a Bachelors of Computer Science (Game Design and Development). This was before the great Renaissance of Game Development, when an Unreal license cost hundreds of thousands of dollars a seat, and indie game development meant writing your own input loop, physics engine, and networking and rendering systems. Halfway through my degree, mobile became a thing, and my skill for efficient code in games took me in a new direction. From there, I got into internet-of-things, and distributed computing. Today, I'm deeply invested into functional programming, higher-kinded-types, and information theory, and I'm using that to build a naturally distributed operating system for the future.