Josh Pitzalis

Improving Retention

Page 3

Building 21st Night

This post outlines my experience building a web-based tool that makes learning complicated information quick and effective. You add information to the system in the form of cards, and the app works out which cards you need to review on what days.

The Problem

Trevor Klee is a private tutor who specialises in helping students prepare for standardised tests, like the GMAT and MCAT. He sometimes uses a Google spreadsheet to compile links of relevant topics for his students. They use the spreadsheet to review the information and then assess their understanding after each link. Depending on their performance, they mark the link for review the next day, in 3 days or a week later. Here is what a spreadsheet looked like in practice.


The process is tedious, and Trevor wanted a simple application that took care of all the details.

There are existing apps for this, Anki being the most popular...

Continue reading →

3592 hours

Today I worked on the page that lets you edit individual flashcards in the spaced repetition memory app I am working on.

This is where I started.

The main thing to fix was the tag component in the top right corner. I turned it into a dropdown and populated it with all the existing tags in the category. That way people can see what tags have already been created and they don’t end up creating a bunch of similar tags that should probably all be the same thing.

Screenshot 2019-05-30 at 2.01.18 PM.png

On the answer tab, I started with this…

Screenshot 2019-05-30 at 5.22.01 PM.png

I needed to add tags to each of the inputs and rearrange the layout a bit.

Screenshot 2019-05-30 at 5.20.51 PM.png

Broke a bunch of tests in the process, so there was a lot of time spent fixing tests and regretting writing them. I suppose that’s much better than regretting not writing tests in the first place.

Continue reading →


Active in the status column means the projects are still active.
Updated projects are active but they have been updated beyond recognition.
Stalled projects never launched, for one reason or another.
R.I.P. are projects that launched, lived their natural life and then got shut down.

Completed Project Description For Status Jul 2019 Meetbox Meeting agenda creator Personal Active Jun 2019 21st Night Spaced repetition learning app
Case Study Trevor Klee Active Dec 2018 Cryptominer World Ethereum Collectables Game Sophophilia Studios Active Sep 2018 Vaayu Vision Website for an adventure centre Vaayu Active Jun 2018 PeerPlus Online polling app
Proposal Aditya Sethia Stalled June 2018 Kautilya Books Online bookstore
Proposal Raju Arora Active May 2018 Smartspin App to help homeschool children Saar Shai Active Nov 2017 Realsies Social commitment tracking ...

Continue reading →

Design Problems in the Blockchain Space

One of the reasons blockchain applications have been notoriously difficult to use is because the industry has been led by engineers whose primary focus has been security.

If the technology is to be more widely adopted then we’re going to have to find a balance between the blockchain’s machine requirements and it’s human needs.

Some things we could do to make blockchain applications more intuitive are to stay away from using jargon, providing guidance while people are using applications, ensuring constant feedback during use, and calling attention to one-way doors.

Staying Away From Jargon

Let’s make sure people don’t have to know the lingo to be able to use our apps. The focus should always be on what something lets you do and not how it works.

The danger here is an oversimplification. When we must communicate something specific and complicated, let’s rely on analogies or concepts...

Continue reading →

An Ode To Hill Charts

Basecamp came out with a new kind of to-do list called a hill chart. This is what they look like.


Things on the left are being figured out, anything on the right means it’s being done. Stuff on the far left is vague and need a lot of figuring out while stuff on far right is almost finished.

Every time you do some work, you manually move the task a little further along the line. There no science to it, it’s not automatic, you just ballpark it and move it to where it feels right.

That’s it.

What I love most about the hill chart is that it has turned my workload into a menu. Some days I wake up and feel like figuring things out, other days I just want to get stuff done. Depending on how I feel I can pick a task with just the right consistency for the day.

Sometimes I need a boost so I’ll pick a task on the far right. Finishing stuff that is almost finished makes it feel like I’m...

Continue reading →

I Recommend…


  • Workflowy for organising your head.
  • Basecamp for organising stuff in teams.
  • Beeminder for sticking to commitments.
  • Best calculator for OSX Numi.


  • The Creative Class for how to freelance like a pro.
  • Bonsai for invoicing and payments.


  • Monochrome palette builder.
  • Contrast accessibility colour picker for OSX.
  • TinyJPG for image compression.
  • Typeface pairing inspiration:Typewolf.


  • Learn State Machines: Learn how to use finite state machines in javascript applications.
  • Javscript Testing: Learn how to test javascript applications.


  • Clickminded is just the best SEO course.


  • Ryan Holiday’s Newsletter for fantastic book recommendations each month.

Continue reading →

Hire Me

“We hired Josh together with a small group of freelancers to build a prototype app for us in a week. They did it! And, we are delighted with the results. Josh was a delight to work with; always cooperative, creative, responsive and technically excellent at his job - went above and beyond. I wouldn’t hesitate to recommend him to anyone.”

Bec Evans & Chris Smith, founders of Prolifiko.

Working with Josh was a great experience. His sense of design, aesthetics and flow of information was amazing. I am very pleased with his work and recommend him very highly.

Raju Arora, Founder of Kautilya Publishing.

Joshua was extremely detail oriented and thorough in this project. I would highly recommend him to anyone wanting a quality developer.”

Eric Schuster, Founder of Fresh Look Web Design.

If you are looking for someone that will listen to your idea, understand what needs to be done, and...

Continue reading →

Reaching out to people and finding work as a freelancer

I started my freelancing career as a personal trainer. The easiest way to get started as a personal trainer is to work for an agency. They take a cut of your profits, but they set you up in a gym and show you the ropes. Showing me the ropes meant a two-day workshop on how to find and work with clients. I did the workshop over a decade ago, and the one thing that stuck with me was something called the 6 by 6 promise. They promised that if I did one of six specific things for six hours a day, I would be fully booked with paid clients in 2 months. I used this approach to successfully find clients when I first started working in a gym, I used it again when I set up my own clinic years later, I used it again when I switched careers and became a freelance software engineer.

They gave us a pdf at the end of the workshop, and I’ve held onto it so I can actually show you the original diagrams to...

Continue reading →

A Basic Smart Contract

pragma solidity ^0.4.24
contract Campaign {

    address public owner;
    uint public deadline;
    uint public goal;
    uint public fundsRaised;
    bool public refundsSent;

    event LogContribution(address sender, uint amount);
    event LogRefundsSent(address funder, uint amount);
    event LogWithdrawal(address beneficiary, uint amount);

    struct FunderStruct {
        address funder;
        uint amount;

    FunderStruct[] public funderStructs;

    constructor ( uint _duration, uint _goal) public {
        owner = msg.sender;
        deadline = block.number + _duration;
        goal = _goal;

    function isSuccess() public constant returns(bool isIndeed) {
        return (fundsRaised >= goal);

    function hasFailed() public constant returns(bool hasIndeed) {
        return (fundsRaised < goal && block.number > deadline );


Continue reading →


Given the amount of advertising we are exposed to on a daily basis, most people now instinctively resist anything that feels like marketing.

People do not like being sold to.

In our hyper-connected social world, most people now hear about interesting ideas from each other. One way to sidestep the growing resistance to marketing is by finding ways to get people to talk to each other about your business.

Word of mouth is ultimately the most effective and most desirable form of marketing for any business.


My first experience designing a campaign based on helping people talk to each other was for a cafe in 2014.

We had a tiny amount of money to play with and just over a month to prepare.

The first step was to design a website. This was going to be the first glimpse of our business out in the world. We needed something to direct people to when we talked...

Continue reading →