Ollie

Portfolio

These are some of the projects that I’ve worked on, as well as code samples which I think demonstrate my understanding.

I am comfortable working in Python, TypeScript and C, and I have basic working proficiency with R and C++. I have worked with LaTeX typesetting before (but nowadays prefer to use LyX instead). Furthermore, I have rudimentary experience with Matlab, Mathematica, RStudio, and Jupyter environments. I have made basic Rust programs before and I am very interested in developing my skills further in the language.

I am open to learning new languages and frameworks if required. I am very interested in getting experience working in Julia and the aforementioned Rust. If you have any opportunities, please get in touch!

  1. 2023: Flexiplex @ Davidson Lab, WEHI
  2. 2023: Lookahead
  3. 2022: COMP10002 Foundations of Algorithms
  4. 2022: WACE Paper Archive
  5. 2020: pymine
  6. 2020: Methods Maths Investigation
  7. 2018: TranslucentTB

2023: Flexiplex @ Davidson Lab, WEHI

At the Walter and Eliza Hall Institute, I have been involved with the Flexiplex (preprint) project to produce a flexible demultiplexer for barcoded long-read single cell data.

Part of my work with Flexiplex has included:

2023: Lookahead

Untitled

Live link and GitHub

Lookahead, originally released by Rohyl J., is a University of Melbourne semester planner which has been used by upwards of 25,000 students. As Rohyl was too busy to maintain the codebase, I was part of a small team who forked the original project with the aim to modernise the codebase and implement new features. While working on this project, I learnt how to:

2022: COMP10002 Foundations of Algorithms

I wrote the following two assignments for my computer programming course COMP10002: Foundations of Algorithms. My final mark for this subject was 89%. I have attached below my two assignment submissions. Note that for the scope of these projects, I was not permitted to use:

void log_pushAction(log_t *log, action_t actn, int amt) {
  check_pointer(log);

  int id = action_convertActionToId(actn); // get the ID of the action

  action_t *actions = log->actions->data;
  if (id >= log->actions->capacity) { // if ID is larger than the vec
    vector_extend(log->actions);      // then extend the vector
  }

  if (id >= log->actions->size) { // if ID is bigger than the size
    log->actions->size = id + 1;  // increment size
    actions[id] = 0;              // ensure this is initialised as 0
  }

  if (!actions[id]) {               // if this action has not been seen before
    log->action_n_d++;              // increment distinct counter
    actions[id] = 0;                // ensure value is 0
  } else if (actions[id] == -amt) { // in this case, actions[id] = 0 after the
                                    // the deincrement. hence...
    log->action_n_d--;              // we effectively remove this event
  }

  log->action_n_t += amt;
  actions[id] += amt;
}

2022: WACE Paper Archive

Untitled

Live link and GitHub

I created and maintained an archive of past WACE papers, freely available for use by students. This has now been taken down due to copyright concerns. The interface was built in Svelte. In making this website, I learnt how to:

2020: pymine

GitHub

During 2020 and 2021, I ran and taught a Programming Club at my school, focusing on teaching Python to middle school students. During that time, I created a custom server which would be accessible through a Python interface, and could interact with a Minecraft instance through its WebSocket interface. I also wrote a somewhat comprehensive Python guide for my students, accessible here. While working on Pymine, I learnt how to:

2020: Methods Maths Investigation

Untitled

GitHub

For a maths investigation concerning the production of an estimation model, I used a variety of basic regression techniques to determine the most accurate mathematical equation which fit a certain dataset in Python. While working on this admittedly basic but interesting project, I learnt:

2018: TranslucentTB

Untitled

GitHub

I was a core contributor to the TranslucentTB project, which currently has 10.7k stars on GitHub and >3 million downloads. However, I stopped contributing many years ago, and the vast majority of the current codebase is the work of a different author.

When I was contributing, I:

CC BY-SA 4.0 by Oliver Cheng. Website built with Franklin.jl and the Julia programming language.