Delete old site, add placeholder
parent
d8b0c597ba
commit
2b543e3328
|
@ -1,13 +0,0 @@
|
||||||
# editorconfig.org
|
|
||||||
root = true
|
|
||||||
|
|
||||||
[*]
|
|
||||||
indent_style = space
|
|
||||||
indent_size = 2
|
|
||||||
end_of_line = lf
|
|
||||||
charset = utf-8
|
|
||||||
trim_trailing_whitespace = true
|
|
||||||
insert_final_newline = true
|
|
||||||
|
|
||||||
[*.md]
|
|
||||||
trim_trailing_whitespace = false
|
|
25
.eslintrc.js
25
.eslintrc.js
|
@ -1,25 +0,0 @@
|
||||||
module.exports = {
|
|
||||||
root: true,
|
|
||||||
env: {
|
|
||||||
browser: true,
|
|
||||||
node: true,
|
|
||||||
},
|
|
||||||
parserOptions: {
|
|
||||||
parser: 'babel-eslint',
|
|
||||||
},
|
|
||||||
extends: ['plugin:vue/recommended', 'plugin:prettier/recommended'],
|
|
||||||
// required to lint *.vue files
|
|
||||||
plugins: ['vue', 'prettier'],
|
|
||||||
// add your custom rules here
|
|
||||||
rules: {
|
|
||||||
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
|
||||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
|
|
||||||
'comma-dangle': [
|
|
||||||
'error',
|
|
||||||
{
|
|
||||||
arrays: 'only-multiline',
|
|
||||||
objects: 'only-multiline',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,82 +0,0 @@
|
||||||
# Created by .ignore support plugin (hsz.mobi)
|
|
||||||
### Node template
|
|
||||||
# Logs
|
|
||||||
logs
|
|
||||||
*.log
|
|
||||||
npm-debug.log*
|
|
||||||
yarn-debug.log*
|
|
||||||
yarn-error.log*
|
|
||||||
|
|
||||||
# Runtime data
|
|
||||||
pids
|
|
||||||
*.pid
|
|
||||||
*.seed
|
|
||||||
*.pid.lock
|
|
||||||
|
|
||||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
|
||||||
lib-cov
|
|
||||||
|
|
||||||
# Coverage directory used by tools like istanbul
|
|
||||||
coverage
|
|
||||||
|
|
||||||
# nyc test coverage
|
|
||||||
.nyc_output
|
|
||||||
|
|
||||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
|
||||||
.grunt
|
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
|
||||||
bower_components
|
|
||||||
|
|
||||||
# node-waf configuration
|
|
||||||
.lock-wscript
|
|
||||||
|
|
||||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
|
|
||||||
build/Release
|
|
||||||
|
|
||||||
# Dependency directories
|
|
||||||
node_modules/
|
|
||||||
jspm_packages/
|
|
||||||
|
|
||||||
# TypeScript v1 declaration files
|
|
||||||
typings/
|
|
||||||
|
|
||||||
# Optional npm cache directory
|
|
||||||
.npm
|
|
||||||
|
|
||||||
# Optional eslint cache
|
|
||||||
.eslintcache
|
|
||||||
|
|
||||||
# Optional REPL history
|
|
||||||
.node_repl_history
|
|
||||||
|
|
||||||
# Output of 'npm pack'
|
|
||||||
*.tgz
|
|
||||||
|
|
||||||
# Yarn Integrity file
|
|
||||||
.yarn-integrity
|
|
||||||
|
|
||||||
# dotenv environment variables file
|
|
||||||
.env
|
|
||||||
|
|
||||||
# parcel-bundler cache (https://parceljs.org/)
|
|
||||||
.cache
|
|
||||||
|
|
||||||
# next.js build output
|
|
||||||
.next
|
|
||||||
|
|
||||||
# nuxt.js build output
|
|
||||||
.nuxt
|
|
||||||
|
|
||||||
# Nuxt generate
|
|
||||||
public
|
|
||||||
dist
|
|
||||||
|
|
||||||
# vuepress build output
|
|
||||||
.vuepress/dist
|
|
||||||
|
|
||||||
# Serverless directories
|
|
||||||
.serverless
|
|
||||||
|
|
||||||
# IDE
|
|
||||||
.idea
|
|
|
@ -1,17 +1,8 @@
|
||||||
image: node
|
image: alpine
|
||||||
|
|
||||||
before_script:
|
|
||||||
- yarn install
|
|
||||||
|
|
||||||
cache:
|
|
||||||
paths:
|
|
||||||
- node_modules/
|
|
||||||
|
|
||||||
pages:
|
pages:
|
||||||
script:
|
|
||||||
- yarn generate
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- public
|
- site
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"semi": false,
|
|
||||||
"singleQuote": true,
|
|
||||||
"trailingComma": "es5"
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"eslint.enable": true,
|
|
||||||
"eslint.packageManager": "yarn",
|
|
||||||
"eslint.validate": ["javascript", "javascriptreact", "vue", "html"]
|
|
||||||
}
|
|
21
README.md
21
README.md
|
@ -1,22 +1,5 @@
|
||||||
# mat.services [![pipeline status](https://gitlab.com/matthewess/mat.services/badges/master/pipeline.svg)](https://gitlab.com/matthewess/mat.services/commits/master)
|
# mat.services
|
||||||
|
|
||||||
> my personal site
|
> my personal site
|
||||||
|
|
||||||
## Build Setup
|
wip
|
||||||
|
|
||||||
```bash
|
|
||||||
# install dependencies
|
|
||||||
$ yarn install
|
|
||||||
|
|
||||||
# serve with hot reload at localhost:3000
|
|
||||||
$ yarn dev
|
|
||||||
|
|
||||||
# build for production and launch server
|
|
||||||
$ yarn build
|
|
||||||
$ yarn start
|
|
||||||
|
|
||||||
# generate static project
|
|
||||||
$ yarn generate
|
|
||||||
```
|
|
||||||
|
|
||||||
For detailed explanation on how things work, checkout [Nuxt.js docs](https://nuxtjs.org).
|
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
# ASSETS
|
|
||||||
|
|
||||||
**This directory is not required, you can delete it if you don't want to use it.**
|
|
||||||
|
|
||||||
This directory contains your un-compiled assets such as LESS, SASS, or JavaScript.
|
|
||||||
|
|
||||||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/assets#webpacked).
|
|
Binary file not shown.
Before Width: | Height: | Size: 293 KiB |
|
@ -1,26 +0,0 @@
|
||||||
@import '~bulma/sass/utilities/initial-variables'
|
|
||||||
@import '~bulma/sass/utilities/functions'
|
|
||||||
|
|
||||||
$pink: #F4ACB7
|
|
||||||
$pink-invert: findColorInvert($pink)
|
|
||||||
$blue: #7D82B8
|
|
||||||
$blue-invert: findColorInvert($blue)
|
|
||||||
$red: #471323
|
|
||||||
$red-invert: findColorInvert($red)
|
|
||||||
$bright: #EF798A
|
|
||||||
$bright-invert: findColorInvert($bright)
|
|
||||||
$purple: #613F75
|
|
||||||
$purple-invert: findColorInvert($purple)
|
|
||||||
|
|
||||||
$primary: $pink
|
|
||||||
$primary-invert: $pink-invert
|
|
||||||
$info: $blue
|
|
||||||
$info-invert: $blue-invert
|
|
||||||
$danger: $red
|
|
||||||
$danger-invert: $red-invert
|
|
||||||
$warning: $bright
|
|
||||||
$warning-invert: $bright-invert
|
|
||||||
$link: $purple
|
|
||||||
$link-invert: $purple-invert
|
|
||||||
|
|
||||||
@import '~bulma/sass/utilities/all'
|
|
|
@ -1,6 +0,0 @@
|
||||||
@import 'utilities'
|
|
||||||
|
|
||||||
@import '~bulma/bulma'
|
|
||||||
|
|
||||||
.white
|
|
||||||
background: white
|
|
|
@ -1,7 +0,0 @@
|
||||||
# COMPONENTS
|
|
||||||
|
|
||||||
**This directory is not required, you can delete it if you don't want to use it.**
|
|
||||||
|
|
||||||
The components directory contains your Vue.js Components.
|
|
||||||
|
|
||||||
_Nuxt.js doesn't supercharge these components._
|
|
|
@ -1,35 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
section.hero.is-primary.is-bold(v-once)
|
|
||||||
.hero-body(v-if='!compact')
|
|
||||||
.container
|
|
||||||
h1.title.has-text-danger matthew ess
|
|
||||||
h2.subtitle.has-text-danger software developer, social justice warrior, wannabe artist
|
|
||||||
.hero-foot
|
|
||||||
.tabs.is-boxed.is-fullwidth.is-three-quarters
|
|
||||||
ul.has-text-weight-semibold.has-text-danger
|
|
||||||
li(v-if='compact') #[nuxt-link.has-text-weight-bold(to='/') matthew ess]
|
|
||||||
li #[nuxt-link(to='/projects') projects]
|
|
||||||
li #[nuxt-link(to='/resume') resume]
|
|
||||||
li #[nuxt-link(to='/blog') blog]
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
compact: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="sass" scoped>
|
|
||||||
@import '~bulma/sass/utilities/mixins'
|
|
||||||
|
|
||||||
section
|
|
||||||
margin-bottom: 2rem
|
|
||||||
+desktop
|
|
||||||
.is-three-quarters
|
|
||||||
width: 75%
|
|
||||||
</style>
|
|
|
@ -1,22 +0,0 @@
|
||||||
---
|
|
||||||
title: hi, world
|
|
||||||
tagline: my personal introduction to the world of words on the web
|
|
||||||
tags:
|
|
||||||
- first post
|
|
||||||
- introduction
|
|
||||||
- tech blog
|
|
||||||
- creative writing
|
|
||||||
---
|
|
||||||
|
|
||||||
hi, world! this is my first blog post. i'm hoping to use this as part creative outlet, part
|
|
||||||
self-encouragement to see technical projects through, and part place to document my learning so i
|
|
||||||
can go back and look at all the things i forgot, one day.
|
|
||||||
|
|
||||||
to those of you who don't know me, here's a brief introduction: my name is mat! i'm a communist,
|
|
||||||
a [partner][1], and generally (at the very least) something of a curmudgeon. i have a number of
|
|
||||||
strong opinions, especially about technology and politics. i have a love for art, and, in another
|
|
||||||
life, i really wish that i'd studied philosophy or music.
|
|
||||||
|
|
||||||
if you have ideas for me to blog about, feel free to reach out to me at mess [at] yelp [dot] com.
|
|
||||||
|
|
||||||
[1]: https://macklovesmatt.com/ 'me and my partner'
|
|
|
@ -1,7 +0,0 @@
|
||||||
# LAYOUTS
|
|
||||||
|
|
||||||
**This directory is not required, you can delete it if you don't want to use it.**
|
|
||||||
|
|
||||||
This directory contains your Application Layouts.
|
|
||||||
|
|
||||||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/views#layouts).
|
|
|
@ -1,19 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
.nuxt
|
|
||||||
hero(:compact='true')
|
|
||||||
.container
|
|
||||||
nuxt
|
|
||||||
footer.footer.white
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import hero from '../components/hero.vue'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: { hero },
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="sass">
|
|
||||||
@import '~assets/sass/mat'
|
|
||||||
</style>
|
|
|
@ -1,19 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
.nuxt
|
|
||||||
hero
|
|
||||||
.container
|
|
||||||
nuxt
|
|
||||||
footer.footer.white
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import hero from '../components/hero.vue'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: { hero },
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="sass">
|
|
||||||
@import '~assets/sass/mat'
|
|
||||||
</style>
|
|
|
@ -1,91 +0,0 @@
|
||||||
import pkg from './package'
|
|
||||||
|
|
||||||
export default {
|
|
||||||
mode: 'universal',
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Headers of the page
|
|
||||||
*/
|
|
||||||
head: {
|
|
||||||
titleTemplate(titleChunk) {
|
|
||||||
return titleChunk ? `${titleChunk} | matthew ess` : 'matthew ess'
|
|
||||||
},
|
|
||||||
meta: [
|
|
||||||
{ charset: 'utf-8' },
|
|
||||||
{ 'http-equiv': 'X-UA-Compatible', content: 'IE=edge,chrome=1' },
|
|
||||||
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
|
|
||||||
{ hid: 'description', name: 'description', content: pkg.description },
|
|
||||||
],
|
|
||||||
},
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Customize the progress-bar color
|
|
||||||
*/
|
|
||||||
loading: { color: '#fff' },
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Global CSS
|
|
||||||
*/
|
|
||||||
css: [],
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Plugins to load before mounting the App
|
|
||||||
*/
|
|
||||||
plugins: ['~/plugins/filters.js'],
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Nuxt.js modules
|
|
||||||
*/
|
|
||||||
modules: ['@nuxtjs/bulma', 'nuxtent'],
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Static Site Generation configuration
|
|
||||||
*/
|
|
||||||
generate: {
|
|
||||||
dir: 'public',
|
|
||||||
},
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Nuxtent configuration
|
|
||||||
*/
|
|
||||||
nuxtent: {
|
|
||||||
content: {
|
|
||||||
page: '/_slug',
|
|
||||||
permalink: '/blog/:slug',
|
|
||||||
isPost: false,
|
|
||||||
generate: ['get', 'getAll'],
|
|
||||||
},
|
|
||||||
api: isStatic => {
|
|
||||||
return {
|
|
||||||
browserBaseURL: isStatic ? 'https://mat.services' : '',
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Build configuration
|
|
||||||
*/
|
|
||||||
build: {
|
|
||||||
postcss: {
|
|
||||||
preset: {
|
|
||||||
features: {
|
|
||||||
customProperties: false,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
/*
|
|
||||||
** You can extend webpack config here
|
|
||||||
*/
|
|
||||||
extend(config, ctx) {
|
|
||||||
// Run ESLint on save
|
|
||||||
if (ctx.isDev && ctx.isClient) {
|
|
||||||
config.module.rules.push({
|
|
||||||
enforce: 'pre',
|
|
||||||
test: /\.(js|vue)$/,
|
|
||||||
loader: 'eslint-loader',
|
|
||||||
exclude: /(node_modules)/,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
37
package.json
37
package.json
|
@ -1,37 +0,0 @@
|
||||||
{
|
|
||||||
"name": "mat.services",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "my personal site",
|
|
||||||
"author": "Matthew Ess",
|
|
||||||
"private": true,
|
|
||||||
"scripts": {
|
|
||||||
"dev": "nuxt",
|
|
||||||
"build": "nuxt build",
|
|
||||||
"start": "nuxt start",
|
|
||||||
"generate": "nuxt generate",
|
|
||||||
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
|
|
||||||
"precommit": "yarn lint"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@nuxtjs/axios": "^4.5.2",
|
|
||||||
"@nuxtjs/bulma": "^1.2.0",
|
|
||||||
"cross-env": "^5.2.0",
|
|
||||||
"nuxt": "^2.0.0",
|
|
||||||
"nuxtent": "^1.4.1"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"babel-eslint": "^8.2.1",
|
|
||||||
"eslint": "^5.7.0",
|
|
||||||
"eslint-config-prettier": "^3.1.0",
|
|
||||||
"eslint-loader": "^2.0.0",
|
|
||||||
"eslint-plugin-prettier": "2.6.2",
|
|
||||||
"eslint-plugin-vue": "^5.0.0-beta.3",
|
|
||||||
"node-sass": "^4.9.3",
|
|
||||||
"nodemon": "^1.11.0",
|
|
||||||
"prettier": "1.14.3",
|
|
||||||
"pug": "^2.0.3",
|
|
||||||
"pug-plain-loader": "^1.0.0",
|
|
||||||
"sass-loader": "^7.1.0",
|
|
||||||
"webpack": "^4.20.2"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
#blog
|
|
||||||
nuxt-link(to='/blog')
|
|
||||||
h1.title.has-text-centered ~ a mess of words ~
|
|
||||||
#top
|
|
||||||
nuxt-child
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
head() {
|
|
||||||
return { title: 'blog' }
|
|
||||||
},
|
|
||||||
layout: 'compact',
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="sass" scoped>
|
|
||||||
.title
|
|
||||||
margin-bottom: 5rem
|
|
||||||
</style>
|
|
|
@ -1,41 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
#post
|
|
||||||
h1.title {{ post.title }}
|
|
||||||
h2.subtitle {{ post.tagline }}
|
|
||||||
p {{ post.date | prettifyDateLong }}
|
|
||||||
hr
|
|
||||||
.post-body.content(v-html='post.body')
|
|
||||||
a(href='#top') top
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
async asyncData({ app, route, payload }) {
|
|
||||||
return {
|
|
||||||
post: (await app.$content('/').get(route.path)) || payload,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
head() {
|
|
||||||
return {
|
|
||||||
title: this.post.title,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
beforeMount() {
|
|
||||||
if (this.post.draft) {
|
|
||||||
this.$router.replace('/blog')
|
|
||||||
}
|
|
||||||
},
|
|
||||||
layout: 'compact',
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="sass" scoped>
|
|
||||||
@import '~assets/sass/utilities'
|
|
||||||
|
|
||||||
.post-body
|
|
||||||
width: 75%
|
|
||||||
margin-bottom: 5rem
|
|
||||||
font-size: $size-medium
|
|
||||||
a
|
|
||||||
text-decoration: underline
|
|
||||||
</style>
|
|
|
@ -1,49 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
ul.blog-items
|
|
||||||
li.blog-item(v-for='(post, index) in listing' v-if='!post.draft')
|
|
||||||
nuxt-link(:to='post.path')
|
|
||||||
span.post-title {{ post.title }}
|
|
||||||
span.post-date {{ post.date | prettifyDate }}
|
|
||||||
.post-tagline {{ post.tagline }}
|
|
||||||
hr(v-if='last(index)')
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
async asyncData({ app }) {
|
|
||||||
return {
|
|
||||||
listing:
|
|
||||||
(await app
|
|
||||||
.$content('/')
|
|
||||||
.query({ exclude: ['body', 'meta', 'permalink', 'anchors'] })
|
|
||||||
.getAll()) || payload,
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
last(index) {
|
|
||||||
return index < this.listing.length - 1
|
|
||||||
},
|
|
||||||
},
|
|
||||||
layout: 'compact',
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="sass" scoped>
|
|
||||||
@import '~assets/sass/utilities'
|
|
||||||
|
|
||||||
.blog-items
|
|
||||||
+desktop
|
|
||||||
width: 75%
|
|
||||||
margin: 0 auto
|
|
||||||
.blog-item
|
|
||||||
margin-bottom: 3rem
|
|
||||||
.post-title
|
|
||||||
font-size: $size-medium
|
|
||||||
.post-date
|
|
||||||
float: right
|
|
||||||
.post-tagline
|
|
||||||
font-size: $size-normal
|
|
||||||
color: $grey-light
|
|
||||||
margin-bottom: 1rem
|
|
||||||
width: fit-content
|
|
||||||
</style>
|
|
|
@ -1,34 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
#home
|
|
||||||
.tile.is-ancestor
|
|
||||||
.tile.is-vertical.is-4
|
|
||||||
.tile.is-9
|
|
||||||
.notification.is-info
|
|
||||||
h1.title.is-4 me
|
|
||||||
p.content.
|
|
||||||
i'm an aspiring communist, a
|
|
||||||
#[a(href='https://mattandmack.website' target='_blank') partner],
|
|
||||||
and a software developer at yelp.
|
|
||||||
.tile.is-9
|
|
||||||
.notification.is-warning
|
|
||||||
h1.title.is-4 what's inspiring me now
|
|
||||||
.content
|
|
||||||
p wes anderson's isle of dogs
|
|
||||||
p mitski's #[a(href='https://mitski.bandcamp.com/album/be-the-cowboy' target='_blank') be the cowboy]
|
|
||||||
p thomas pynchon's gravity's rainbow
|
|
||||||
.tile.is-4
|
|
||||||
.tile.is-9
|
|
||||||
.notification.is-danger
|
|
||||||
h1.title.is-4 what i care about
|
|
||||||
p.content.
|
|
||||||
as an aspirational communist, i think the most important tools are the ones that help
|
|
||||||
workers organize and empower themselves. i want my software to be a tool for
|
|
||||||
liberation, and i want to work on projects that embody that goal. reach out
|
|
||||||
to mess [at] yelp [dot] com if you want to work on or discuss something.
|
|
||||||
p.content.
|
|
||||||
"the philosophers have only interpreted the world, in various ways.
|
|
||||||
the point, however, is to change it."
|
|
||||||
.tile.is-3
|
|
||||||
figure.image
|
|
||||||
img(src='@/assets/img/me.jpg')
|
|
||||||
</template>
|
|
|
@ -1,51 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
#projects.is-half.has-text-centered-mobile
|
|
||||||
h2.subtitle.has-text-centered older projects
|
|
||||||
hr
|
|
||||||
h2.subtitle #[a(href='https://github.com/matthewess/boilertalk-frontend') boilertalk]
|
|
||||||
p.content.
|
|
||||||
boilertalk is a project i'm working on with my fiancée to enable social
|
|
||||||
psychology researchers to easily simulate a social media platform to
|
|
||||||
garner realistic interactions and behaviors from students for the purpose
|
|
||||||
of research studies.
|
|
||||||
h2.subtitle #[a(href='https://github.com/purdue-csusb/openideas') openideas]
|
|
||||||
p.content.
|
|
||||||
openideas is a platform i worked on with jay hankins for
|
|
||||||
#[a(href='https://purdueusb.com') Purdue USB] and the Purdue
|
|
||||||
Undergraduate CS Community. we hoped to implement it
|
|
||||||
to give students a way to voice concerns or improvements for
|
|
||||||
the department, then vote on and discuss them.
|
|
||||||
h2.subtitle #[a(href='https://github.com/lemming-online/mischief') lemming]
|
|
||||||
p.content.
|
|
||||||
i worked on the backend component of the lemming project, a group
|
|
||||||
project for Purdue's senior design class that was meant as a queuing
|
|
||||||
system to help lab TAs or group leaders manage large groups of students
|
|
||||||
or members who need help with an assignment or project.
|
|
||||||
h2.subtitle #[a(href='https://github.com/projectkuva/kuva-frontend') kuva]
|
|
||||||
p.content.
|
|
||||||
kuva was a small iOS app meant as a regional, location centric clone
|
|
||||||
of instagram that would allow you to see and interact with popular photos
|
|
||||||
taken by users nearby you.
|
|
||||||
|
|
||||||
hr
|
|
||||||
p.content.
|
|
||||||
check out my #[a.has-text-info(href='https://gitlab.com/matthewess') gitlab account],
|
|
||||||
or my older #[a.has-text-info(href='https://github.com/matthewess') github account].
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
head() {
|
|
||||||
return { title: 'projects' }
|
|
||||||
},
|
|
||||||
layout: 'compact',
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="sass" scoped>
|
|
||||||
@import '~assets/sass/utilities'
|
|
||||||
|
|
||||||
+desktop
|
|
||||||
.is-half
|
|
||||||
width: 50%
|
|
||||||
</style>
|
|
|
@ -1,78 +0,0 @@
|
||||||
<template lang="pug">
|
|
||||||
#resume.is-half.has-text-centered-mobile
|
|
||||||
.content
|
|
||||||
h1.title matthew ess
|
|
||||||
h2.subtitle software developer
|
|
||||||
hr.is-three-quarters
|
|
||||||
h2.subtitle education
|
|
||||||
p.
|
|
||||||
purdue university, west lafayette, IN #[br]
|
|
||||||
B.S. in computer science, minor in political science #[br]
|
|
||||||
may 2018 #[br]
|
|
||||||
3.90 gpa
|
|
||||||
hr.is-three-quarters
|
|
||||||
h2.subtitle experience
|
|
||||||
p.has-text-weight-semibold software engineer @ yelp: summer 2018 - present
|
|
||||||
p.
|
|
||||||
backend engineer on the transactions and food ordering teams. i work on
|
|
||||||
high performance, realtime python infrastructure that supports a wide
|
|
||||||
variety of features for ordering food on yelp, including driver tracking
|
|
||||||
support to realtime updates and notifications about your order via push.
|
|
||||||
p.has-text-weight-semibold software engineer intern @ yelp: summer 2017
|
|
||||||
p.
|
|
||||||
intern on the transactions team. built a streaming transformation pipeline
|
|
||||||
that leveraged yelp's streaming datapipe (built on kafka technologies) and
|
|
||||||
replicated to elasticsearch for high performance text querying over order
|
|
||||||
data.
|
|
||||||
p.has-text-weight-semibold developer intern @ school datebooks: summer 2016 - winter 2016
|
|
||||||
p.
|
|
||||||
i worked on a very small team of talented engineers writing backend
|
|
||||||
PHP and javascript microservices for an athletic and educational
|
|
||||||
scheduling web app.
|
|
||||||
hr.is-three-quarters
|
|
||||||
h2.subtitle skills
|
|
||||||
.columns
|
|
||||||
.column
|
|
||||||
p.has-text-weight-semibold strong
|
|
||||||
p python
|
|
||||||
p pyramid, flask, django
|
|
||||||
p unit, integration, and acceptance testing
|
|
||||||
p darwin and linux systems
|
|
||||||
p git, source control
|
|
||||||
p working on a team, agile and "semi-agile" processes
|
|
||||||
p html5, css, javascript
|
|
||||||
.column
|
|
||||||
p.has-text-weight-semibold familiar
|
|
||||||
p haskell
|
|
||||||
p elixir and phoenix
|
|
||||||
p functional programming paradigms
|
|
||||||
p database technology, sql, postgresql, elasticsearch
|
|
||||||
p software deployment
|
|
||||||
p elm, vue.js, react, SPAs, flux
|
|
||||||
p c, systems programming, java, junit testing, ruby on rails
|
|
||||||
.column
|
|
||||||
p.has-text-weight-semibold learning
|
|
||||||
p functional reactive programming, reflex
|
|
||||||
p nix, nixos
|
|
||||||
p type level programming and theory
|
|
||||||
p programming language and compiler theory
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
head() {
|
|
||||||
return { title: 'resume' }
|
|
||||||
},
|
|
||||||
layout: 'compact',
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="sass" scoped>
|
|
||||||
@import '~assets/sass/utilities'
|
|
||||||
|
|
||||||
+desktop
|
|
||||||
.is-three-quarters
|
|
||||||
width: 75%
|
|
||||||
.is-half
|
|
||||||
width: 50%
|
|
||||||
</style>
|
|
|
@ -1,38 +0,0 @@
|
||||||
import Vue from 'vue'
|
|
||||||
|
|
||||||
const monthNames = [
|
|
||||||
{ short: 'jan', long: 'january' },
|
|
||||||
{ short: 'feb', long: 'february' },
|
|
||||||
{ short: 'mar', long: 'march' },
|
|
||||||
{ short: 'apr', long: 'april' },
|
|
||||||
{ short: 'may', long: 'may' },
|
|
||||||
{ short: 'jun', long: 'june' },
|
|
||||||
{ short: 'jul', long: 'july' },
|
|
||||||
{ short: 'aug', long: 'august' },
|
|
||||||
{ short: 'sep', long: 'september' },
|
|
||||||
{ short: 'oct', long: 'october' },
|
|
||||||
{ short: 'nov', long: 'november' },
|
|
||||||
{ short: 'dec', long: 'december' },
|
|
||||||
]
|
|
||||||
|
|
||||||
/*
|
|
||||||
** Very confusing to read, but this takes the YYYY-MM-DD format from posts
|
|
||||||
** and makes it readable in the way I want: either
|
|
||||||
** 'mon DD', 'mon DD YY', or 'month DD YYYY'
|
|
||||||
*/
|
|
||||||
const prettifyDate = (date, long) => {
|
|
||||||
date = date.split('-')
|
|
||||||
const month = monthNames[parseInt(date[1]) - 1] || {
|
|
||||||
short: date[1],
|
|
||||||
long: date[1],
|
|
||||||
}
|
|
||||||
const day = date[2]
|
|
||||||
const year = date[0]
|
|
||||||
const thisYear = year == new Date().getFullYear()
|
|
||||||
return `${long ? month.long : month.short} ${day} ${
|
|
||||||
long ? year : thisYear ? '' : year.substring(2)
|
|
||||||
}`
|
|
||||||
}
|
|
||||||
|
|
||||||
Vue.filter('prettifyDate', date => prettifyDate(date, false))
|
|
||||||
Vue.filter('prettifyDateLong', date => prettifyDate(date, true))
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<title>matthew ess</title>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
||||||
|
<meta name="description" content="" />
|
||||||
|
<link rel="stylesheet" href="style.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>matthew ess</h1>
|
||||||
|
<p>is working on making something nice here</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,9 @@
|
||||||
|
body {
|
||||||
|
background-color: #ddacd4;
|
||||||
|
margin: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, p {
|
||||||
|
color: #34415e;
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, Helvetica, sans-serif;
|
||||||
|
}
|
Binary file not shown.
Before Width: | Height: | Size: 1.4 KiB |
|
@ -1,10 +0,0 @@
|
||||||
# STORE
|
|
||||||
|
|
||||||
**This directory is not required, you can delete it if you don't want to use it.**
|
|
||||||
|
|
||||||
This directory contains your Vuex Store files.
|
|
||||||
Vuex Store option is implemented in the Nuxt.js framework.
|
|
||||||
|
|
||||||
Creating a file in this directory activate the option in the framework automatically.
|
|
||||||
|
|
||||||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/vuex-store).
|
|
Loading…
Reference in New Issue