jlillioja.github.io

View on GitHub

Who I Am

I'm a programmer with a focus on people skills. I think clear and amiable communication between engineers is as important to the success of big projects as programmer skill, and so I focus on developing my communication skills as much as my technical ones.

I try to understand complex, abstract ideas in simple and easily communicable terms. I avoid using jargon and long or arcane words; instead, I try to express ideas accurately and concisely in the simplest terms that satisfy. I don't think I've understood an idea until I can convey it to a layman.

In my programming, my foremost goal is readability and transparent logic. Understandable code is easier to write, to debug, and to collaborate on, and this payoff is often worth sacrificing execution speed and number of lines. To achieve this, I tend toward a functional style of code and a top down approach to engineering.

I have a growth attitude. I don't ever want to stop learning and developing myself, and I want to bring that attitude to my peers and environment. I'm proud of what I've made and what I've learned, but I endeavor to never be satisfied, never be finished. I'm not a perfectionist. I don't believe in perfection. I do believe in consistent, productive effort, and I think it leads to better results than searching and straining for perfection.

I'm flexible in my beliefs. When the opportunity arises to change my mind or develop my beliefs, I seize it. When I disagree with an idea, I try first to understand how one could believe it to be true, and to consider its merits on common footing. This makes it easier for both myself and others to change our minds if warranted. I think one who changes their mind often is much more likely to develop deep understanding than someone whose beliefs have calcified.

What I Like

Like most programmers, I like software than can change the world. My biggest areas of interest are strong cryptography and decentralized computing; specific technologies include Bitcoin, Ethereum, OpenBazaar, and Tor. I think that making these technologies easy to use is as important as the technologies themselves, and is too often neglected.

When I'm not programming or learning, I like making music - I play piano, usually improvising or playing by ear. I play tabletop RPGs, both as GM and as a player. I play videogames, mostly atmospheric, immersive RPGs, but also Super Smash Bros and Hearthstone. I like visual media - I'm enjoying our golden age of television very much, though very rarely on an actual television. Most of my reading is nonfiction, and most of the fiction is scifi.

What I Can Do

I use Windows, Linux, and Android. My best programming is in Java, and I have recently been working on my Android programming. I have also used C, C++, Python, and Ruby. I have a strong command of cryptography fundamentals, including the use of cryptographic hashing, symmetric key crypto, and public/private crypto. I am also familiar with their mathematical foundations.

Here is my current project: an Android app for one-click tracking of repeating activities.

Here is my implementation of a cryptographically secure channel.

Here is my simple Android app for researching movies.

Here is my theoretical implementation of a secure lottery system.