Hi There,

I'm Pegasis.

/ NOT your average university student. /

I'm.....

Managing  

8  Apps and Websites

Maintaining  

4  Open Source Libraries

Contributing to  

12  Open Source Projects

Administering  

4  Linux Servers

Apps & WebsitesLibrariesContributionsServers

Unofficial

YRDSB Teach Assist

My high school school board (YRDSB) uses a website called "Teach Assist" to allow students to check their marks online. The website was developed more than a decade ago, resulting in poor user experience. I decided to give it a revamp using modern technologies.

Blazing fast speed

Carefully designed UI

Smooth animations

Push notifications

4000+ Peak daily active users

5 Million+ Requests served

Better than Facebook TM Annual uptime

Unofficial

YRDSB Teach Assist

My high school school board (YRDSB) uses a website called "Teach Assist" to allow students to check their marks online. The website was developed more than a decade ago, resulting in poor user experience. I decided to give it a revamp using modern technologies.

Blazing fast speed

Carefully designed UI

Smooth animations

Push notifications

4000+ Peak daily active users

5 Million+ Requests served

Better than Facebook TM Annual uptime

4000+

Peak daily active users

5 Million+

Requests served

Better than Facebook TM

Annual uptime

The best uno game on the internet.

No login, no ads, no bs

Completely serverless

Unlimited players

Fun!

The animations are insane.— Reddit user
OMG thank you so much!— Reddit user

The best uno game on the internet.

No login, no ads, no bs

Completely serverless

Unlimited players

Fun!

The animations are insane.— Reddit user
OMG thank you so much!— Reddit user

GROK

Channelled messaging app, before* Discord.

(I Made this in grade 10, it's pretty bad in today's standard.)

Chat in Different Channels

I promise you I got this idea before learning discord is a thing :)

Follows Material Design

Because who doesn't love the ripple effect and smooth animations?

Blazing Fast

  • Using native components
  • Utilizing multiple cores
  • Lazy loading

Mouse, Keyboard and Multi-Window Support

Just because I can.

Serverless

LeanCloud

Native Android App

Kotlin

* By before I mean before I heard of Discord.

Currently closed due to LeanCloud (a Chinese company)'s real name verification requirements.

GROK

Channelled messaging app, before* Discord.

(I Made this in grade 10, it's pretty bad in today's standard.)

Chat in Different Channels

I promise you I got this idea before learning discord is a thing :)

Follows Material Design

Because who doesn't love the ripple effect and smooth animations?

Blazing Fast

  • Using native components
  • Utilizing multiple cores
  • Lazy loading

Mouse, Keyboard and Multi-Window Support

Just because I can.

Serverless

LeanCloud

Native Android App

Kotlin

* By before I mean before I heard of Discord.

Currently closed due to LeanCloud (a Chinese company)'s real name verification requirements.

Raspberry Pi Monitor

Zero dependency remote system monitor for linux machines.

App downloads the latest agent from the server.

App uploads the agent to /tmp using sftp.

App retrieves status from the agent using ssh.

400kB Agent size

0.01s Time takes for the agent to retrieve system status

Raspberry Pi Monitor

Zero dependency remote system monitor for linux machines.

Downloads the latest agent from the server.Uploads the agent to /tmp using sftp.Retrieves status from the agent using ssh.

400kB Agent size

0.01s Time takes for the agent to retrieve system status

400kB

Agent size

0.01s

Time takes for the agent to retrieve system status

Libraries

Typora Parser

Convert Typora flavoured markdown to HTML.

TypeScript

Typora is a popular (I'd say it's the best) WYSIWYG markdown editor. However it is proprietary and doesn't provide a command line export tool. This project reverse engineers Typora's logic and creates an open source library for processing Typora flavoured markdown.

In Development

ImmuKt (Heavily inspired by Immer)

ImmuKt

(Heavily inspired by Immer)

Create the next immutable state tree by simply modifying the current tree.

Kotlin

From.....

val newList = ArrayList<Person>()
newList.addAll(data.people)
newList[0] = Person(
    newList[0].name,
    19,
)
val newData = Party(
    data.time,
    newList,
)

To...

val newData = data.produceWith {
    it[Party::people][0][Person::age] = 19
}
Github

Keep Keyboard Popup Menu

Fixes an annoying Flutter bug where opening a popup will cause keyboard to close.

Keyboard Aware Dialog

Fixes another annoying Flutter bug where the dialog won't move up when the keyboard is open.

Contributions
Servers

I can install linux manually using command line with LUKS full disk encryption and LVM (Guide)

I've daily driven Linux for over two years

Experience with using and administrating arch linux and debian

Experience with GCP, digital ocean and vultr

Familiar with docker

What else do you want? :P