~/ellej %

cat program.thusly

fun greet | name
if name = ""
@out("Welcome! 👋")
else
@out("Welcome, {name}! 👋")
end
end

var visitor: @in("Enter your name:")
greet(visitor)

~/ellej %

./start program.thusly

Enter your name:

Welcome! 👋

Who?

Hey! Let's get right to it. I'm an avid problem solver and continuous learner in the amazing field of software development. I love understanding the details of how things in our world work and want to share this passion with others. I gladly spend my time digging deeper into programming languages as well as building full stack web and mobile applications.

What I Do

Databases
MongoDB, RealmDB, MySQL
SDK Design
Database SDKs for Node, React Native, Lua
Parsers & Compilers
Implementation of programming languages
API Design
REST APIs (and some GraphQL)
Web & Mobile Apps
Node, React, React Native, Gatsby, Vanilla JS

Projects

Curved arrow
Icons made by Freepikfrom www.flaticon.com
pin

Language

Frendli

Programming Language for CS1

Frendli is an open-source general-purpose programming language intended for learning and teaching programming. It is designed around empirical data on difficulties and misconceptions held by novice programmers. The implementation is a recursive decent parser and an AST interpreter.

View Details

Java

Parser

AST

Interpreter

Curved arrow
Icons made by Freepikfrom www.flaticon.com
pin

Language

Thusly

Programming Language

Thusly is an open-source general-purpose programming language originally developed for personally deepening my knowledge of compilers, virtual machines, and the C language. The implementation is a one-pass compiler and a stack-based virtual machine.

View Details

C

Parser

Compiler

Bytecode

VM

Curved arrow
Icons made by Freepikfrom www.flaticon.com
pin

Web App

Virp

Encrypted Messaging Platform

Virp is a privacy-focused web-based messaging platform allowing users to chat via end-to-end encrypted (E2EE) messages. Users can control self-destruction timers for outgoing messages, manage notifications, settings, active chats, as well as their contacts list by searching, adding, removing, or blocking other users.

View Details

Node.js

Express

MongoDB

React.js

Socket.io

Jest