aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-07-22 08:03:11 +0000
committers-ol <s-ol@users.noreply.github.com>2020-07-22 08:03:11 +0000
commit3eeb3bcc0b34ddee62668f4a1da0f90f358a5a49 (patch)
treedf59c0d868f6f9d0c8487b21f27ccd57deb81158
parentportfolio: corrections (diff)
downloadmmm-cv.tar.gz
mmm-cv.zip
cv wipcv
-rw-r--r--mmm/mmmfs/layout.moon20
-rw-r--r--root/portfolio/print: text$moonscript -> mmm$dom.moon184
-rw-r--r--scss/_print.scss9
3 files changed, 203 insertions, 10 deletions
diff --git a/mmm/mmmfs/layout.moon b/mmm/mmmfs/layout.moon
index 9a33b27..0030c83 100644
--- a/mmm/mmmfs/layout.moon
+++ b/mmm/mmmfs/layout.moon
@@ -36,19 +36,19 @@ gen_header = ->
h1 {
navigate_to '', logo
span {
- span 'mmm', class: 'bold'
- '&#8203;'
- '.s&#8209;ol.nu'
+ span 's-ol', class: 'bold'
+ ' '
+ 'bekic'
}
}
-- span "fun stuff with code and wires"
- table.concat {
- pick 'fun', 'cool', 'weird', 'interesting', 'new', 'pleasant'
- pick 'stuff', 'things', 'projects', 'experiments', 'visuals', 'ideas'
- pick "with", 'and'
- pick 'mostly code', 'code and wires', 'silicon', 'electronics', 'shaders',
- 'oscilloscopes', 'interfaces', 'hardware', 'FPGAs'
- }, ' '
+ -- table.concat {
+ -- pick 'fun', 'cool', 'weird', 'interesting', 'new', 'pleasant'
+ -- pick 'stuff', 'things', 'projects', 'experiments', 'visuals', 'ideas'
+ -- pick "with", 'and'
+ -- pick 'mostly code', 'code and wires', 'silicon', 'electronics', 'shaders',
+ -- 'oscilloscopes', 'interfaces', 'hardware', 'FPGAs'
+ -- }, ' '
}
aside {
navigate_to '/about', 'about me'
diff --git a/root/portfolio/print: text$moonscript -> mmm$dom.moon b/root/portfolio/print: text$moonscript -> mmm$dom.moon
new file mode 100644
index 0000000..f0d6ae1
--- /dev/null
+++ b/root/portfolio/print: text$moonscript -> mmm$dom.moon
@@ -0,0 +1,184 @@
+import tohtml, text, elements from require 'mmm.component'
+import article, a, b, video, img, h1, h2, div, p, ul, li, br from elements
+import embed, link_to from (require 'mmm.mmmfs.util') elements
+
+embed_img = (src) -> (style) -> img :src, :style
+embed_vid = (src) -> (style) -> video autoplay: true, loop: true, muted: true, :src, :style
+
+import artistic, game, js, lua, shader, hardware, tool, collab, professional, cs, cpp from setmetatable {}, __index: (t, k) -> k
+
+padded_ul = (tbl) ->
+ ul with tbl
+ .style = padding: '0 2rem 0.5rem'
+
+education = {
+ {
+ name: 'FabAcademy / OpenDot'
+ desc: 'Digital Fabrication'
+ href: 'http://fabacademy.org/'
+ extra: '2020, Milan'
+ content: padded_ul {
+ li text 'parametric 3d design'
+ li text 'CAM and CNC machining, lasercutting, 3D printing'
+ li text 'electronics design and production'
+ li text 'casting and molding'
+ }
+ }
+ {
+ name: 'Cologne Game Lab / TH Köln'
+ desc: 'BA Digital Games'
+ extra: '2015 - 2019, Cologne'
+ href: 'https://colognegamelab.de/'
+ content: padded_ul {
+ li text 'specialization in game programming'
+ }
+ }
+ {
+ name: 'Heinrich-Hertz-Gymnasium'
+ desc: 'MINT High school'
+ extra: '2007 - 2015, Berlin'
+ href: 'https://www.hhgym.de/'
+ content: padded_ul {
+ li text 'advanced courses in computer science and physics'
+ }
+ }
+}
+
+work = {
+ {
+ name: 'Slow Bros (Harold Halibut)'
+ desc: 'Tool & Game Development'
+ extra: 'April 2019 - ongoing (consulting)'
+ content: padded_ul {
+ li text 'lead development of minigames & interactions'
+ li text 'tool development'
+ li text 'shader programming'
+ li text 'porting (various consoles)'
+ }
+ href: 'http://haroldhalibut.com/'
+ media: embed_img 'http://haroldhalibut.com/wp-content/uploads/2016/07/AgoraArcades2.png'
+ tags: :cs, :professional, :game
+ }
+ {
+ name: 'ludopium (Vectronom)'
+ desc: 'Game Development'
+ extra: 'July 2018 - Decemer 2019'
+ content: padded_ul {
+ li text 'Unity/C# development (gameplay, UI, tools)'
+ li {
+ text 'backend for storing and sharing UGC across platforms (clojure)'
+ ul {
+ li text 'integration with Steam and Nintendo services'
+ }
+ }
+ li {
+ text 'development of tech for showcase booths'
+ ul {
+ li text 'realtime speedrunning leaderboard (node, react)'
+ li text 'custom RGB LED driver and lettering'
+ }
+ }
+ li text 'porting to Nintendo Switch, Android, iOS, tvOS'
+ li text 'HLSL shader palette system'
+ }
+ href: 'https://vectronom.arte.tv'
+ media: embed_vid '/portfolio/vectronom/media:video/webm'
+ tags: :cs, :professional, :js, :shader, :game
+ }
+ {
+ name: 'rise technologies'
+ desc: 'Full-Stack Development'
+ extra: 'April 2016 - April 2019'
+ content: padded_ul {
+ li text 'front-end development (react, material-ui)'
+ li text 'back-end development (node, MongoDB, RabbitMQ)'
+ li text 'mobile development (iOS & android)'
+ li text 'webRTC conferencing (janus-gateway, C)'
+ li {
+ text 'dev-ops (Azure, Amazon AWS)'
+ ul {
+ li text 'designed and implemented a custom CI system and deployment'
+ li text 'supervised migration from MS Azure to Amazon AWS'
+ }
+ }
+ }
+ href: 'https://rise.tech'
+ media: embed_img '/portfolio/rise/media:image/png'
+ tags: :professional, :js, :tool
+ }
+ }
+
+project_row = (list, tag, exclude) ->
+ with ul style: 'padding-left': '1rem'
+ for pp in *list
+ continue if tag and not pp.tags[tag]
+ continue if not tag and exclude and pp.tags[exclude]
+
+ \append li {
+ style:
+ display: 'flex'
+ margin: '1rem 0'
+ 'padding-bottom': '0.5em'
+ overflow: 'hidden'
+ 'font-size': '0.9em'
+ 'break-inside': 'avoid-page'
+
+ div {
+ style:
+ flex: '1 0 25em'
+
+ a {
+ style:
+ display: 'block'
+ position: 'relative'
+ color: 'var(--gray-dark)'
+ background: 'var(--gray-bright)'
+ 'margin-bottom': '0.5rem'
+ filter: 'none'
+
+ href: pp.href
+
+ h2 pp.desc, style:
+ padding: '0.4rem 1rem'
+ }
+
+ if pp.extra
+ div pp.extra, style:
+ color: 'var(--gray-dark)'
+ padding: '0.2em 1rem'
+ }
+
+ div {
+ style:
+ width: '45em'
+ 'margin-left': 'auto'
+
+ h2 {
+ style:
+ padding: '0.4rem 1rem'
+ background: 'var(--gray-bright)'
+ 'margin-bottom': '0.5rem'
+
+ text pp.name
+ }
+
+ if pp.content then pp.content
+ else if pp.entries then padded_ul for line in *pp.entries do li text line
+ }
+ }
+
+tohtml with article!
+ \append p "I am a ", (b 'developer and creative technologist'), " currently based in Milan.
+ I have experience working with a wide variety of technologies (both soft- and hardware)
+ and enjoy learning new skills with every project.", style: 'margin-top': 0
+
+ \append div (b 'spoken languages:'), " native german, excellent english, good italian"
+
+ \append p "For a detailled overview of my skillset and personal projects, please take a look at
+ my portfolio at ", (a 's-ol.nu/portfolio', href: 'https://s-ol.nu/portfolio'), '.'
+
+ \append h2 "professional work experience", style: 'margin-top': '1em'
+ \append project_row work, professional
+
+ \append h2 "education", style: 'margin-top': '1em'
+ \append project_row education
diff --git a/scss/_print.scss b/scss/_print.scss
index c221fa4..54d71ec 100644
--- a/scss/_print.scss
+++ b/scss/_print.scss
@@ -26,12 +26,21 @@
.content {
flex: 1 0 auto;
+ margin: 0;
}
}
body {
background: $white;
}
+
+ footer {
+ display: none;
+ }
+
+ header > aside {
+ display: none;
+ }
}
.print-ownpage {