You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
4.6 KiB

extends template_raj
block content
.container#home
.inner
.hero
h1 garrettmills
p Hi, there. My name is Garrett, and I'm a computer scientist, software engineer, and speaker.
section#about
h2 about me
.about-container
.img
img(src="/assets/img/profile.jpg" width=300 height=300)
.about
p Hi! My name is Garrett. Welcome to my corner of the internet. I'm a computer scientist, software engineer, and speaker. I like to build software to improve the developer/user experience. I created the <a href="https://extollo.garrettmills.dev" target="_blank">Extollo</a> framework, <a href="https://code.garrettmills.dev/Noded" target="_blank">Noded</a>, <a href="https://code.garrettmills.dev/starship/coreid" target="_blank">CoreID</a> authentication server, and a couple other projects. I love to communicate my work, and help others pursue their projects. I write blog posts, create video tutorials, hold talks, and publish code from my projects in the hope that others will find it useful.
p A bit more background: I grew up in the rural mid-west, and I got started by teaching myself everything I know. I'm a big fan of learning to code this way. I completed a bachelor of science in computer science at the University of Kansas, and I'm currently a graduate student studying programming languages and formal methods at KU.
if workItemYears && workItemYears.length
section#work
h2 what I'm working on
.timeline-group
each year in workItemYears
.work-container(class=(workItemHiddenYears.includes(year) ? 'timeline-item theme-hide' : 'timeline-item'))
.timeline-container
.timeline-year #{year}
each item in workItemGroups[year]
.work-container(class=(item.endDate ? 'timeline-item theme-hide' : 'timeline-item'))
.timeline-container
.timeline-content
.range-small #{item.rangeDisplay()}
h3 !{item.name}
p !{item.description}
.work-container
button#timeline-view-all show past work
section#contact
h2 get in touch
.contact-container
.message
p I'd love to hear from you if you have questions or inquiries related to me or my projects. You can get in touch by text, e-mail, or using this form. I also occasionally share thoughts on my <a href="/blog">blog</a>.
p <b>E-mail:</b> <a href="mailto:shout@garrettmills.dev">shout@garrettmills.dev</a>
.form
form#contact-form(method='post' action=named('contact'))
.form-group
input#contactEmail.form-control(type='email' name='email' placeholder='E-Mail Address' required)
input#contactEEmail(type='email' name='e-mail')
.form-group
input#contactFirst.form-control(name='name' placeholder='Name' required)
.form-group
textarea.form-control#contactMessage(name='message' placeholder='Message' required rows=6)
.form-group
button Send
section#recent
h2 latest updates
each item in feedPosts
.feed-item
.feed-category(id='feedPostTag_' + item.feedPostId)
.tag #{item.tag}
span
if !item.visible
p.text (draft)
p.text !{item.body}
.bottom
.stamp <a href="#{named('feed')}##{item.feedPostId}" class="feed-edit-button">permalink</a>&nbsp;&nbsp;|&nbsp;&nbsp;#{item.postedAt.toLocaleString()}
.row.mt-4
.col-12.text-center
a.button(href="/feed") view all
block append script
script.
document.getElementById('contactEEmail').style.display = 'none'