Tons of old stuff I forgot to commit, plus work on my resume.
parent
84d29ceb8d
commit
97243b566e
1
Gemfile
1
Gemfile
|
@ -1,4 +1,5 @@
|
|||
source "https://rubygems.org"
|
||||
|
||||
gem "jekyll-assets"
|
||||
gem "jekyll-last-modified-at"
|
||||
gem "jekyll-sitemap"
|
||||
|
|
31
Gemfile.lock
31
Gemfile.lock
|
@ -9,8 +9,11 @@ GEM
|
|||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0.6.0)
|
||||
eventmachine (1.2.7)
|
||||
fastimage (1.8.1)
|
||||
addressable (~> 2.3, >= 2.3.5)
|
||||
ffi (1.12.2)
|
||||
forwardable-extended (2.6.0)
|
||||
hike (1.2.3)
|
||||
http_parser.rb (0.6.0)
|
||||
i18n (1.8.2)
|
||||
concurrent-ruby (~> 1.0)
|
||||
|
@ -29,6 +32,14 @@ GEM
|
|||
rouge (~> 3.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (~> 1.8)
|
||||
jekyll-assets (1.0.0)
|
||||
fastimage (~> 1.6)
|
||||
jekyll (>= 2)
|
||||
mini_magick (~> 4.1)
|
||||
sass (~> 3.2)
|
||||
sprockets (~> 2.10)
|
||||
sprockets-helpers
|
||||
sprockets-sass
|
||||
jekyll-last-modified-at (1.2.1)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
posix-spawn (~> 0.3.9)
|
||||
|
@ -46,25 +57,45 @@ GEM
|
|||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.3.6)
|
||||
mini_magick (4.10.1)
|
||||
multi_json (1.14.1)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
posix-spawn (0.3.13)
|
||||
public_suffix (4.0.3)
|
||||
rack (1.6.12)
|
||||
rb-fsevent (0.10.3)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rouge (3.15.0)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.7.4)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
sassc (2.2.1)
|
||||
ffi (~> 1.9)
|
||||
sprockets (2.12.5)
|
||||
hike (~> 1.2)
|
||||
multi_json (~> 1.0)
|
||||
rack (~> 1.0)
|
||||
tilt (~> 1.1, != 1.3.0)
|
||||
sprockets-helpers (1.2.1)
|
||||
sprockets (>= 2.2)
|
||||
sprockets-sass (1.3.1)
|
||||
sprockets (~> 2.0)
|
||||
tilt (~> 1.1)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
tilt (1.4.1)
|
||||
unicode-display_width (1.6.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll-assets
|
||||
jekyll-last-modified-at
|
||||
jekyll-sitemap
|
||||
|
||||
|
|
|
@ -1,4 +1,13 @@
|
|||
url: "https://jamestmartin.me"
|
||||
plugins:
|
||||
- jekyll-assets
|
||||
- jekyll-last-modified-at
|
||||
- jekyll-sitemap
|
||||
|
||||
assets:
|
||||
destination: "/assets"
|
||||
compression: true
|
||||
css_compressor: scss
|
||||
sources:
|
||||
- assets/css
|
||||
- assets/images
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
<html lang="en-US">
|
||||
<meta charset="utf-8">
|
||||
<title>{{ page.title }}</title>
|
||||
<link rel="stylesheet" href="/assets/style.css">
|
||||
<link rel="icon" type="image/png" href="/assets/favicon.png">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
|
||||
<link rel="canonical" href="{{ site.url }}{{ page.permalink }}" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
<html lang="en-US">
|
||||
<meta charset="utf-8">
|
||||
<title>James T. Martin, {{ page.title }}</title>
|
||||
<link rel="stylesheet" href="/assets/style.css">
|
||||
<link rel="stylesheet" href="/assets/resume.css">
|
||||
<link rel="icon" type="image/png" href="/assets/favicon.png">
|
||||
<link rel="stylesheet" href="/assets/css/style.css">
|
||||
<link rel="stylesheet" href="/assets/css/resume.css">
|
||||
<link rel="icon" type="image/png" href="/assets/images/favicon.png">
|
||||
<link rel="canonical" href="{{ site.url }}{{ page.permalink }}" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
|
||||
<main>
|
||||
<article class="resume">
|
||||
<header>
|
||||
<h1>James T. Martin, {{ page.resumeName }}</h1>
|
||||
<h1>James T. Martin, {{ page.title }}</h1>
|
||||
<span class="tagline">{{ page.tagline }}</span>
|
||||
</header>
|
||||
|
||||
|
|
|
@ -26,11 +26,12 @@ h2, h3 {
|
|||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
aside {
|
||||
flex: 1 1 content;
|
||||
flex: 1 1 auto;
|
||||
width: 100%;
|
||||
|
||||
padding: 20px 40px;
|
||||
|
Before Width: | Height: | Size: 978 B After Width: | Height: | Size: 978 B |
Binary file not shown.
After Width: | Height: | Size: 175 KiB |
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
21
index.html
21
index.html
|
@ -3,4 +3,23 @@ layout: default
|
|||
title: James T. Martin
|
||||
permalink: /
|
||||
---
|
||||
TODO: About me.
|
||||
<aside>
|
||||
<picture>
|
||||
<source type="image/webp" srcset="/assets/images/photo.webp">
|
||||
<source type="image/jpeg" srcset="/assets/images/photo.jpg">
|
||||
<img alt="A photo of me." src="/assets/images/photo.jpg">
|
||||
</picture>
|
||||
</aside>
|
||||
<p>
|
||||
My name is James. I am a programmer from Renton, Washington.
|
||||
I additionally serve as an administrator in <a href="https://proglangdesign.net">the programming language design community</a>.
|
||||
I have been programming since I was 7 years old.
|
||||
</p>
|
||||
<p>
|
||||
I am fascinated by languages: human, computer, mathematical, and musical.
|
||||
I love abstractions, but try to keep it simple and not get carried away with them.
|
||||
</p>
|
||||
<p>
|
||||
I don't have much to say about myself; I'm stil ltrying to figure out who I am in life.
|
||||
You can check out <a href="/projects/">a few of the things I did in the past</a>.
|
||||
</p>
|
||||
|
|
|
@ -14,40 +14,25 @@ permalink: /projects/
|
|||
<p>This is what I'm working on right now.
|
||||
</header>
|
||||
<ul>
|
||||
<li>Moderating <a href="https://discord.gg/4Kjt3ZE">the Programming Language Design Discord server</a>, which I co-founded.
|
||||
<li><a href="https://proglangdesign.net">proglangdesign.net</a>, the programming language design community's website.
|
||||
<li><a href="https://github.com/proglangdesign/matrix.proglangdesign.net">matrix.proglangdesign.net</a>, a bridge between the programming language design IRC channel and Discord server via Matrix.
|
||||
<li>I co-founded and moderate <a href="https://discord.gg/4Kjt3ZE">the /r/ProgrammingLanguages Discord server</a>.
|
||||
<li>I rewrote and now maintain <a href="https://proglangdesign.net">proglangdesign.net</a>, the programming language design community website.
|
||||
<li>I set up and run <a href="https://github.com/proglangdesign/matrix.proglangdesign.net">matrix.proglangdesign.net</a>, a bridge between the programming language design IRC channel and Discord server via Matrix.
|
||||
<li><a href="https://github.com/jamestmartin/screeps-bot-piet">screeps-bot-piet</a>,
|
||||
my AI for the MMO RTS for programmers, Screeps.
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="hiatus">
|
||||
<header>
|
||||
<h3>On Hiatus</h3>
|
||||
<p>I am not currently working on these things, but intend to continue them later.
|
||||
</header>
|
||||
|
||||
<ul>
|
||||
<li>Moderating <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>.
|
||||
<li><a href="https://github.com/jamestmartin/lambda-calculus">Slowly developing the Lambda Calculus into a real programming language.</a>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="previous">
|
||||
<header>
|
||||
<h3>Previous</h3>
|
||||
<p>
|
||||
I have worked on many things over the years.
|
||||
Most of them have been lost to time; many, I've forgotten about entirely.
|
||||
I learned to keep backups the hard way.
|
||||
Here are some of the highlights (that I can remember):
|
||||
Unfortunately, I had to learn to keep backups the hard way, so all of my pre-2016 code has been lost.
|
||||
</header>
|
||||
|
||||
<ul>
|
||||
<li><a href="minecraft-clone">A minecraft clone</a>, with infinite procedural worlds and multiplayer.
|
||||
<li><a href="the-mining-dead">The Mining Dead</a>, a Fallout-themed zombie apocalypse Minecraft server, based on a custom modpack and a ton of custom code.
|
||||
<li><a href="https://scratch.mit.edu/users/zeusoflightning/">Scratch projects</a> from elementary school, because why not? Man, I've come a <em>long</em> way as a programmer since then.
|
||||
<li>In elementary school, I made <a href="https://scratch.mit.edu/users/zeusoflightning/">Scratch projects</a>. I've come a <em>long</em> way since then.
|
||||
<li>In middle school, I ran The Mining Dead, a Fallout-themed zombie apocalypse Minecraft server. I learned Java by writing custom plugins for it.
|
||||
<li>After that, I wrote an unnamed minecraft clone, with infinite procedural worlds and online multiplayer, written in C# using the Unity game engine.
|
||||
</ul>
|
||||
</section>
|
||||
</article>
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
---
|
||||
layout: default
|
||||
title: Minecraft Clone
|
||||
permalink: /projects/minecraft-clone
|
||||
---
|
||||
<article id="minecraft-clone">
|
||||
<header>
|
||||
<h2>Minecraft Clone</h2>
|
||||
</header>
|
||||
<p>
|
||||
In 2014, while still in middle school,
|
||||
I wrote a Minecraft clone using the Unity game engine and C#.
|
||||
It featured:
|
||||
<ul>
|
||||
<li>a first-person interactive editable world (duh),
|
||||
<li>infinite procedural map generation using simplex noise,
|
||||
<li>and a custom TCP-based multiplayer protocol.
|
||||
</ul>
|
||||
<p>
|
||||
I wrote all of the code myself, from scratch, except for one thing: the mesh generation.
|
||||
For that, I began with a mesh generator and optimizer someone else wrote,
|
||||
and slowly replaced it with my own code as I learned how it worked.
|
||||
Ultimately, my code even produced better meshes
|
||||
because my algorithm understood the greater context of the game world better (like chunk boundaries).
|
||||
<p>
|
||||
This was one of my favorite projects. I was very proud of it as a middle schooler.
|
||||
Disappointingly, I lost the code when I deleted my old email address,
|
||||
which made me lose access to my private BitBucket repositories.
|
||||
</article>
|
|
@ -1,55 +0,0 @@
|
|||
---
|
||||
layout: default
|
||||
title: The Mining Dead
|
||||
permalink: /projects/the-mining-dead
|
||||
---
|
||||
<article id="the-mining-dead">
|
||||
<header>
|
||||
<h2>The Mining Dead</h2>
|
||||
<p>This page is a work in progress.
|
||||
<p>
|
||||
This is also from a very long time ago (2012), so my recall is pretty poor,
|
||||
which makes it especially difficult to write this article.
|
||||
</header>
|
||||
|
||||
<p>
|
||||
The Mining Dead was a series of loosely Fallout-themed Minecraft zombie apocalyse servers,
|
||||
featuring high spawns, difficult zombies, radiation, solar flares, decayed cities,
|
||||
a desert world generation without trees, crops, animals, grass, or dirt,
|
||||
custom player ranks based on zombie kills, a special radio chat system,
|
||||
a custom Technic Platform modpack, and a lot of rotten flesh.
|
||||
Among other things.
|
||||
<p>
|
||||
Aside from being some of the most fun I've had in my life,
|
||||
my takeover of the server's administration and codebase in 2012
|
||||
was what kickstarted my programming career and love for Debian GNU/Linux.
|
||||
I would not be the person I am today without it.
|
||||
<p>
|
||||
This is my loose attempt at a server chronology.
|
||||
This was all a long time ago, so I'm mixing up the order of things a lot.
|
||||
<ul>
|
||||
<li>The original server was founded by Skuli_Steinulf in beta 1.8.
|
||||
<li>
|
||||
The Tekkit Classic server was founded by Skuli.
|
||||
The server had three worlds (inventories were not shared):
|
||||
<ul>
|
||||
<li>The Outlands: The conventional Mining Dead experience.
|
||||
<li>The Frontier: A zombie apocalyse world with normal terrain generation and no radiation.
|
||||
<li>Medieval: A standard Tekkit Classic world.
|
||||
</ul>
|
||||
<li>A short-lived Tekkit Lite server or something might've been in here?
|
||||
<li>Skuli had early access to the Technic Platform. He creates a custom modpack for the server.
|
||||
<li>
|
||||
Skuli simultaneously founds a vanilla server,
|
||||
and another server using the custom modpack featuring the Cogs of the Machine mod
|
||||
instead of more conventional high-tech mods like IndustrialCraft 2.
|
||||
<li>
|
||||
Skuli abruptly retires from maintaining The Mining Dead.
|
||||
I had no programming experience and no experience with running Minecraft servers,
|
||||
but I took over anyway. I learn as I go.
|
||||
<li>
|
||||
TODO: The rest of the chronology, including my multiple servers, the DJ incident,
|
||||
Skuli's second attempt and the ice worlds, the various attempts to succeed me,
|
||||
Skuli's later servers, other servers I made, and Obamallama's servers.
|
||||
</ul>
|
||||
</article>
|
|
@ -9,8 +9,8 @@ permalink: /resume/
|
|||
<p>I have different resumes for different jobs.
|
||||
</header>
|
||||
<ul>
|
||||
<li>TODO: <a href="web-developer">Web Developer</a>
|
||||
<li><a href="software-developer">Software Developer</a>
|
||||
<li><a href="web-developer">Web Developer</a>
|
||||
<li>WIP: <a href="software-developer">Software Developer</a>
|
||||
<li>TODO: <a href="compiler-developer">Compiler Developer</a>
|
||||
<li>TODO: <a href="general-laborer">General Laborer</a>
|
||||
</ul>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
layout: resume
|
||||
title: Software Developer
|
||||
permalink: /resume/software-developer
|
||||
permalink: /resume/software-developer
|
||||
tagline: A self-taught programmer fond of programming language theory.
|
||||
---
|
||||
<section id="experience">
|
||||
|
@ -15,11 +15,11 @@ tagline: A self-taught programmer fond of programming language theory.
|
|||
<span class="experience-duration"><time datetime="2018-06">June 2018</time> onward</span>
|
||||
</header>
|
||||
<ul>
|
||||
<li>Led redesign of <a href="https://proglangdesign.net">the website</a>
|
||||
<li>Automated the generation of <a href="https://proglangdesign.net/#projects">the community projects list</a> using Jekyll
|
||||
<li>Led redesign of <a href="https://proglangdesign.net">the website</a>.
|
||||
<li>Automated the generation of <a href="https://proglangdesign.net/#projects">the community projects list</a> using Jekyll.
|
||||
<li><a href="https://github.com/proglangdesign/matrix.proglangdesign.net">Bridged</a>
|
||||
the <a href="https://discord.gg/4Kjt3ZE">Discord</a> and <a href="https://irc.lc/freenode/proglangdesign">Freenode</a> sub-communities via <a href="https://matrix.org">Matrix</a>
|
||||
<li>Co-founded the Discord sub-community; moderated it and <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>
|
||||
the <a href="https://discord.gg/4Kjt3ZE">Discord</a> and <a href="https://irc.lc/freenode/proglangdesign">Freenode</a> sub-communities via Matrix.
|
||||
<li>Co-founded the Discord sub-community; moderated it and <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>.
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
@ -28,9 +28,9 @@ tagline: A self-taught programmer fond of programming language theory.
|
|||
<h3>Hazen Robotics Club</h3>
|
||||
</header>
|
||||
<ul>
|
||||
<li>Mentored programming at the summer robotics camp
|
||||
<li>Taught club members to use Java and Git
|
||||
<li>Collaborated to build robot controller programs for FTC competitions
|
||||
<li>Mentored programming at the summer robotics camp.
|
||||
<li>Taught club members to use Java and Git.
|
||||
<li>Collaborated to build robot controller programs for FTC competitions.
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
|
@ -40,15 +40,9 @@ tagline: A self-taught programmer fond of programming language theory.
|
|||
<h2>Skills</h2>
|
||||
</header>
|
||||
<ul>
|
||||
<li>Languages: Java 8, Haskell, HTML5/XHTML
|
||||
<li>Tools: Git, GitHub, continuous integration, bug tracking, unit testing, property testing
|
||||
<li>Languages: Java 8, Haskell, HTML5/XHTML, TypeScript, JavaScript, Agda
|
||||
<li>Tools: Git, GitHub, continuous integration, bug tracking, unit testing, formal verification
|
||||
<li>Administration: Debian GNU/Linux, Nginx
|
||||
<li>APIs: <abbr title="Representational State Transfer">REST</abbr>, JSON, JSON Schema, JSON-LD, <abbr title="Hypermedia as the Engine of Application State">HATEOAS</abbr>
|
||||
<li>Security:
|
||||
<ul>
|
||||
<li><abbr title="Transport Layer Security">TLS</abbr>: <a href="https://letsencrypt.org">Let's Encrypt</a>, <a href="https://www.ssllabs.com/">SSL Labs</a>, DNS <abbr title="Certification Authority Authorization">CAA</abbr>, <abbr title="HTTP Strict Transport Security">HSTS</abbr> deployment
|
||||
<li>Web: <abbr title="Cross-Site Scripting">XSS</abbr> prevention, <abbr title="Cross-Site Request Forgery">CSRF</abbr> prevention, <abbr title="Content Security Policy">CSP</abbr>, input validation, SQL injection prevention
|
||||
</ul>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
|
@ -66,7 +60,7 @@ tagline: A self-taught programmer fond of programming language theory.
|
|||
</header>
|
||||
<ul>
|
||||
<li>Recieved OSHA 10 certification.
|
||||
<li>Member of marching, symphonic, and jazz bands; recieved John Philip Sousa award in 2019.
|
||||
<li>Member of marching, symphonic, and jazz bands; recieved Sousa award in 2019.
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
---
|
||||
layout: resume
|
||||
title: Web Developer
|
||||
permalink: /resume/web-developer
|
||||
---
|
||||
<section id="experience">
|
||||
<header>
|
||||
<h2>Experience</h2>
|
||||
</header>
|
||||
|
||||
<section id="pld-community" class="experience">
|
||||
<header>
|
||||
<h3><a href="https://proglangdesign.net">Programming Language Design Community</a></h3>
|
||||
<span class="experience-duration"><time datetime="2018-06">June 2018</time> onward</span>
|
||||
</header>
|
||||
<ul>
|
||||
<li>Led redesign of <a href="https://proglangdesign.net">the website</a>.
|
||||
<li>Automated the generation of <a href="https://proglangdesign.net/#projects">the community projects list</a> using Jekyll.
|
||||
<li><a href="https://github.com/proglangdesign/matrix.proglangdesign.net">Bridged</a>
|
||||
the <a href="https://discord.gg/4Kjt3ZE">Discord</a> and <a href="https://irc.lc/freenode/proglangdesign">Freenode</a> sub-communities via Matrix.
|
||||
<li>Co-founded the Discord sub-community; moderated it and <a href="https://reddit.com/r/ProgrammingLanguages">/r/ProgrammingLanguages</a>.
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="hazen-robotics" class="experience">
|
||||
<header>
|
||||
<h3>Hazen Robotics Club</h3>
|
||||
</header>
|
||||
<ul>
|
||||
<li>Mentored programming at the summer robotics camp for 90 hours.
|
||||
<li>Taught club members to use Java and Git.
|
||||
<li>Collaborated to build robot controller programs for <a href="https://www.firstinspires.org/robotics/ftc">FIRST competitions</a>.
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="skills">
|
||||
<header>
|
||||
<h2>Skills</h2>
|
||||
</header>
|
||||
<ul>
|
||||
<li>Languages: HTML5/XHTML, TypeScript, JavaScript, Java 8, Haskell, Agda
|
||||
<li>Tools: Git, GitHub, continuous integration, bug tracking, unit testing, formal verification
|
||||
<li>Administration: Debian GNU/Linux, Nginx
|
||||
<li>APIs: <abbr title="Representational State Transfer">REST</abbr>, JSON, JSON Schema, JSON-LD, <abbr title="Hypermedia as the Engine of Application State">HATEOAS</abbr>
|
||||
<li>Security:
|
||||
<ul>
|
||||
<li><abbr title="Transport Layer Security">TLS</abbr>: <a href="https://letsencrypt.org">Let's Encrypt</a>, <a href="https://www.ssllabs.com/">SSL Labs</a>, DNS <abbr title="Certification Authority Authorization">CAA</abbr>, <abbr title="HTTP Strict Transport Security">HSTS</abbr> deployment
|
||||
<li>Web: <abbr title="Cross-Site Scripting">XSS</abbr> prevention, <abbr title="Cross-Site Request Forgery">CSRF</abbr> prevention, <abbr title="Content Security Policy">CSP</abbr>, input validation, SQL injection prevention
|
||||
</ul>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section id="education">
|
||||
<header>
|
||||
<h2>Education</h2>
|
||||
</header>
|
||||
<section id="hazen" class="experience">
|
||||
<header>
|
||||
<h3><a href="https://hazen.rentonschools.us/">Hazen High School</a></h3>
|
||||
<span class="experience-duration">
|
||||
<time datetime="2015-09-02">2015</time>
|
||||
to <time datetime="2019-06-13">2019</time>
|
||||
</span>
|
||||
</header>
|
||||
<ul>
|
||||
<li>Member of marching, symphonic, and jazz bands; recieved Sousa award in 2019.
|
||||
<li>Got high (4+) scores on 7 AP exams, including Computer Science (5) and Calculus AB (4).
|
||||
<li>Recieved OSHA 10 certification.
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
Loading…
Reference in New Issue