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

116 lines
13 KiB
HTML

3 months ago
<!doctype html>
<html lang=en>
<head id="head">
<meta charset=utf-8>
<title id=title >the codeartist — programmer and engineer based in BerlinCV / Résumé</title>
<meta name=description content="The personal page and weblog of Norman Köhring">
<meta name=author content="Norman Köhring">
<meta name=DC.title content="the codeartist — programmer and engineer based in Berlin">
<meta name="twitter:card" content="summary">
<meta name="twitter:site" content="@koehr_in">
<meta name="twitter:author" content="@koehr_in">
<meta name=twitter:description content="The personal page and weblog of the codeartist Norman Köhring">
<meta name="twitter:title" content="CV / Résumé // the codeartist">
<meta name="og:title" content="CV / Résumé // the codeartist">
<meta property="og:type" content="website">
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
<meta name=viewport content="width=device-width,initial-scale=1,shrink-to-fit=no"/>
<meta name=ICBM content="52.4595, 13.5335">
<meta name=geo.position content="52.4595; 13.5335">
<meta name=geo.region content=DE-BE>
<meta name=geo.placename content=Berlin>
<link rel=me href=https://koehr.in>
<link rel=me href=https://k0r.in>
<link rel=me href=https://koehr.ing>
<link rel=me href=@Koehr@mstdn.io>
<link rel=me href=https://sr.ht/~koehr/>
<link rel=me href=https://git.k0r.in>
<link rel=me href=https://threads.net/@coffee_n_code>
<link rel=me href=https://instagram.com/@coffee_n_code>
<link rel=me href=https://ko-fi.com/koehr>
<link rel=me href=https://reddit.com/user/koehr>
<link rel=icon href=/favicon.png type=image/x-icon>
<link rel=stylesheet href=/style.css>
</head>
<body>
<main id="main">
<header>
<h1 >CV / Résumé</h1>
<em >My Curriculum Vitae / Résumé. I know, there is a difference. This page is technically a résumé, while the whole site would be closer to a CV.</em>
<br/>
Last updated: <time datetime="Mon, 20 May 2024 00:00:00 +0000" >May 20, 2024</time>
</header>
2 months ago
<div ><p>In me you will find an enthusiastic, passionate developer with around 13 years of professional experience in and around software development, mainly full-stack web development and consulting, but also coaching and community work. I strive to seek roles in creative, forward thinking companies with diverse teams that offer challenging work, trust and responsibility. Since 2022 I'm the principal frontend engineer and frontend chapter lead of <a href="https://codegaia.io">Code Gaia</a>.</p><h2>Principal Frontend Engineer, Code Gaia</h2><blockquote><p>Gode Gaia GmbH, Munich / remote (since August 2022)</p></blockquote><h3>Main responsibilities</h3><ul><li><p>leading the frontend chapter</p></li><li><p>defining development processes and standards</p></li><li><p>team management responsibilities</p></li><li><p>lead complete rewrite of frontend</p></li><li><p>interviewing potential new hires</p></li></ul><h3>Key Technologies</h3><ul><li><p>Javascript/Typescript: Vue3 with Composition API</p></li><li><p>AWS Amplify</p></li><li><p>AWS Bedrock</p></li></ul><h3>Noteworthy aspects</h3><ul><li><p>AI integration (LLM as well as document scanning and categorization)</p></li><li><p>Python / Django backend</p></li><li><p>100% remote work</p></li></ul><hr><h2>Senior Software Engineer, Coursedog</h2><blockquote><p>Coursedog Inc, New York / remote (June 2021 till June 2022)</p></blockquote><h3>Main responsibilities</h3><ul><li><p>frontend introduction and contact for newcomers</p></li><li><p>maintainance/bug fixing for existing features</p></li><li><p>development of multiple new features</p></li><li><p>introduced Docker to ease developer onboarding</p></li><li><p>lead the frontend-part of feature flags introduction</p></li><li><p>being part of the Typescript transition team</p></li></ul><h3>Key Technologies</h3><ul><li><p>Javascript/Typescript: Vue2 with Composition API</p></li><li><p>Node: Express, Fastify</p></li></ul><h3>Noteworthy aspects</h3><ul><li><p>Large codebase (~450k SLOC in total)</p></li><li><p>100% remote work</p></li></ul><hr><h2>Senior Consultant, Wunderdog</h2><blockquote><p>Wunderdog GmbH, Helsinki / Berlin / remote (June 2018 till June 2021)</p></blockquote><h3>Main responsibilities</h3><ul><li><p>Consultant work with lots of different clients</p></li><li><p>including leadership roles, hiring and building new teams</p></li><li><p>enhancing existing teams or on my own</p></li><li><p>in companies ranging from 1000s of employees to small startups</p></li><li><p>sectors include retail, sports, travel, entertainment, HR</p></li><li><p>doing feature development for large, medium and small as well as greenfield projects</p></li></ul><h3>Key Technologies</h3><ul><li><p>Javascript/Typescript: Vue, React, Ember</p></li><li><p>Node: Express, Koa, Featherjs</p></li><li><p>Ruby: Ruby on Rails, Sinatra</p></li><li><p>AWS, GCP</p></li></ul><h3>Noteworthy aspects</h3><ul><li><p>Wide variety of projects and companies</p></li><li><p>Greenfield projects as well as existing code bases</p></li></ul><hr><h2>Senior Software Engineer, HERE</h2><blockquote><p>HERE Global BV, Berlin (November 2017 till March 2018)</p></blockquote><h3>Main responsibilities</h3><ul><li><p>planning and implementation of a web based floor plan and indoor navigation system with touch controls and full access control system</p></li><li><p>integration of meeting room related functionality into Office 365</p></li></ul><h3>Key Technologies</h3><ul><li><p>Javascript: Vue, SVG, MapGL</p></li><li><p>Node: Express</p></li><li><p>IOT: Bluetooth controlled sensors</p></li><li><p>Azure Cloud and Microsoft Office 365 integration</p></li></ul><hr><h2>Senior Software Engineer, FromAtoB</h2><blockquote><p>FromAtoB GmbH, Berlin (August 2016 till September 2017)</p></blockquote><h3>Main responsibilities</h3><ul><li><p>development of a single-page application in the travel sector</p></li><li><p>lead the introduction of Vue into the process</p></li><li><p>rebuilt complete website funnel and replaced old application step-by-step</p></li><li><p>while maintaining the Ruby-on-Rail
3 months ago
</main>
<div id="spacer"></div>
<header id="header">
<a href="/">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 832.4 143.1">
<path id="header-underscore"
d="M832.4 131.1q0 5.5-3.1 8.6-3 3.4-8.2 3.3h-75.5q-5.2 0-8.2-3.3-1.7-1.6-2.4-3.8-.7-2.3-.7-4.8 0-5.5 3.1-8.7 1.6-1.7 3.7-2.4 2.2-.8 4.5-.8h75.5q5.2 0 8.2 3.2 3 3.1 3 8.7z" />
<path id="header-bracket"
d="M731.9 81.4q0 6.7-6.5 10.7l-1 .6-74.3 39.2q-2.5 1.3-5.2 1.2-4.8 0-8.1-3.8-3.2-3.6-3.2-8.4 0-3.3 1.7-6 1.8-2.9 4.6-4.4l55.3-29.1-55.3-29q-2.8-1.6-4.6-4.3-1.7-2.7-1.7-6.2 0-4.7 3.2-8.4 3.3-4 8-3.7 2.7 0 5.3 1.2l74.4 39.2q3.3 1.7 5.3 4.7 2 2.8 2 6.5z" />
<path id="header-r"
d="M588.7 66.5q0 5-3.5 8.5-3.5 3.4-8.1 3.5-4.4 0-8.3-4.3-10-10.7-20.9-10.6-2.2 0-4.3.3-2.1.3-4 1-1.8.6-3.7 1.6-1.7 1-3.4 2.3-1.7 1.3-3.3 2.9-7.8 8.2-7.6 19.7V131q0 5.5-3.1 8.6-3 3.4-8.3 3.3l-2.2-.2q-1-.1-2.2-.5-1-.3-2-1-1-.6-1.8-1.6-1.7-1.6-2.4-3.8-.7-2.3-.7-4.8V51.6q0-5.4 3-8.6 3-3.4 8.3-3.3 2 0 3.7.6 1.8.6 3.3 1.8 1.4 1 2.2 2.7 1 1.5 1.6 3.3 11.8-8.4 27-8.4 10.6 0 21 5 11.3 5.4 17.2 14.5 2.5 3.7 2.5 7.3z" />
<path id="header-h"
d="M483.9 131.1q0 5.5-3.1 8.6-3 3.4-8.3 3.3-5.2 0-8.2-3.3-3.2-3.1-3.1-8.6V84.8q0-4.6-1.5-8.2-1.4-3.5-4.4-6.9-2.1-2-4.3-3.4-2.2-1.4-4.7-2-2.4-.7-5.3-.7-4.3 0-7.8 1.5-3.3 1.5-6.4 4.6-5.9 6.3-5.8 15v46.4q0 5.5-3 8.6-3.1 3.4-8.4 3.3l-2.2-.2q-1-.1-2.2-.5-1-.3-2-1-1-.6-1.8-1.6-1.7-1.6-2.4-3.8-.7-2.3-.7-4.8V11.9q0-5.5 3-8.6 3-3.4 8.3-3.3 5.2 0 8.2 3.3 3.2 3.1 3.2 8.6v33q1.5-1 3-1.6l3.2-1.2 3.4-1q1.6-.5 3.3-.8l3.5-.4 3.6-.2q4.4 0 8.5 1 4.1.7 7.9 2.4 3.8 1.6 7.3 4.1 3.5 2.5 6.6 5.8Q484 66 484 84.8z" />
<path id="header-e"
d="M387.5 111.1q0 1.2-.3 2.3-.1 1-.5 2l-.9 2q-6.6 12-19.4 19-12 6.6-25.4 6.6-20.8 0-35.8-14.6-15.9-15-15.9-37 0-22.1 15.9-37.1 15-14.6 35.8-14.6 3.9 0 7.8.7 4 .7 8 2.2 9.2 3.1 18.2 10 6 4.6 9.1 9.3 3.3 4.7 3.3 10 0 1.3-.3 2.5-.2 1.3-.7 2.4-1.5 3.4-5 5.3l-56.9 32.2q7.2 4.9 16.5 4.9 7.2 0 12.6-2.5 5.5-2.5 9.7-7.4l.7-1 .8-1 .9-1.3 1-1.5q3.3-4.2 7.4-5.1l1.8-.2q4.4 0 8 3.4 3.6 3.5 3.6 8.5zm-29.9-42.7q-7.2-4.8-16.6-4.8-6 0-11 2-4.9 1.8-9.3 6-4.5 4-6.7 9-2 4.8-2 10.8l.1 2.9z" />
<path id="header-o"
d="M286.8 91.4q0 4.2-.6 8.3-.6 4-1.8 7.7-1.1 3.8-2.9 7.4-1.7 3.5-4 6.9-2.4 3.3-5.2 6.1Q258 143 237.7 143T203 128q-14.3-15.2-14.3-36.6 0-21.5 14.3-36.6 14.4-15 34.7-15 4 0 7.8.5 3.9.7 7.5 1.9t7 3q3.3 1.9 6.4 4.3 3.2 2.4 5.9 5.4 14.4 15 14.5 36.5zm-22.6 0q0-2.4-.4-4.5-.2-2.2-.9-4.2-.6-2-1.5-3.9-1-2-2.2-3.7-1.2-1.7-2.8-3.4-4-4.2-8.6-6.1-4.5-2-10-2-11 0-18.7 8.2-7.8 8-7.8 19.6 0 11.4 7.8 19.7 7.8 8 18.6 8 5.6 0 10.1-1.9 4.6-2 8.6-6.1 4-4.3 5.8-9 2-4.9 2-10.7z" />
<path id="header-k"
d="M186.3 131q0 4.7-3.3 8.3-1.5 1.8-3.7 2.7-2 1.1-4.3 1.1-3.5 0-6.6-2L119.2 105v26q0 5.5-3 8.6-3.1 3.4-8.4 3.3l-2.2-.2q-1-.1-2.2-.5-1-.3-2-1-1-.6-1.8-1.6-1.7-1.6-2.4-3.8-.7-2.3-.7-4.8V11.9q0-5.5 3-8.6 3-3.4 8.3-3.3 5.2 0 8.2 3.3 3.2 3.1 3.2 8.6v65.9l49.2-36.1q3.2-2 6.6-2 4.7 0 8 3.7t3.3 8.4q-.2 6-5 9.6l-41 30 41 29.9q2.3 1.7 3.6 4.2 1.4 2.5 1.4 5.4z" />
<path id="header-tilde"
d="M73.1 91q0 2-.6 3.9T71 98.6q-3.2 5.7-8.9 8.5-5.6 2.8-12.9 2.8-8.8 0-18-7.8-2.4-2.3-4.5-3.7-2.1-1.5-3-1.7-1.5 0-2.1.3l-.8 1.3q-.3.7-.8 1.2l-1 1-.9.8q-2.7 2-6.4 2-1.7 0-3.2-.3-1.4-.3-3-1.1-1.5-.8-2.6-2.1-2.8-3.1-2.8-8v-1.3q0-.7.2-1.2l.2-1 .4-1 .4-1q.1-.6.5-1.1l.5-1q3.2-5.7 8.8-8.5 5.7-2.9 13-2.9 3.2 0 6.2 1 3 .9 6 2.7 2.9 1.6 5.7 4.2 5.2 4.6 7.6 5.4 1 0 1.6-.2l.7-.4q.3-.1.5-.4 3.6-5.6 9.2-5.6 5.7 0 8.8 3.5 2.8 3 2.8 8z" />
</svg>
Homepage of
<div class=p-name>
<span class=first-name>Norman</span>
<span class=last-name>Köhring</span>
</div>
Code Artist
</a>
</header>
<div id="main-menu">
<menu>
<li><a title="What I do these days" href="/now">/now</a></li>
<li><a title="Today I Learned" href="/til">/til</a></li>
<li><a title="My projects" href="/projects">/projects</a></li>
<li><a title="Weblog" href="/blog">/blog</a></li>
<li><a title="CV / Resume" href="/cv">/cv</a></li>
<li><a title="Tools I use" href="/stack">/stack</a></li>
<li><a title="Hardware I use" href="/setup">/setup</a></li>
<li><a title="Shared Bookmarks" href="/bookmarks">/links</a></li>
3 months ago
</menu>
</div>
<footer id="footer">
</footer>
<script defer>
const el = document.getElementById('header')
const threshhold = 24
let headerIsSmall = false
window.addEventListener("scroll", () => {
if (window.scrollY > threshhold && !headerIsSmall) {
el.classList.add('small')
headerIsSmall = true
} else if (window.scrollY <= threshhold && headerIsSmall) {
el.classList.remove('small')
headerIsSmall = false
}
})
</script>
<script async data-goatcounter=https://koehr.goatcounter.com/count src=//gc.zgo.at/count.js></script>
</body>
</html>