A minimal and attractive redesign.
@ -1,5 +1,4 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "jekyll-assets"
|
||||
gem "jekyll-last-modified-at"
|
||||
gem "jekyll-sitemap"
|
||||
|
@ -1,50 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<meta charset="utf-8">
|
||||
<title>James T. Martin, {{ page.title }}</title>
|
||||
<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.title }}</h1>
|
||||
{% if page.tagline %}<span class="tagline">{{ page.tagline }}</span>{% endif %}
|
||||
</header>
|
||||
|
||||
<!-- TODO: Figure out a more semantic way to deal with the container/content divs. -->
|
||||
<div class="container">
|
||||
<aside>
|
||||
<section id="personal-info">
|
||||
<header>
|
||||
<h2>Personal Info</h2>
|
||||
</header>
|
||||
|
||||
<dl>
|
||||
<div>
|
||||
<dt>Email
|
||||
<dd>@jtmar.me, james
|
||||
</div>
|
||||
<div>
|
||||
<dt>Phone
|
||||
<dd><a href="tel:+1-206-331-1994">(206) 331-1994</a>
|
||||
</div>
|
||||
<div>
|
||||
<dt>GitHub
|
||||
<dd><a href="https://github.com/jamestmartin">jamestmartin</a>
|
||||
</div>
|
||||
<div>
|
||||
<dt>LinkedIn
|
||||
<dd><a href="https://www.linkedin.com/in/jamestmartinme/">jamestmartinme</a>
|
||||
</div>
|
||||
</dl>
|
||||
</section>
|
||||
</aside>
|
||||
|
||||
<div class="content">{{ content }}</div>
|
||||
</div>
|
||||
</article>
|
||||
</main>
|
@ -1,10 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<meta charset="utf-8">
|
||||
<title>{{ page.title }}</title>
|
||||
<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">
|
||||
|
||||
<main>{{ content }}</main>
|
@ -1,69 +0,0 @@
|
||||
body {
|
||||
display: block;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h2, h3 {
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.resume {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.resume > header {
|
||||
background: #111;
|
||||
color: #eee;
|
||||
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
/* Contains the sidebar and the resume main content. */
|
||||
.container {
|
||||
display: flex;
|
||||
flex-direction: row-reverse;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-evenly;
|
||||
}
|
||||
|
||||
aside {
|
||||
flex: 1 1 content;
|
||||
width: 100%;
|
||||
|
||||
background: #f0f0f0;
|
||||
color: #111;
|
||||
}
|
||||
|
||||
/* The resume main content. */
|
||||
.content {
|
||||
flex: 1 1 content;
|
||||
|
||||
max-width: 75ch;
|
||||
}
|
||||
|
||||
@media (min-width: 1001px) {
|
||||
.content, aside {
|
||||
padding: 20px 60px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 1000px) {
|
||||
.content, aside {
|
||||
padding: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.experience h3 {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.experience-duration {
|
||||
float: right;
|
||||
}
|
||||
|
||||
li {
|
||||
padding: .25em 0;
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* The body consists of a nav bar and the website's main content.
|
||||
* The main content should take up the entire height of the viewport.
|
||||
*/
|
||||
body {
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
max-width: 60ch;
|
||||
min-height: 100vh;
|
||||
margin: auto;
|
||||
|
||||
background-color: #fafafa;
|
||||
|
||||
font-size: 1.4rem;
|
||||
font-family: monospace;
|
||||
line-height: 1.8em;
|
||||
}
|
||||
|
||||
figure {
|
||||
margin: 16px 0;
|
||||
padding: 16px;
|
||||
border-style: solid;
|
||||
}
|
||||
|
||||
figcaption {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
dl {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
dl div:not(:last-child) {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
dl dd, ul li:not(:first-child) {
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
dl.inline dt {
|
||||
width: 10ch;
|
||||
}
|
||||
|
||||
dl.inline dt:after {
|
||||
content: ":";
|
||||
}
|
||||
|
||||
dl.inline dd {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
dl.inline dt, dl.inline dd {
|
||||
display: inline-block;
|
||||
}
|
After Width: | Height: | Size: 1.3 KiB |
@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 245 240"><path d="M104.4 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1.1-6.1-4.5-11.1-10.2-11.1zM140.9 103.9c-5.7 0-10.2 5-10.2 11.1s4.6 11.1 10.2 11.1c5.7 0 10.2-5 10.2-11.1s-4.5-11.1-10.2-11.1z"/><path d="M189.5 20h-134C44.2 20 35 29.2 35 40.6v135.2c0 11.4 9.2 20.6 20.5 20.6h113.4l-5.3-18.5 12.8 11.9 12.1 11.2 21.5 19V40.6c0-11.4-9.2-20.6-20.5-20.6zm-38.6 130.6s-3.6-4.3-6.6-8.1c13.1-3.7 18.1-11.9 18.1-11.9-4.1 2.7-8 4.6-11.5 5.9-5 2.1-9.8 3.5-14.5 4.3-9.6 1.8-18.4 1.3-25.9-.1-5.7-1.1-10.6-2.7-14.7-4.3-2.3-.9-4.8-2-7.3-3.4-.3-.2-.6-.3-.9-.5-.2-.1-.3-.2-.4-.3-1.8-1-2.8-1.7-2.8-1.7s4.8 8 17.5 11.8c-3 3.8-6.7 8.3-6.7 8.3-22.1-.7-30.5-15.2-30.5-15.2 0-32.2 14.4-58.3 14.4-58.3 14.4-10.8 28.1-10.5 28.1-10.5l1 1.2c-18 5.2-26.3 13.1-26.3 13.1s2.2-1.2 5.9-2.9c10.7-4.7 19.2-6 22.7-6.3.6-.1 1.1-.2 1.7-.2 6.1-.8 13-1 20.2-.2 9.5 1.1 19.7 3.9 30.1 9.6 0 0-7.9-7.5-24.9-12.7l1.4-1.6s13.7-.3 28.1 10.5c0 0 14.4 26.1 14.4 58.3 0 0-8.5 14.5-30.6 15.2z"/></svg>
|
After Width: | Height: | Size: 1.0 KiB |
@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 597 597" xmlns="http://www.w3.org/2000/svg"><path d="M43.66 436.86V150.884c0-.33.496-3.475 1.49-9.433l168.308 143.98L45.646 446.79c-1.323-4.634-1.985-7.944-1.985-9.93zm22.342-315.268c2.317-.993 5.13-1.49 8.44-1.49h453.29c2.98 0 5.958.497 8.937 1.49L367.864 266.07l-22.342 17.873-44.187 36.244-44.187-36.244-22.342-17.873zm.496 344.56L235.8 303.802l65.536 53.123 65.536-53.124 169.301 162.351c-2.648.994-5.461 1.49-8.44 1.49H74.443c-2.649 0-5.297-.496-7.945-1.49zm322.716-180.719l167.812-143.981c.993 2.98 1.489 6.124 1.489 9.434v285.976c0 2.978-.496 6.288-1.49 9.93z"/></svg>
|
After Width: | Height: | Size: 594 B |
@ -0,0 +1 @@
|
||||
<svg viewBox="0 0 597 597" xmlns="http://www.w3.org/2000/svg"><path d="M42.667 316.928c0-34.816 6.826-67.925 20.48-99.328 26.965-63.488 72.192-108.714 135.68-135.68 31.402-13.653 64.512-20.48 99.328-20.48s67.925 6.827 99.328 20.48c62.806 26.624 108.032 71.85 135.68 135.68 13.653 32.427 20.48 65.536 20.48 99.328s-6.827 66.902-20.48 99.328c-27.647 64.17-72.874 109.74-135.68 136.704-31.403 13.654-64.512 20.48-99.328 20.48s-67.926-6.826-99.328-20.48c-63.488-27.307-108.715-72.875-135.68-136.704-13.653-31.402-20.48-64.512-20.48-99.328zm39.935 0c0 48.128 14.336 91.136 43.009 129.024 28.33 37.205 65.365 63.658 111.104 79.36v-40.96c0-20.48 6.827-35.328 20.48-44.545-6.826-.34-14.848-1.535-24.064-3.583-17.408-3.072-32.256-8.533-44.544-16.384-31.061-18.774-46.592-52.736-46.592-101.888 0-25.6 8.533-47.446 25.6-65.536-7.85-20.14-6.997-41.984 2.56-65.536h10.24c3.413 0 7.68.853 12.8 2.56 13.312 4.096 28.16 11.605 44.544 22.527 20.821-5.46 41.301-8.191 61.44-8.191s40.79 2.73 61.952 8.191c13.312-8.874 25.77-15.7 37.376-20.48 10.923-4.095 18.773-5.802 23.552-5.12l6.144.512c9.216 23.553 10.07 45.398 2.56 65.537 17.067 18.09 25.6 39.935 25.6 65.536 0 38.229-9.386 67.072-28.16 86.528-10.24 10.922-23.723 19.456-40.448 25.6-13.995 5.12-29.525 8.362-46.592 9.727 13.995 9.9 20.993 24.747 20.993 44.544v40.96c44.031-15.701 80.383-42.496 109.056-80.384 27.99-37.546 41.984-80.213 41.984-128 0-29.013-5.632-57.002-16.897-83.968-10.922-25.941-26.282-48.81-46.08-68.608-19.114-19.115-41.983-34.304-68.607-45.567-27.307-11.606-55.125-17.409-83.456-17.409-27.99 0-55.98 5.803-83.969 17.409-25.6 10.922-48.469 26.111-68.607 45.567-19.115 19.798-34.475 42.667-46.08 68.608-11.265 26.966-16.897 54.955-16.897 83.968z"/></svg>
|
After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 978 B After Width: | Height: | Size: 978 B |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 978 B |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 7.6 KiB |
After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 175 KiB |
Before Width: | Height: | Size: 30 KiB |
@ -0,0 +1,41 @@
|
||||
html {
|
||||
/*
|
||||
* The body does not span the entire viewport, so the background color must go in the `html`.
|
||||
* This difference is not visible normally, but appears to be triggered by the Dark Reader plugin for Firefox.
|
||||
*/
|
||||
background-color: #fafafa;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: auto;
|
||||
|
||||
/** I love me some easily-readable text. */
|
||||
max-width: 60ch;
|
||||
font: 1.4rem/1.8em sans-serif;
|
||||
}
|
||||
|
||||
.icon-list img {
|
||||
width: 1.3em;
|
||||
height: 1.3em;
|
||||
|
||||
/* The icon should be located where the bullet would be. */
|
||||
position: relative;
|
||||
left: -1.3em;
|
||||
/*
|
||||
* The text doesn't know that the image isn't actually there, so it must be re-aligned with a negative margin.
|
||||
* I don't move over the entire 1.3 em gap, because there needs to be space between the icon and text.
|
||||
*/
|
||||
margin-right: -1em;
|
||||
}
|
||||
|
||||
.icon-list li {
|
||||
/* Vertically align the text w.r.t. the icon. This has the simultaneous effect of removing the list bullet. */
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
img.svg-icon {
|
||||
filter: invert(1);
|
||||
}
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
title: Contact Me
|
||||
permalink: /contact
|
||||
---
|
||||
<article id="contact">
|
||||
<header>
|
||||
<h2>Contact Me</h2>
|
||||
</header>
|
||||
<dl>
|
||||
<div>
|
||||
<dt>Email
|
||||
<dd>@jtmar.me, james
|
||||
</div>
|
||||
<div>
|
||||
<dt>Phone
|
||||
<dd><a href="tel:+1-206-331-1994">(206) 331-1994</a>
|
||||
</div>
|
||||
<div>
|
||||
<dt>GitHub
|
||||
<dd><a href="https://github.com/jamestmartin">jamestmartin</a>
|
||||
</div>
|
||||
<div>
|
||||
<dt>LinkedIn
|
||||
<dd><a href="https://www.linkedin.com/in/jamestmartinme/">jamestmartinme</a>
|
||||
</div>
|
||||
</dl>
|
||||
</article>
|
@ -1,48 +1,36 @@
|
||||
---
|
||||
layout: simple
|
||||
layout: default
|
||||
title: James T. Martin
|
||||
permalink: /
|
||||
---
|
||||
<h1>James T Martin</h1>
|
||||
<figure>
|
||||
<figcaption>Accounts:</figcaption>
|
||||
<dl class="inline">
|
||||
<div>
|
||||
<dt>GitHub</dt>
|
||||
<dd><a href="https://github.com/jamestmartin">jamestmartin</a></dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Discord</dt>
|
||||
<dd>jamestmartin#7117</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt>Email</dt>
|
||||
<dd>james (at) jtmar (dot) me</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</figure>
|
||||
|
||||
<figure>
|
||||
<figcaption>Communities:</figcaption>
|
||||
<dl>
|
||||
<div>
|
||||
<dt><a href="https://proglangdesign.net">Programming Language Design</a> (since June 2018)</dt>
|
||||
<dd>Moderator of: Reddit & Discord</dd>
|
||||
<dd>Administrator of: IRC bridge</dd>
|
||||
<dd>Programmer of: the website</dd>
|
||||
</div>
|
||||
<div>
|
||||
<dt><a href="https://dad.gallery">Do Art Daily</a> (since April 2020)</dt>
|
||||
<dd>Developer</dd>
|
||||
<dd>Artist (beginner)</dd>
|
||||
</div>
|
||||
</dl>
|
||||
</figure>
|
||||
Also me:
|
||||
|
||||
<ul class="icon-list">
|
||||
<li><img alt="Email:" title="Email" src="/assets/image/email.svg"> james (at) jtmar (dot) me
|
||||
<li><img alt="Discord:" title="Discord" src="/assets/image/discord.svg"> jamestmartin#7117
|
||||
<li><img alt="GitHub:" title="GitHub" src="/assets/image/github.svg"> <a rel="me" href="https://github.com/jamestmartin">jamestmartin</a>
|
||||
</ul>
|
||||
|
||||
Communities I participate in:
|
||||
{% comment %}The span tags are necessary for grouping elements due to `li` being `display: flex`.{% endcomment %}
|
||||
<ul class="icon-list">
|
||||
<li><img alt="" src="/assets/image/lambda.png"> <span><a href="https://proglangdesign.net">Programming Language Design</a> (I am a moderator)</span>
|
||||
<li><img alt="" src="/assets/image/dad.webp"> <span><a href="https://dad.gallery">Do Art Daily</a> (I am an occasional code contributor)</span>
|
||||
</ul>
|
||||
|
||||
Stuff I'm working on:
|
||||
|
||||
<figure>
|
||||
<figcaption>Likes:</figcaption>
|
||||
<ul>
|
||||
<li>Arts: drawing, playing music</li>
|
||||
<li>Computers: Debian Linux, Agda, Haskell, Rust</li>
|
||||
<li>Outdoors: hiking, skiing</li>
|
||||
<li><a href="https://github.com/jamestmartin/bootproof">bootproof</a>: An x86_64 UEFI OS written from scratch in Rust.
|
||||
<li><a href="https://github.com/jamestmartin/math">math</a>: Formalizing calculus in Agda for my own education.
|
||||
<li><a href="https://github.com/jamestmartin/monoids-in-the-category-of-endofunctors">monoids in the category of endofunctors</a>: Category theory, recursion schemes, and dependent types, to satisfy my hasochistic urges.
|
||||
</ul>
|
||||
|
||||
Random stuff I like:
|
||||
|
||||
<ul class="icon-list">
|
||||
<li><img alt="" src="/assets/image/lapfox.webp"> <a href="https://lapfoxtrax.com/">Halley Labs</a>
|
||||
<li><img alt="" src="/assets/image/smbc.webp"> <a href="https://www.smbc-comics.com/">Saturday Morning Breakfast Cereal</a>
|
||||
</ul>
|
||||
|
@ -1,38 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
title: Projects
|
||||
permalink: /projects/
|
||||
---
|
||||
<article id="projects">
|
||||
<header>
|
||||
<h2>Projects</h2>
|
||||
</header>
|
||||
|
||||
<section id="current">
|
||||
<header>
|
||||
<h3>Current</h3>
|
||||
<p>This is what I'm working on right now.
|
||||
</header>
|
||||
<ul>
|
||||
<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="previous">
|
||||
<header>
|
||||
<h3>Previous</h3>
|
||||
<p>
|
||||
Unfortunately, I had to learn to keep backups the hard way, so all of my pre-2016 code has been lost.
|
||||
</header>
|
||||
|
||||
<ul>
|
||||
<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,17 +0,0 @@
|
||||
---
|
||||
layout: default
|
||||
title: Resumes
|
||||
permalink: /resume/
|
||||
---
|
||||
<article>
|
||||
<header>
|
||||
<h2>Resumes</h2>
|
||||
<p>I have different resumes for different jobs.
|
||||
</header>
|
||||
<ul>
|
||||
<li><a href="web-developer">Web Developer</a> (<a href="web-developer.pdf">PDF</a>, <a href="web-developer.tex">TeX</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>
|
||||
</article>
|
@ -1,66 +0,0 @@
|
||||
---
|
||||
layout: resume
|
||||
title: Software Developer
|
||||
permalink: /resume/software-developer
|
||||
tagline: A self-taught programmer fond of programming language theory.
|
||||
---
|
||||
<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.
|
||||
<li>Taught club members to use Java and Git.
|
||||
<li>Collaborated to build robot controller programs for FTC competitions.
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
<section id="skills">
|
||||
<header>
|
||||
<h2>Skills</h2>
|
||||
</header>
|
||||
<ul>
|
||||
<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
|
||||
</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>Recieved OSHA 10 certification.
|
||||
<li>Member of marching, symphonic, and jazz bands; recieved Sousa award in 2019.
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
@ -1,72 +0,0 @@
|
||||
---
|
||||
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 FIRST competitions.
|
||||
</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>: Let's Encrypt, SSL Labs, 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>Learned shop skills and recieved OSHA 10 certification.
|
||||
</ul>
|
||||
</section>
|
||||
</section>
|
@ -1,65 +0,0 @@
|
||||
\documentclass[12pt]{extarticle}
|
||||
|
||||
\usepackage{enumitem}
|
||||
\usepackage[cm]{fullpage}
|
||||
\usepackage[utf8]{inputenc}
|
||||
\usepackage{hyperref}
|
||||
|
||||
\DeclareUnicodeCharacter{2194}{\leftrightarrow}
|
||||
|
||||
\renewcommand{\familydefault}{\sfdefault}
|
||||
\pagenumbering{gobble}
|
||||
\setcounter{secnumdepth}{0}
|
||||
\setlength{\parindent}{0pt}
|
||||
|
||||
\author{James T. Martin}
|
||||
|
||||
\begin{document}
|
||||
\section{\href{https://jamestmartin.me}{James T. Martin}, Web Developer}
|
||||
\begin{description}[noitemsep,labelwidth=2cm]
|
||||
\item[Email] \href{mailto:James\%20Martin<james@jtmar.me>}{james@jtmar.me}
|
||||
\item[Phone] \href{tel:+1-206-331-1994}{(206) 331-1994}
|
||||
\item[Location] Renton, WA
|
||||
\item[GitHub] \href{https://github.com/jamestmartin}{jamestmartin}
|
||||
\item[LinkedIn] \href{https://www.linkedin.com/in/jamestmartinme/}{jamestmartinme}
|
||||
\end{description}
|
||||
|
||||
\subsection{Experience}
|
||||
% Including the dates in the subsubsection title like this isn't necessarily semantic.
|
||||
% I ought to come up with a better way.
|
||||
\subsubsection{\href{https://proglangdesign.net}{Programming Language Design Community} \hfill June 2018 onward}
|
||||
\begin{itemize}
|
||||
\item Led redesign of \href{https://proglangdesign.net}{the website}.
|
||||
\item Automated the generation of \href{https://proglangdesign.net/#projects}{the community projects list} using Jekyll.
|
||||
\item \href{https://github.com/proglangdesign/matrix.proglangdesign.net}{Bridged} the \href{https://discord.gg/4Kjt3ZE}{Discord} and \href{https://irc.lc/freenode/proglangdesign}{Freenode} sub-communities via Matrix.
|
||||
\item Co-founded the Discord sub-community; moderated it and \href{https://reddit.com/r/ProgrammingLanguages}{/r/ProgrammingLanguages}
|
||||
\end{itemize}
|
||||
|
||||
\subsubsection{Hazen Robotics Club}
|
||||
\begin{itemize}
|
||||
\item Mentored programming at the summer robotics camp for 90 hours.
|
||||
\item Taught club members to use Java and Git.
|
||||
\item Collaborated to build robot controller programs for FIRST competitions.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Skills}
|
||||
\begin{itemize}
|
||||
\item Languages: HTML5/XHTML, TypeScript, JavaScript, Java 8, Haskell, Agda
|
||||
\item Tools: Git, GitHub, continuous integration, bug tracking, unit testing, formal verification
|
||||
\item Administration: Debian GNU/Linux. Nginx
|
||||
\item APIs: REST, JSON, JSON Schema, JSON-LD, HATEOAS
|
||||
\item Security:
|
||||
\begin{itemize}
|
||||
\item TLS: Let's Encrypt, SSL Labs, DNS CAA, HSTS deployment
|
||||
\item Web: XSS prevention, CSRF prevention, CSP, input validation, SQL injection prevention
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Education}
|
||||
\subsubsection{\href{https://www.rentonschools.us/hazen}{Hazen High School} \hfill 2015 to 2019}
|
||||
\begin{itemize}
|
||||
\item Member of marching, symphonic, and jazz bands; recieved Sousa award in 2019.
|
||||
\item Got high (4+) scores on 7 AP exams, including Computer Science (5) and Calculus AB (4).
|
||||
\item Learned shop skills and recieved OSHA 10 certification.
|
||||
\end{itemize}
|
||||
\end{document}
|