Tuomas Kanerva

Freelance software developer, game developer and functional programming aficionado

Recent projects

Reilu Meet

Social media platform

Reilu Meet is a peer-to-peer social media platform where you make the rules. It's built using Supabase, the PostgreSQL-driven open source alternative to Firebase.

Reilu Meet back end is built using PostgREST, allowing us to directly respond to HTTP requests using PostgreSQL functions. All functions are rewritten at deployment to guarantee a fully declarative environment. Database triggers are used to synchronize state between services and clients in real time.

Reilu Meet front end is built using React and the reactive streams library Kefir.js. Functional programming idioms are used where possible to guarantee pure, declarative state management. Ramda.js is used to compose functions in point-free style.

Reilu Meet is currently in closed beta.

Pups

Programming language

Pups is a general-purpose, dynamically typed, pure, functional, practical stream processing language. Its interpreter is currently at an experimental stage and can be run using Node.js or a web browser.

Pups started as an experiment to design a functional programming language based on infix notation. This was an effort to combine the extensibility of pure functional languages such as Haskell with the readability of left-to-right composition present in many languages such as F#, Clojure and shell scripting languages. This led to a syntax consisting of multiple terms separated using the comma ,

# A "Hello World" program in Pups,
to "Hello World"

Values are passed from left to right, similarly to how piping works in shell scripting languages:

= increment (+ 1),
to 1, increment,
returns 2

The original goal was to provide a quick to use, structured language for command line text processing, but its focus has since shifted to reactive programming and general stream-processing. Next step would be to implement a high-performance interpreter using Rust.

Pikadoc

Offline documentation browser

Pikadoc is an offline documentation browser that allows you to rapidly parse, generate, search and view reference documentation using a easy to use CLI. It's implemented using the functional shell language nushell to allow for seamless integration of local and online sources to generate version-appropriate documentation on the fly.

Pikadoc currently supports documentation sources such as JSDoc, Python, sqlite, man pages and more.

More projects

More public projects available on my GitHub profile.

Technologies

Here's a tag cloud for recruiters:

  • javascript
  • python
  • lua
  • ruby
  • php
  • lisp
  • gdscript
  • html
  • css
  • c#
  • java
  • scala
  • clojure
  • haskell
  • sql
  • postgresql
  • sqlite
  • mysql
  • redis
  • mongodb
  • node.js
  • react
  • jquery
  • express
  • angular
  • flask
  • django
  • ruby on rails
  • rabbitmq
  • bash
  • fish
  • nushell
  • nix
  • docker
  • aws
  • supabase
  • cloudflare
  • netlify