Hello! I’m Peter Ye, a Grade 11 student attending William Lyon Mackenzie Collegiate Institute. I started this portfolio as my final assignment for Mrs. Krasteva’s ICS4U class.

I like programming during my free time, and hope to pursue a career in software engineering. I also enjoy sports such as running, biking, and hockey.

Building this website

This website is built with GitHub Pages and Jekyll. Jekyll is a static site generator; it processes special Markdown code and converts it into HTML.


The advantage of writing Markdown (and then converting it into HTML) instead of manually writing plain HTML is that the syntax is more concise. For example, the paragraph above looks like this in Markdown:

This website is built with [GitHub Pages]( and [Jekyll](
Jekyll is a **static site generator**; it processes special Markdown code and converts it into HTML.

That same paragraph looks like this in HTML:

<p>This website is built with <a href="">GitHub Pages</a> and <a href="">Jekyll</a>.
Jekyll is a <strong>static site generator</strong>; it processes special Markdown code and converts it into HTML.</p>

Automatic page generation

Jekyll’s automatic page generation is also very convenient, as it allows you to write content (e.g. header bar, footer bar) in one place and have it duplicated on different pages.

I used this feature heavily when writing the tutorials on this website. Let’s say I have a Java program demonstrating object oriented programming which I’d like to include within a tutorial. I can use the following Jekyll syntax to do this:

{% include_relative programs/basic_task/ %}

This way, whenever I modify my Java program (located at programs/basic_task/, the tutorial content will also be automatically updated. This saves a lot of manual copying and pasting, which not only is inefficient, but can also cause inconsistencies between content at different locations.

View my code!

All of the code used to build this website is available on its GitHub repository.