diff --git a/apps/rix1.dev-lume/about.md b/apps/rix1.dev-lume/about.md
index 758d9ea..e7a2efa 100644
--- a/apps/rix1.dev-lume/about.md
+++ b/apps/rix1.dev-lume/about.md
@@ -3,34 +3,39 @@ title: Hi, I'm Rikard đź‘‹
layout: layouts/center-content.tsx
---
-I've found my home in product community of Oslo, in the intersection of technology, design, and sustainable energy solutions. After I joined [Otovo](https://otovo.com/) as their fourth engineer, I've helped grow the company from a small team to where we are today. We have installed solar power in tens of thousands of homes across 13 European countries. And we're [not done](https://twitter.com/rix1/status/1688663122385457153) yet.
+I've found my home in product community of Oslo, in the intersection of technology, design, and sustainable energy solutions. After I joined [Otovo](https://otovo.com/) in 2016 as one of their first employees, I've helped grow the company to where we are today: Hundreds of employees, precence in 13 markets and tens of thousands of homes with solar panels on their roofs
+(and we're [not done](https://twitter.com/rix1/status/1688663122385457153) yet).
-Life's path is never straight. During my informatics studies at NTNU in Trondheim, [my partner](https://github.com/sirihol) and I spent a year on exchange at UCT in Cape Town. When we weren’t studying, visiting vineyards or at the beach, I worked for a Norwegian startup, [CosyTech](https://www.crunchbase.com/organization/cosytech). We [won a few competitions](https://twitter.com/Torildnm/status/617090179862523908), but never found product-market fit. No customers means no revenue, so we decided to close down after 10 months. [Andrroy](https://github.com/andrroy) and I proceeded to freelance together for the remainder of our formal studies.
+I come from a life of priviledge, there's no doubt about that. I've probably been given more opportunities than most, but I also believe in making my own luck. I've come to understand that both history and life is only as straight as the stories we tell. So here's mine:
-An unexpected turn of events while writing my [master's thesis](https://ntnuopen.ntnu.no/ntnu-xmlui/handle/11250/2403242), lead me to cancel my contract with [BEKK](https://www.bekk.no/), where I was supposed to start as a full-time consultant later that year. Instead, I accepted an offer from [DNB](https://www.dnb.no/), Norway's largest bank. This was thanks to productive procrastination a hackathon that [went surprisingly well](https://www.dnb.no/dnbnyheter/no/din-okonomi/dnb-utfordrer-studenter-til-a-vise-seg-frem).
+During my informatics studies at NTNU in Trondheim, [my partner](https://www.instagram.com/siriholtnaes/) and I spent a year on exchange at UCT in Cape Town. When we weren’t studying, visiting vineyards or at the beach, I worked remote for a Norwegian startup, [CosyTech](https://www.crunchbase.com/organization/cosytech). This was my first real job in the world of product. After [winning a few competitions](https://twitter.com/Torildnm/status/617090179862523908), Visa invited us to wine and dine at at their HQ in London – a weird but fun trip. CosyTech however, never found product-market fit. No customers meant no revenue, so we decided to close shop after ~12 months.
-I was a bit hesitant to joining such a large organisation, but the folks at DNB convinced us to spend two weeks at the bank to get a feel for it. It was an exciting experience; we started what eventually would morph into their [Open Banking platform](https://developer.dnb.no/). However, my feets were still a bit cold. After a lot of back and forth, I ended up cancelling my second contract in just 3 weeks.
+[Andrroy](https://github.com/andrroy) and I then proceeded to freelance part-time together for the remainder of our formal studies. We built an e-commerce site for [wedding dresses](https://whitestory.no/), we MVP'd an [online learning platform](https://twitter.com/corsane_com), and spent about a year working on a "game" that was played in an [fMRI machine](https://www.biorxiv.org/content/10.1101/2020.05.11.084202v1.abstract) as part of a research project. We had no idea what we were doing back then, but we were good enough that people paid us to play and have fun.
-That morning, I walked back into the office of a client I had been working with for the past 6 months – the newly [founded solar startup, Otovo](https://www.dn.no/solenergi/grunder/energi/selger-teslaen-for-a-folge-i-elon-musks-fotspor/1-1-5560478). Although they were surprised to see me, they got really excited when I asked if I could get a full-time job.
+In an unexpected turn of events while writing my [master's thesis](https://ntnuopen.ntnu.no/ntnu-xmlui/handle/11250/2403242) lead me to break my upcoming full-time position at [BEKK](https://www.bekk.no/), and accept a job offer from [DNB](https://www.dnb.no/), Norway's largest bank. This was thanks to productive procrastination a hackathon in 2016 that [went surprisingly well](https://www.dnb.no/dnbnyheter/no/din-okonomi/dnb-utfordrer-studenter-til-a-vise-seg-frem).
-After a quick chat with [Simen](https://twitter.com/simenfur) and [Andreas](https://twitter.com/athornor), I signed a contract for a engineering position with Otovo. 2016 was a crazy year. Now, eight years and countless experiences later, I'm still having fun chasing the sun together with Otovo from our [office in Torggata](https://maps.app.goo.gl/QVtntdVEEdDjDazK7).
+I was a bit hesitant to joining such a large organisation, but the kind folks at DNB convinced us to spend two weeks at the bank to get a feel for it. It was an exciting experience: We started what eventually would morph into their [Open Banking platform](https://developer.dnb.no/). However fun, my feets were still a bit cold. After a lot of back and forth, I ended up cancelling my second contract in just 3 weeks.
-> ### I never worked a day in my life, I just laid back and let the big beat lead me
->
-> [Fatboy Slim's remix of Jungle Brothers](https://soundcloud.com/theclassicmixcdseries/on-the-floor-at-the-boutique-fatboy-slim)
+That morning, I walked back into the office of a client Andrroy and I had been working with for the past 6 months – the newly [founded solar startup, Otovo](https://www.dn.no/solenergi/grunder/energi/selger-teslaen-for-a-folge-i-elon-musks-fotspor/1-1-5560478). Beliving they had lost me to the bank, [Andreas](https://twitter.com/athornor) and [Simen](https://twitter.com/simenfur) were surprised to see me. The surprise turned into excitement when I asked if I could join full-time. I signed and started my first full-time postition as a software engineer that day, and never looked back.
+
+2016 was a crazy year. Now, eight+ years and countless experiences later, I'm still having fun chasing the sun together with Otovo.
-These experiences were never strategic career moves for me. They were lessons in navigating uncertainty and the importance of having fun while placing bets on who to surround yourself with.
+As you might figure, these experiences were never strategic career moves for me. However, I learned some important lessons in:
-Away from the keyboard, I find cooking extremely interesting. Ideally for larger crowds - as I come from a big family. I have fun when I can be curious, have attention to detail, do _just enough™_ planning and focus on playful execution.
+1. Navigating uncertainty.
+2. The importance of having fun.
+3. Placing bets on who to surround yourself with.
-I'm definitively a dog person, as I've had two Belgian shepherds since 2007. Dogs are pretty great. They not only provide unconditional love, but are also a daily reminder that patience, commitment and consistency go a long way.
+> ### I never worked a day in my life, I just laid back and let the big beat lead me
+>
+> [Fatboy Slim - Because I Got It Like That (remix) ](https://soundcloud.com/theclassicmixcdseries/on-the-floor-at-the-boutique-fatboy-slim)
-Life is better with music, which is why I listen to it [pretty much all day](https://www.last.fm/user/rikardeide). Long distance running and tap dancing are my go-to activities for a mental and physical balance.
+Away from the keyboard, I like to cook. Ideally for larger crowds - either for a bunch of kids at [Feriekolonien](https://www.feriekolonien.no/), or for my large family. I have fun when I can be curious, have attention to detail, do _just enough™_ planning and focus on playful execution.
-In conclusion, I approach work as I do life\* – with a blend of ambition, inspiration and a hands-on attitude. Whether I'm leading product people at Otovo, planning a mission as a squad leader in the [Norwegian Army Reserves](https://www.forsvaret.no/heimevernet) or cooking for children at [Feriekolonien](https://www.feriekolonien.no/), I like mixing theory and practice. I care about about making an impact, not just making noise.
+I think dogs are pretty great. We've had three Belgian shepherds since 2007: [Sam & Tiva](https://s3.eu-north-1.amazonaws.com/rix1.dev/dogs/sam-tiva-bamble.jpg) and most recently [Yoda](https://s3.eu-north-1.amazonaws.com/rix1.dev/dogs/yoda-oslo.jpg) 🫶. A constant source of unconditional love, but also a daily reminder that patience, commitment and consistency go a long way.
-\*I don't think about it that differently to be honest
+Life is better with music, which is why you'll always find me [listening to it](https://www.last.fm/user/rikardeide). Semi-long distance running and dancing are my go-to activities for keeping in shape.
That should do it for now. If you still haven't gotten enough, [here's some content](https://old.rix1.dev/posts) from my old site that still haven't been ported.
-_Cheers - Rix1_
+Cheers, Rix1 ✌️
diff --git a/apps/rix1.dev-lume/globals.css b/apps/rix1.dev-lume/globals.css
index 8cb4d63..08d5c26 100644
--- a/apps/rix1.dev-lume/globals.css
+++ b/apps/rix1.dev-lume/globals.css
@@ -3,176 +3,227 @@
@tailwind utilities;
:root {
- --scale-timing: 0.15s;
- --image-size: 280px;
+ --scale-timing: 0.15s;
+ --image-size: 280px;
}
html,
body {
- padding: 0;
- margin: 0;
-
- font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,
- Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;
+ padding: 0;
+ margin: 0;
+
+ font-family:
+ -apple-system,
+ BlinkMacSystemFont,
+ Segoe UI,
+ Roboto,
+ Oxygen,
+ Ubuntu,
+ Cantarell,
+ Fira Sans,
+ Droid Sans,
+ Helvetica Neue,
+ sans-serif;
}
* {
- box-sizing: border-box;
+ box-sizing: border-box;
}
mark {
- background-color: hsl(333, 71%, 90%);
- color: #db2777;
- padding: 0 0.25rem;
- border-radius: 2px;
+ background-color: hsl(333, 71%, 90%);
+ color: white;
+ font-size: 95%;
+ padding: 0.3rem 0.4rem 0.4rem;
+ line-height: 1;
+ border-radius: 6px;
+
+ --tw-gradient-from: #ea5634;
+ --tw-gradient-to: #db2777;
+ --tw-gradient-stops: var(--tw-gradient-from),
+ var(--tw-gradient-to, rgba(234, 86, 52, 0));
+ background-image: linear-gradient(
+ to right,
+ var(--tw-gradient-stops)
+ ) !important;
+ display: inline-block;
+}
+
+mark.playful {
+ transform: rotate(-1deg);
+ transition: transform 0.3s ease;
+}
+
+mark.playful:hover {
+ animation: wobble 0.5s ease-in-out;
+}
+
+@keyframes wobble {
+ 0%,
+ 100% {
+ transform: rotate(-2deg);
+ }
+ 25% {
+ transform: rotate(2deg);
+ }
+ 50% {
+ transform: rotate(-2deg);
+ }
+ 75% {
+ transform: rotate(2deg);
+ }
}
a:not(.clear) {
- --tw-gradient-from: #ea5634;
- --tw-gradient-to: #db2777;
- --tw-gradient-stops: var(--tw-gradient-from),
- var(--tw-gradient-to, rgba(234, 86, 52, 0));
- background-image: linear-gradient(
- to right,
- var(--tw-gradient-stops)
- ) !important;
- background-clip: text !important;
- color: transparent !important;
-
- &:hover {
- --tw-gradient-from: #fca5a5;
- --tw-gradient-to: #f87171;
- }
+ --tw-gradient-from: #ea5634;
+ --tw-gradient-to: #db2777;
+ --tw-gradient-stops: var(--tw-gradient-from),
+ var(--tw-gradient-to, rgba(234, 86, 52, 0));
+ background-image: linear-gradient(
+ to right,
+ var(--tw-gradient-stops)
+ ) !important;
+ background-clip: text !important;
+ color: transparent !important;
+
+ &:hover {
+ --tw-gradient-from: #fca5a5;
+ --tw-gradient-to: #f87171;
+ }
}
#blobby-avatar {
- width: var(--image-size);
- height: var(--image-size);
+ width: var(--image-size);
+ height: var(--image-size);
- background-image: url(https://s3.eu-north-1.amazonaws.com/rix1.dev/first-thursday-450x450.jpg);
- background-size: contain;
- background-position: center;
- background-repeat: no-repeat;
+ background-image: url(https://s3.eu-north-1.amazonaws.com/rix1.dev/first-thursday-450x450.jpg);
+ background-size: contain;
+ background-position: center;
+ background-repeat: no-repeat;
- animation-name: floating;
- animation-duration: 15s;
- animation-timing-function: ease-in-out;
- animation-iteration-count: infinite;
+ animation-name: floating;
+ animation-duration: 15s;
+ animation-timing-function: ease-in-out;
+ animation-iteration-count: infinite;
- mask-image: url(assets/blob.svg);
- mask-size: var(--image-size);
- mask-repeat: no-repeat;
- mask-position: center;
+ mask-image: url(assets/blob.svg);
+ mask-size: var(--image-size);
+ mask-repeat: no-repeat;
+ mask-position: center;
}
@keyframes floating {
- 0% {
- transform: translate(0, 0px);
- }
- 50% {
- transform: translate(0, -12px);
- }
- 100% {
- transform: translate(0, -0px);
- }
+ 0% {
+ transform: translate(0, 0px);
+ }
+ 50% {
+ transform: translate(0, -12px);
+ }
+ 100% {
+ transform: translate(0, -0px);
+ }
}
#blur {
- width: 100%;
- height: 100%;
- top: 0;
- left: 0;
- position: fixed;
- backdrop-filter: blur(75px);
- z-index: -1;
+ width: 100%;
+ height: 100%;
+ top: 0;
+ left: 0;
+ position: fixed;
+ backdrop-filter: blur(75px);
+ z-index: -1;
}
#blob {
- position: absolute;
- inset: 10% 22%;
- background: linear-gradient(135deg, #00eaff, #ff00ab, #ff7b00);
- opacity: 0.7;
- border-radius: 50%;
- z-index: -10;
- animation: move 8s linear infinite, rotate 12s linear infinite;
+ position: absolute;
+ inset: 10% 22%;
+ background: linear-gradient(135deg, #00eaff, #ff00ab, #ff7b00);
+ opacity: 0.7;
+ border-radius: 50%;
+ z-index: -10;
+ animation:
+ move 8s linear infinite,
+ rotate 12s linear infinite;
}
@keyframes rotate {
- from {
- transform: rotate(0deg);
- }
- to {
- transform: rotate(359deg);
- }
+ from {
+ transform: rotate(0deg);
+ }
+ to {
+ transform: rotate(359deg);
+ }
}
@keyframes move {
- 0% {
- transform: translateY(0rem);
- border-radius: 50%;
- }
- 25% {
- border-radius: 40% 60% 50% 50% / 60% 40% 60% 40%;
- }
- 50% {
- transform: translateY(1rem);
- border-radius: 50% 50% 40% 60% / 40% 60% 40% 60%;
- }
- 75% {
- border-radius: 40% 60% 50% 50% / 60% 40% 60% 40%;
- }
- 100% {
- transform: translateY(0rem);
- border-radius: 50%;
- }
+ 0% {
+ transform: translateY(0rem);
+ border-radius: 50%;
+ }
+ 25% {
+ border-radius: 40% 60% 50% 50% / 60% 40% 60% 40%;
+ }
+ 50% {
+ transform: translateY(1rem);
+ border-radius: 50% 50% 40% 60% / 40% 60% 40% 60%;
+ }
+ 75% {
+ border-radius: 40% 60% 50% 50% / 60% 40% 60% 40%;
+ }
+ 100% {
+ transform: translateY(0rem);
+ border-radius: 50%;
+ }
}
[data-pos="center"] {
- top: -50px;
- left: calc(50% - 100px);
- min-width: 200px;
- min-height: 200px;
- position: absolute;
- pointer-events: none;
+ top: -50px;
+ left: calc(50% - 100px);
+ min-width: 200px;
+ min-height: 200px;
+ position: absolute;
+ pointer-events: none;
}
[data-pos="center"] > #blob {
- inset: 0 0;
+ inset: 0 0;
}
.share-icons > a > svg {
- transition: all var(--scale-timing) ease-out;
+ transition: all var(--scale-timing) ease-out;
}
.share-icons > a > small {
- opacity: 0;
- transform: scale(0.5) translateY(-0.5rem);
- color: #db2777;
- transition: all var(--scale-timing) ease-out;
- font-size: 12px;
+ opacity: 0;
+ transform: scale(0.5) translateY(-0.5rem);
+ color: #db2777;
+ transition: all var(--scale-timing) ease-out;
+ font-size: 12px;
}
/* only target svgs with stroke property */
.share-icons > a > svg[stroke] {
- fill: transparent;
+ fill: transparent;
}
.share-icons > a:hover > small {
- opacity: 1;
- transform: scale(1) translateY(0);
- transition: all var(--scale-timing) ease-out;
+ opacity: 1;
+ transform: scale(1) translateY(0);
+ transition: all var(--scale-timing) ease-out;
}
.share-icons > a:hover > svg[stroke] {
- transform: scale(1.2) translateY(-0.5rem);
- stroke: #db2777;
- transition: fill var(--scale-timing) ease-out,
- transform var(--scale-timing) ease-out;
+ transform: scale(1.2) translateY(-0.5rem);
+ stroke: #db2777;
+ transition:
+ fill var(--scale-timing) ease-out,
+ transform var(--scale-timing) ease-out;
}
.share-icons > a:hover > svg:not([stroke]) {
- transform: scale(1.2) translateY(-0.5rem);
- fill: #db2777;
- transition: fill var(--scale-timing) ease-out,
- transform var(--scale-timing) ease-out;
+ transform: scale(1.2) translateY(-0.5rem);
+ fill: #db2777;
+ transition:
+ fill var(--scale-timing) ease-out,
+ transform var(--scale-timing) ease-out;
}