From a570da443586fa3b3490b5add88ea5932456a5b3 Mon Sep 17 00:00:00 2001 From: Alexander Kassouni Date: Mon, 28 Sep 2026 21:35:50 -0700 Subject: site --- site/content/about.md | 14 +++ site/content/blog/_index.md | 5 + site/content/buckminster.md | 14 +++ site/sass/_fonts.scss | 28 +++++ site/sass/_palette.scss | 51 +++++++++ site/sass/style.scss | 122 +++++++++++++++++++++ site/static/buckminster/cat.jpg | Bin 0 -> 272460 bytes site/static/buckminster/cat2.jpg | Bin 0 -> 212048 bytes site/static/buckminster/cat3.jpg | Bin 0 -> 905221 bytes site/static/buckminster/cat4.jpg | Bin 0 -> 269768 bytes site/static/fonts/mono/IBMPlexMono-Bold.woff2 | Bin 0 -> 50380 bytes .../static/fonts/mono/IBMPlexMono-BoldItalic.woff2 | Bin 0 -> 54028 bytes .../static/fonts/mono/IBMPlexMono-ExtraLight.woff2 | Bin 0 -> 49516 bytes .../fonts/mono/IBMPlexMono-ExtraLightItalic.woff2 | Bin 0 -> 53616 bytes site/static/fonts/mono/IBMPlexMono-Italic.woff2 | Bin 0 -> 53408 bytes site/static/fonts/mono/IBMPlexMono-Light.woff2 | Bin 0 -> 49384 bytes .../fonts/mono/IBMPlexMono-LightItalic.woff2 | Bin 0 -> 53920 bytes site/static/fonts/mono/IBMPlexMono-Medium.woff2 | Bin 0 -> 50400 bytes .../fonts/mono/IBMPlexMono-MediumItalic.woff2 | Bin 0 -> 54868 bytes site/static/fonts/mono/IBMPlexMono-Regular.woff2 | Bin 0 -> 49248 bytes site/static/fonts/mono/IBMPlexMono-SemiBold.woff2 | Bin 0 -> 50600 bytes .../fonts/mono/IBMPlexMono-SemiBoldItalic.woff2 | Bin 0 -> 54784 bytes site/static/fonts/mono/IBMPlexMono-Text.woff2 | Bin 0 -> 49832 bytes .../static/fonts/mono/IBMPlexMono-TextItalic.woff2 | Bin 0 -> 55116 bytes site/static/fonts/mono/IBMPlexMono-Thin.woff2 | Bin 0 -> 49264 bytes .../static/fonts/mono/IBMPlexMono-ThinItalic.woff2 | Bin 0 -> 52560 bytes site/static/me.jpg | Bin 0 -> 619311 bytes site/templates/base.html | 29 +++++ site/templates/index.html | 21 ++++ site/templates/page.html | 12 ++ site/templates/section.html | 16 +++ site/zola.toml | 24 ++++ 32 files changed, 336 insertions(+) create mode 100644 site/content/about.md create mode 100644 site/content/blog/_index.md create mode 100644 site/content/buckminster.md create mode 100644 site/sass/_fonts.scss create mode 100644 site/sass/_palette.scss create mode 100644 site/sass/style.scss create mode 100644 site/static/buckminster/cat.jpg create mode 100644 site/static/buckminster/cat2.jpg create mode 100644 site/static/buckminster/cat3.jpg create mode 100644 site/static/buckminster/cat4.jpg create mode 100644 site/static/fonts/mono/IBMPlexMono-Bold.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-BoldItalic.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-ExtraLight.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-ExtraLightItalic.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-Italic.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-Light.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-LightItalic.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-Medium.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-MediumItalic.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-Regular.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-SemiBold.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-SemiBoldItalic.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-Text.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-TextItalic.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-Thin.woff2 create mode 100644 site/static/fonts/mono/IBMPlexMono-ThinItalic.woff2 create mode 100644 site/static/me.jpg create mode 100644 site/templates/base.html create mode 100644 site/templates/index.html create mode 100644 site/templates/page.html create mode 100644 site/templates/section.html create mode 100644 site/zola.toml (limited to 'site') diff --git a/site/content/about.md b/site/content/about.md new file mode 100644 index 0000000..686106d --- /dev/null +++ b/site/content/about.md @@ -0,0 +1,14 @@ ++++ +title = "about" ++++ + +My name is Alexander Kassouni. + +I'm currently a Senior Software Engineer at [Ascend](https://useascend.com) automating insurance accounting with AI. + +Previously, I was a Machine Learning Engineer at [Geminus AI](https://geminus.ai), working on [MLOps](https://en.wikipedia.org/wiki/MLOps) and [bayesian optimization](https://en.wikipedia.org/wiki/Bayesian_optimization) for [industrial processes](https://en.wikipedia.org/wiki/Industrial_processes). + +I graduated magna cum laude from the University of Pennsylvania where I studied Computer Science and Mathematics. + +I live in San Francisco with my wonderful cat [Buckminster](/buckminster). + diff --git a/site/content/blog/_index.md b/site/content/blog/_index.md new file mode 100644 index 0000000..86de138 --- /dev/null +++ b/site/content/blog/_index.md @@ -0,0 +1,5 @@ ++++ + ++++ + +# Blog diff --git a/site/content/buckminster.md b/site/content/buckminster.md new file mode 100644 index 0000000..9507e75 --- /dev/null +++ b/site/content/buckminster.md @@ -0,0 +1,14 @@ +--- +title: Buckminster 🐈 +--- + +I adopted Buckminster in March of 2023. +He has short ears and [7 toes on each of his front paws](https://en.wikipedia.org/wiki/Polydactyl_cat). + + + + + + + + diff --git a/site/sass/_fonts.scss b/site/sass/_fonts.scss new file mode 100644 index 0000000..2299bca --- /dev/null +++ b/site/sass/_fonts.scss @@ -0,0 +1,28 @@ +@use "sass:list"; + +$-faces: ( + 100: ("Thin", "ThinItalic"), + 200: ("ExtraLight", "ExtraLightItalic"), + 300: ("Light", "LightItalic"), + 400: ("Regular", "Italic"), + 450: ("Text", "TextItalic"), + 500: ("Medium", "MediumItalic"), + 600: ("SemiBold", "SemiBoldItalic"), + 700: ("Bold", "BoldItalic"), +); + +$-styles: normal italic; + +@each $weight, $names in $-faces { + @for $i from 1 through 2 { + @font-face { + font-family: "IBM Plex Mono"; + src: url("/fonts/mono/IBMPlexMono-#{list.nth($names, $i)}.woff2") format("woff2"); + font-weight: $weight; + font-style: list.nth($-styles, $i); + font-display: swap; + } + } +} + +$mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; diff --git a/site/sass/_palette.scss b/site/sass/_palette.scss new file mode 100644 index 0000000..b61eb94 --- /dev/null +++ b/site/sass/_palette.scss @@ -0,0 +1,51 @@ +@mixin ayu-dark { + color-scheme: dark; + + --bg: #0F1419; // base00 default background + --bg-alt: #131721; // base01 raised background + --bg-sel: #272D38; // base02 selection background + --grey: #3E4B59; // base03 comments, invisibles + --fg-dim: #BFBDB6; // base04 muted foreground + --fg: #E6E1CF; // base05 default foreground + --fg-alt: #E6E1CF; // base06 + --fg-bright: #F3F4F5; // base07 brightest foreground + + --red: #F07178; // base08 + --orange: #FF8F40; // base09 + --yellow: #FFB454; // base0A + --green: #B8CC52; // base0B + --cyan: #95E6CB; // base0C + --blue: #59C2FF; // base0D + --purple: #D2A6FF; // base0E + --brown: #E6B673; // base0F +} + +@mixin ayu-light { + color-scheme: light; + + --bg: #FAFAFA; // base00 + --bg-alt: #F3F4F5; // base01 + --bg-sel: #F8F9FA; // base02 + --grey: #ABB0B6; // base03 + --fg-dim: #828C99; // base04 + --fg: #5C6773; // base05 + --fg-alt: #242936; // base06 + --fg-bright: #1A1F29; // base07 + + --red: #F07178; // base08 + --orange: #FA8D3E; // base09 + --yellow: #F2AE49; // base0A + --green: #86B300; // base0B + --cyan: #4CBF99; // base0C + --blue: #36A3D9; // base0D + --purple: #A37ACC; // base0E + --brown: #E6BA7E; // base0F +} + +:root { @include ayu-light; } +@media (prefers-color-scheme: dark) { + :root { @include ayu-dark; } +} + +:root[data-theme="dark"] { @include ayu-dark; } +:root[data-theme="light"] { @include ayu-light; } diff --git a/site/sass/style.scss b/site/sass/style.scss new file mode 100644 index 0000000..5ce9f88 --- /dev/null +++ b/site/sass/style.scss @@ -0,0 +1,122 @@ +@use "palette"; +@use "fonts"; + +body { + background: var(--bg); + color: var(--fg); + font-family: fonts.$mono; + line-height: 1.6; + + max-width: 46rem; + margin: 0 auto; + padding: 3rem 1.5rem; +} + +header { + margin-bottom: 2.5rem; + padding-bottom: 0.75rem; + border-bottom: 1px solid var(--grey); +} + +nav { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 1.5rem; + + ul { + display: flex; + gap: 1.5rem; + margin: 0; + padding: 0; + list-style: none; + } +} + +.brand, +.brand:visited { + color: var(--fg-bright); + font-weight: 500; +} + +.brand:hover { + font-weight: 700; +} + +footer { + display: flex; + gap: 1.5rem; + margin-top: 3rem; + padding-top: 0.75rem; + border-top: 1px solid var(--grey); +} + +img { + max-width: 100%; + height: auto; +} + +.centered-img { + display: block; + margin: 2rem auto; +} + +.intro { + display: flex; + align-items: flex-start; + gap: 2.5rem; +} + +.intro-text > p:first-child { + margin-top: 0; +} + +.avatar { + flex: none; + width: 14rem; + height: 14rem; + border-radius: 50%; + object-fit: cover; +} + +@media (max-width: 34rem) { + .intro { + flex-direction: column-reverse; + align-items: center; + } +} + +.post-list { + margin: 0; + padding: 0; + list-style: none; + + li { + display: flex; + justify-content: space-between; + gap: 1rem; + } +} + +time { + color: var(--fg-dim); +} + +strong { + color: var(--orange); + font-weight: 600; +} + +a { + color: var(--blue); + text-decoration: none; +} + +a:visited { + color: var(--purple); +} + +a:hover { + font-weight: 700; + text-decoration: underline; +} diff --git a/site/static/buckminster/cat.jpg b/site/static/buckminster/cat.jpg new file mode 100644 index 0000000..c16791e Binary files /dev/null and b/site/static/buckminster/cat.jpg differ diff --git a/site/static/buckminster/cat2.jpg b/site/static/buckminster/cat2.jpg new file mode 100644 index 0000000..60cdc71 Binary files /dev/null and b/site/static/buckminster/cat2.jpg differ diff --git a/site/static/buckminster/cat3.jpg b/site/static/buckminster/cat3.jpg new file mode 100644 index 0000000..24ebf52 Binary files /dev/null and b/site/static/buckminster/cat3.jpg differ diff --git a/site/static/buckminster/cat4.jpg b/site/static/buckminster/cat4.jpg new file mode 100644 index 0000000..b52c777 Binary files /dev/null and b/site/static/buckminster/cat4.jpg differ diff --git a/site/static/fonts/mono/IBMPlexMono-Bold.woff2 b/site/static/fonts/mono/IBMPlexMono-Bold.woff2 new file mode 100644 index 0000000..6200c49 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-Bold.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-BoldItalic.woff2 b/site/static/fonts/mono/IBMPlexMono-BoldItalic.woff2 new file mode 100644 index 0000000..ec229e3 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-BoldItalic.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-ExtraLight.woff2 b/site/static/fonts/mono/IBMPlexMono-ExtraLight.woff2 new file mode 100644 index 0000000..99bba11 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-ExtraLight.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-ExtraLightItalic.woff2 b/site/static/fonts/mono/IBMPlexMono-ExtraLightItalic.woff2 new file mode 100644 index 0000000..c205402 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-ExtraLightItalic.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-Italic.woff2 b/site/static/fonts/mono/IBMPlexMono-Italic.woff2 new file mode 100644 index 0000000..30591d6 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-Italic.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-Light.woff2 b/site/static/fonts/mono/IBMPlexMono-Light.woff2 new file mode 100644 index 0000000..1bf330c Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-Light.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-LightItalic.woff2 b/site/static/fonts/mono/IBMPlexMono-LightItalic.woff2 new file mode 100644 index 0000000..6dad6ef Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-LightItalic.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-Medium.woff2 b/site/static/fonts/mono/IBMPlexMono-Medium.woff2 new file mode 100644 index 0000000..dd24398 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-Medium.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-MediumItalic.woff2 b/site/static/fonts/mono/IBMPlexMono-MediumItalic.woff2 new file mode 100644 index 0000000..a870c1c Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-MediumItalic.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-Regular.woff2 b/site/static/fonts/mono/IBMPlexMono-Regular.woff2 new file mode 100644 index 0000000..8bdb4c4 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-Regular.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-SemiBold.woff2 b/site/static/fonts/mono/IBMPlexMono-SemiBold.woff2 new file mode 100644 index 0000000..a0acc15 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-SemiBold.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-SemiBoldItalic.woff2 b/site/static/fonts/mono/IBMPlexMono-SemiBoldItalic.woff2 new file mode 100644 index 0000000..3b10ea3 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-SemiBoldItalic.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-Text.woff2 b/site/static/fonts/mono/IBMPlexMono-Text.woff2 new file mode 100644 index 0000000..a58679b Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-Text.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-TextItalic.woff2 b/site/static/fonts/mono/IBMPlexMono-TextItalic.woff2 new file mode 100644 index 0000000..15d1ca1 Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-TextItalic.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-Thin.woff2 b/site/static/fonts/mono/IBMPlexMono-Thin.woff2 new file mode 100644 index 0000000..ae59e0a Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-Thin.woff2 differ diff --git a/site/static/fonts/mono/IBMPlexMono-ThinItalic.woff2 b/site/static/fonts/mono/IBMPlexMono-ThinItalic.woff2 new file mode 100644 index 0000000..b6f92fd Binary files /dev/null and b/site/static/fonts/mono/IBMPlexMono-ThinItalic.woff2 differ diff --git a/site/static/me.jpg b/site/static/me.jpg new file mode 100644 index 0000000..5b9a4b4 Binary files /dev/null and b/site/static/me.jpg differ diff --git a/site/templates/base.html b/site/templates/base.html new file mode 100644 index 0000000..7a12bf2 --- /dev/null +++ b/site/templates/base.html @@ -0,0 +1,29 @@ + + + + + + {% block title %}kassouni.net{% endblock title %} + + + + +
+ +
+
+ {% block content %}{% endblock content %} +
+ + + diff --git a/site/templates/index.html b/site/templates/index.html new file mode 100644 index 0000000..ea40d1d --- /dev/null +++ b/site/templates/index.html @@ -0,0 +1,21 @@ +{% extends "base.html" %} +{% block content %} + +

Hello there!

+ +
+
+

Welcome to the personal website of Alex Kassouni.

+ +

+ I'm a software engineer with interests in machine learning, + programming languages, and mathematics. +

+ +

If you'd like to get in touch, just shoot me an email at contact@kassouni.net.

+
+ + Alex Kassouni +
+ +{% endblock content %} diff --git a/site/templates/page.html b/site/templates/page.html new file mode 100644 index 0000000..dca2406 --- /dev/null +++ b/site/templates/page.html @@ -0,0 +1,12 @@ +{% extends "base.html" %} + +{% block title %}{{ page.title }} · kassouni.net{% endblock title %} + +{% block content %} +
+

{{ page.title }}

+ {% if page.date %}{% endif %} + + {{ page.content | safe }} +
+{% endblock content %} diff --git a/site/templates/section.html b/site/templates/section.html new file mode 100644 index 0000000..22594c4 --- /dev/null +++ b/site/templates/section.html @@ -0,0 +1,16 @@ +{% extends "base.html" %} + +{% block title %}{{ section.title | default(value="blog") }} · kassouni.net{% endblock title %} + +{% block content %} +{{ section.content | safe }} + + +{% endblock content %} diff --git a/site/zola.toml b/site/zola.toml new file mode 100644 index 0000000..0456e32 --- /dev/null +++ b/site/zola.toml @@ -0,0 +1,24 @@ +# The URL the site will be built for +base_url = "https://kassouni.net" + +title = "kassouni.net" +description = "The personal website of Alex Kassouni." +author = "Alexander Kassouni" + +# Whether to generate a feed, and under what name (defaults to atom.xml) +generate_feeds = true +feed_filenames = ["rss.xml"] + +# Whether to automatically compile all Sass files in the sass directory +compile_sass = true + +# Whether to build a search index to be used later on by a JavaScript library +build_search_index = false + +[markdown] + +[markdown.highlighting] +theme = "catppuccin-mocha" + +[extra] +# Put all your custom variables here -- cgit v1.3.1