505 lines
23 KiB
HTML
505 lines
23 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
|
||
<head>
|
||
<meta charset="UTF-8" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||
<title>Samantha Vero Friis</title>
|
||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||
<link
|
||
href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500&family=IBM+Plex+Sans:ital,wght@0,300;0,400;0,500;1,300&display=swap"
|
||
rel="stylesheet" />
|
||
<script src="https://unpkg.com/htmx.org@2.0.4"></script>
|
||
<link rel="stylesheet" href="/static/output.css"/>
|
||
</head>
|
||
|
||
<body class="theme-root day " id="themeRoot">
|
||
|
||
<nav>
|
||
<a class="nav-logo" href="#">samantha_vero_friis</a>
|
||
<div class="nav-links">
|
||
<a onclick="openOverlay()" >login</a>
|
||
|
||
</div>
|
||
</nav>
|
||
|
||
<div class="shell">
|
||
<aside>
|
||
<div class="row">
|
||
<img id="day" src="/static/icons/lovesun.png" width="30px" class="hidden" onclick="makeday()" >
|
||
<img id="night" src="/static/icons/sleepmoon.png" width="30px" onclick="makenight()" >
|
||
</div>
|
||
<div>
|
||
<p class="sidebar-label">navigate</p>
|
||
<div class="sidebar-links">
|
||
<a href="#about">about</a>
|
||
<a href="#experience">experience</a>
|
||
<a href="#education">education</a>
|
||
<a href="#opinion">opinion</a>
|
||
<a href="#automation">automation</a>
|
||
<a href="#interests">interests</a>
|
||
<a class="hidden" href="/42">42</a>
|
||
<a href="#newsletter">newsletter</a>
|
||
<a href="#contact">contact</a>
|
||
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<p class="sidebar-label">skills</p>
|
||
<div class="skill-list">
|
||
<div class="skill-item">Excel</div>
|
||
<div class="skill-item">Python</div>
|
||
<div class="skill-item">SQL</div>
|
||
<div class="skill-item">Go</div>
|
||
<div class="skill-item">Git</div>
|
||
</div>
|
||
</div>
|
||
<div>
|
||
<p class="sidebar-label">location</p>
|
||
<div style="font-family:var(--ff-mono);font-size:0.75rem;color:var(--muted);">Denmark<br>Aalborg Øst, 9220</div>
|
||
</div>
|
||
<div>
|
||
<p class="sidebar-label">languages</p>
|
||
<div class="lang-row">
|
||
<span class="lang-badge">Danish</span>
|
||
<span class="lang-badge">English</span>
|
||
</div>
|
||
</div>
|
||
|
||
<div style="flex: 1;"></div>
|
||
</aside>
|
||
<main id="about">
|
||
<section class="hero">
|
||
<p class="hero-eyebrow">About Me · 2026</p>
|
||
<h1>Samantha<br><span>Vero Friis</span>
|
||
</h1>
|
||
<p class="hero-bio">Bachelor's student in Business Administration seeking an entry-level analyst or
|
||
finance-related role while studying. Strong numerical skills, advanced Excel, and experience in company, risk,
|
||
and financial analysis. Analytical, detail-oriented, and efficiency-focused.</p>
|
||
<div class="hero-meta">
|
||
<span>
|
||
<div hx-get="/status" hx-trigger="load" hx-swap="outerHTML"></div>
|
||
<span class="exp-tag">samantha42.xyz</span>
|
||
<span class="exp-tag">me@samantha42.xyz</span>
|
||
</div>
|
||
</section>
|
||
<section id="experience">
|
||
<div class="section-head">
|
||
<h2>experience</h2>
|
||
</div>
|
||
<div class="exp-grid">
|
||
<div class="exp-card" onclick="window.location.href='#research'">
|
||
<div class="exp-header">
|
||
<span class="exp-title">Independent Equity Research</span>
|
||
<span class="exp-tag">finance</span>
|
||
</div>
|
||
<p class="exp-body">Fundamental analysis using SEC filings (10-K, 10-Q) and earnings reports. Assess
|
||
profitability, liquidity, risk factors, and long-term business sustainability. Handle incomplete or
|
||
low-transparency information through structured cross-validation.</p>
|
||
<a class="navigate" href="#research">// Go to Analysis</a>
|
||
</div>
|
||
<div class="exp-card" onclick="window.location.href='#automation'">
|
||
<div class="exp-header">
|
||
<span class="exp-title">Technical Tools & Automation</span>
|
||
<span class="exp-tag">engineering</span>
|
||
</div>
|
||
<p class="exp-body">Build lightweight backend tools to automate repetitive analytical and operational tasks.
|
||
Python for data processing, validation, and workflow automation. Lightweight online services in Go,
|
||
focusing on speed and reliability.</p>
|
||
<a class="navigate" href="#automation">// Go to Tools</a>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="education">
|
||
<div class="section-head">
|
||
<h2>education</h2>
|
||
</div>
|
||
<div class="edu-grid">
|
||
<div class="edu-card">
|
||
<div class="edu-year">2025 — present</div>
|
||
<div>
|
||
<div class="edu-degree">Bachelor of Economics & Business Administration (HA)</div>
|
||
<div class="edu-inst">Aalborg University · Expected 2028</div>
|
||
</div>
|
||
</div>
|
||
<div class="edu-card">
|
||
<div class="edu-year">2024 — 2025
|
||
<br>
|
||
<span class="edu-tag tag-dropped">discontinued</span>
|
||
</div>
|
||
<div class="edu-body">
|
||
<div class="edu-degree">Mathematics-Technology (BSc)</div>
|
||
<div class="edu-inst">Aalborg University · 1 semester</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div class="edu-card">
|
||
<div class="edu-year">2020 — 2023</div>
|
||
<div>
|
||
<div class="edu-degree">HTX – Technical Upper Secondary Education</div>
|
||
<div class="edu-inst">Viden Gymnasier</div>
|
||
<div class="edu-detail">Mathematics A, Biology B · Study project: Mathematics & Technology</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="opinion">
|
||
<div class="section-head">
|
||
<h2>opinion</h2>
|
||
</div>
|
||
<div class="opinion-grid">
|
||
<a class="opinion-link" href="/cinema">cinema</a>
|
||
<a class="opinion-link" href="/finance">finance</a>
|
||
<a class="opinion-link" href="/infra">infra</a>
|
||
</div>
|
||
</section>
|
||
<section id="automation">
|
||
<div class="page-header">
|
||
<h2 class="page-title">Technical Tools & Automation</h2>
|
||
<span class="page-sub">engineering/programing</span>
|
||
</div>
|
||
<div class="exp-grid">
|
||
<p class="exp-body">
|
||
The task here is simple: to reduce work, it's a simple investment. The choice of picking the correct
|
||
bottleneck is as important as the tool itself, as this gives it use. If it's never used, it never creates
|
||
value. The same goes for uptime, it's important that stability is almost perfect, as downtime undermines
|
||
the utility of having the tool. Remember that making and using a tool also creates debt for future
|
||
maintenance of the tool.
|
||
<br>
|
||
To adhere to this, I often choose Golang or Python as they are cheap to maintain. Golang has good
|
||
stability because it is easy to code and compile checks give early error detection. A word of caution on
|
||
AI generated tools: while they are cheap to make, the maintenance debt grows exponentially, as the code is
|
||
often poorly understood by the team and difficult to reason about over time.
|
||
|
||
</p>
|
||
<div class="exp-card" >
|
||
<div class="exp-header">
|
||
<span class="exp-title">Portfolio Engine</span>
|
||
</div>
|
||
<p class="exp-body">A lightweight portfolio and financial data backend written in Go. Tracks companies,
|
||
currencies, revenue reports, and trades across configurable time periods — replacing spreadsheets with a
|
||
proper database, REST API, and interactive shell.</p>
|
||
<span class="exp-title">Roadmap</span>
|
||
<ul style="padding: 20px;">
|
||
<li class="exp-body">Price update endpoint</li>
|
||
<li class="exp-body">Multi-currency conversion</li>
|
||
<li class="exp-body">Frontend dashboard</li>
|
||
<li class="exp-body">Shares outstanding history database table</li>
|
||
<li class="exp-body">Earnings per share (EPS) based on shares owned</li>
|
||
<li class="exp-body">First-In, First-Out (FIFO) realized gains</li>
|
||
<li class="exp-body">Dividends earned and related taxes</li>
|
||
<li class="exp-body">Total tax obligations</li>
|
||
</ul>
|
||
<a class="outlink" href="https://git.samantha42.xyz/samantha/Portfolio-Engine">Git repo</a>
|
||
</div>
|
||
<div class="exp-card">
|
||
<div class="exp-header">
|
||
<span class="exp-title">Accounting Management</span>
|
||
</div>
|
||
<p class="exp-body">
|
||
A lightweight, SQL-backed, web-based CLI system designed to track assets and liabilities. The goal is to
|
||
provide a simple, fast, and scalable financial tracking tool that can grow from personal use to more
|
||
advanced scenarios.</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="research">
|
||
<div class="page-header">
|
||
<h2 class="page-title">Equity Research</h2>
|
||
</div>
|
||
|
||
<div class="exp-card">
|
||
<div class="exp-header">
|
||
<span class="exp-title">Story vs Fundamental value</span>
|
||
</div>
|
||
<p class="exp-body">
|
||
|
||
The truth I keep coming back to is simple: find value grounded in the fundamental numbers of a company.
|
||
<br>
|
||
My approach is rooted in fundamental analysis using SEC filings (10-K, 10-Q), earnings reports, profitability, liquidity, risk factors, and long-term business sustainability. In low-transparency situations I rely on structured cross-validation across sources.
|
||
<br>
|
||
A pattern I keep seeing is CEOs speaking just close enough to reality to generate a short-term price boost, then moving the goalposts when reality catches up. What companies state in filings and what they communicate to retail or even professional investors can be two very different stories. Guidance only needs to reach far enough into the future to say almost anything.
|
||
</p>
|
||
</div>
|
||
<br>
|
||
<div class="section-head">
|
||
<h2>Current stock analysis</h2>
|
||
</div>
|
||
<div class="exp-card">
|
||
<div class="exp-header">
|
||
<span class="exp-title">MSTR: Strategy<span style="color: red;"> (Sell)</span></span>
|
||
</div>
|
||
<p class="exp-body">
|
||
The company only owns btc by issuing debt and preferred stock offering.
|
||
<br>
|
||
The company is a ponzi scheme at its best.
|
||
</p>
|
||
<a class="outlink" href="/static/pdf/mstr.pdf" target="_blank">Read file</a>
|
||
</div>
|
||
<br>
|
||
<div class="exp-card">
|
||
<div class="exp-header">
|
||
<span class="exp-title">Novo.B/NVO: Novo Nordisk A/S<span style="color: green"> (buy)</span></span>
|
||
</div>
|
||
<p class="exp-body">
|
||
The product sales of wieght loss drugs are highclass, pipeline is undervalued.
|
||
<br>
|
||
Pipeline and wegovy pil is not reconsiced correctly as high focus on expireation of current sold product. high pisimistic view of pipeline.
|
||
</p>
|
||
<a class="outlink" href="/static/pdf/novo.pdf" target="_blank">Read file</a>
|
||
</div>
|
||
<br>
|
||
</section>
|
||
<section id="newsletter">
|
||
<div class="page-header">
|
||
<h2 class="page-title">Equity Research · Newsletter</h2>
|
||
</div>
|
||
|
||
<div class="exp-card">
|
||
<div class="exp-header">
|
||
<span class="exp-title">When the numbers say something worth saying.</span>
|
||
</div>
|
||
<p class="exp-body">
|
||
Not a scheduled publication. Sent when there is a specific, well-reasoned case to make — a mispricing, a narrative the market has wrong, or an implied expectation that doesn't survive contact with the filings.
|
||
<br><br>
|
||
Fundamental analysis. SEC filings. No macro noise.
|
||
</p>
|
||
|
||
<div style="display:flex;flex-wrap:wrap;gap:1rem;margin:1.25rem 0;">
|
||
<div style="flex:1;min-width:140px;">
|
||
<div class="exp-title" style="margin-bottom:6px;">// thesis</div>
|
||
<p class="exp-body">A specific position on a specific company. Long or short. With a reason.</p>
|
||
</div>
|
||
<div style="flex:1;min-width:140px;">
|
||
<div class="exp-title" style="margin-bottom:6px;">// filings-first</div>
|
||
<p class="exp-body">10-K, 10-Q, earnings. The numbers, not the press release.</p>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="nl-form" style="display:flex;flex-wrap:wrap;gap:8px;margin-top:1rem;">
|
||
<input
|
||
id="nl-email"
|
||
type="email"
|
||
placeholder="your@email.com"
|
||
autocomplete="email"
|
||
style="font-family:var(--ff-mono);font-size:0.75rem;background:transparent;border:0.5px solid var(--border);color:var(--text);padding:0 12px;height:36px;border-radius:3px;outline:none;min-width:200px;flex:1;"
|
||
/>
|
||
<button
|
||
onclick="nlSubmit()"
|
||
class="navigate"
|
||
style="height:36px;padding:0 16px;cursor:pointer;white-space:nowrap;"
|
||
>subscribe →</button>
|
||
</div>
|
||
<p id="nl-note" style="font-family:var(--ff-mono);font-size:0.65rem;color:var(--muted);margin-top:8px;">// no schedule. no spam. unsubscribe anytime.</p>
|
||
<p id="nl-success" style="display:none;font-family:var(--ff-mono);font-size:0.75rem;color:var(--accent, #5DCAA5);margin-top:8px;">// subscribed. you'll hear from me when something is worth writing about.</p>
|
||
</div>
|
||
</section>
|
||
|
||
<section id="interests">
|
||
<div class="page-header">
|
||
<h2 class="page-title" id="interest">
|
||
Interests
|
||
</h2>
|
||
<button id="interest-button" onclick="toggleInterests()" class="">open ↓</button>
|
||
</div>
|
||
<div id="interests-body" class="hidden">
|
||
<span class="page-sub" id="interest-sub">Fav lists</span>
|
||
<span class="matrix-hidden" id="matrix-hidden">
|
||
Boy: Do not try and bend the spoon. That's impossible. Instead... only try to realize the truth.
|
||
<br>
|
||
Neo: What truth?
|
||
<br>
|
||
Boy: There is no spoon.
|
||
</span>
|
||
<div class="section-head">
|
||
<h2>Movie/Show Top list</h2>
|
||
</div>
|
||
<div class="toplist-group">
|
||
<h3>Top 5 Movies</h3>
|
||
<div class="toplist-body">
|
||
<div class="poster-grid">
|
||
<div class="poster-item posterhover" onclick="bladerunnerClick()">
|
||
<img src="/static/posters/bladerunner2049.jpg" alt="Blade Runner 2049">
|
||
<p>Blade Runner 2049</p>
|
||
</div>
|
||
<div class="poster-item posterhover" onclick="cureClick()">
|
||
<img src="/static/posters/AcureForWellness.jpg" alt="A Cure of Wellness">
|
||
<p>A Cure of Wellness</p>
|
||
</div>
|
||
<div class="poster-item posterhover" onclick="matrixClick()">
|
||
<img src="/static/posters/matrix.jpg" alt="matrix">
|
||
<p>The Matrix</p>
|
||
</div>
|
||
<div class="poster-item posterhover" onclick="draculaClick()">
|
||
<img src="/static/posters/Dracula.webp" alt="Dracula: A Love Tale">
|
||
<p>Dracula: A Love Tale</p>
|
||
</div>
|
||
<div class="poster-item posterhover" onclick="dragonTypewriterClick()">
|
||
<img src="/static/posters/TheGirlwiththeDragonTattoo.webp" alt="Girl with a Dragon Tattoos">
|
||
<p>Girl with a Dragon Tattoo</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="toplist-group">
|
||
<h3>Top 5 Shows</h3>
|
||
<div class="toplist-body">
|
||
<div class="poster-grid">
|
||
<div class="poster-item">
|
||
<img src="/static/posters/foundation.jpg" alt="foundation">
|
||
<p>Foundation</p>
|
||
</div>
|
||
<div class="poster-item">
|
||
<img src="/static/posters/Chernobyl.webp" alt="Chernobyl">
|
||
<p>Chernobyl</p>
|
||
</div>
|
||
<div class="poster-item">
|
||
<img src="/static/posters/Breaking Bad.webp" alt="Breaking Bad">
|
||
<p>Breaking Bad</p>
|
||
</div>
|
||
<div class="poster-item">
|
||
<img src="/static/posters/Avatar.webp" alt="Avatar: The Last Airbender">
|
||
<p>Avatar: The Last Airbender</p>
|
||
</div>
|
||
<div class="poster-item">
|
||
<img src="/static/posters/Adolescence.webp" alt="Adolescence">
|
||
<p>Adolescence</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="section-head">
|
||
<h2>Lunix rice</h2>
|
||
</div>
|
||
<div style="display: flex; align-items: center; gap: 1rem;">
|
||
<p class="exp-body">I love my custom Linux setup. I use Hyprland, which automatically arranges app windows
|
||
on my screen so everything stays organized without dragging things around. I also use Quickshell, which
|
||
lets me customize menus, shortcuts, and system controls to work exactly how I want.
|
||
My system is based on Arch Linux or Manjaro Linux, which are versions of Linux that give you more
|
||
control and customization than a typical computer setup. The result is a clean, fast, and super
|
||
efficient desktop that’s hard to go back from.
|
||
<a class="outlink" href="https://git.samantha42.xyz/samantha/dotfiles">Git repo</a>
|
||
</p>
|
||
<img src="/static/images/rice.png" style="height: 200px; align-self: center;">
|
||
</div>
|
||
<div class="section-head">
|
||
<h2>programing</h2>
|
||
</div>
|
||
<div style="display: flex; align-items: center; gap: 1rem;">
|
||
<img src="/static/images/program.png" style="height: 350px;" alt="program">
|
||
<div>
|
||
<p class="exp-body">
|
||
Programming can be a task, but for me it's a source of joy. This is something I do as a hobby, and I
|
||
don't use AI much. It's about having fun and making a fool of yourself. It's not about how good it is,
|
||
in this case, I'd rather just listen to music and drink a cup of tea. I enjoy the struggle to debug, the
|
||
beauty in understanding why a bug is there to begin with.
|
||
</p>
|
||
<br>
|
||
<p class="exp-body">
|
||
The text editor I use most is VS Code, but I love the Neovim setup as it enables me to code on a
|
||
low-level system without a desktop environment being necessary. I do most of my coding on my own
|
||
desktop, synced with Git to other systems, like the server that hosts this website, which I have built
|
||
myself. The creation of this website is more of a fun dumb activity for me... go click on one of the
|
||
movie posters and see.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
<br>
|
||
<div class="section-head">
|
||
<h2>Games</h2>
|
||
</div>
|
||
<p class="exp-body" >Game i will play in my free time to wind down.</p>
|
||
<div hx-get="/static/components/games.html" hx-trigger="load" hx-swap="outerHTML">
|
||
<span class="spinner">Loading stats…</span>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section id="contact">
|
||
<div class="page-header"><h2 class="page-title" id="interest">Contact</h2></div>
|
||
<div class="exp-card" >
|
||
<div class="exp-header">
|
||
<span class="exp-title">Open to opportunities</span>
|
||
</div>
|
||
<p class="cta-body">
|
||
Looking for an entry-level analyst or finance-adjacent role alongside my studies. If you're working on something interesting.
|
||
</p>
|
||
<a class="cta-btn" href="mailto:me@samantha42.xyz">write to me →</a>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
</div>
|
||
|
||
<footer>
|
||
<div class="footer-contact">
|
||
<a href="mailto:me@samantha42.xyz">me@samantha42.xyz</a>
|
||
</div>
|
||
<div class="footer-copy">© 2026 — all rights reserved</div>
|
||
</footer>
|
||
|
||
<script>
|
||
// just some fun.
|
||
console.log("%c👀 hi there!", "font-size:20px")
|
||
|
||
|
||
function makeday() {
|
||
themeRoot.classList.remove('night');
|
||
const day = document.getElementById('day');
|
||
const night = document.getElementById('night');
|
||
day.classList.add("hidden");
|
||
night.classList.remove("hidden");
|
||
}
|
||
function makenight() {
|
||
themeRoot.classList.add('night');
|
||
const day = document.getElementById('day');
|
||
const night = document.getElementById('night');
|
||
day.classList.remove("hidden");
|
||
night.classList.add("hidden");
|
||
}
|
||
|
||
// about.js
|
||
function closeOverlay() {
|
||
document.getElementById('overlay').style.display = 'none';
|
||
}
|
||
|
||
// or toggle it from anywhere:
|
||
function openOverlay() {
|
||
document.getElementById('overlay').style.display = 'flex';
|
||
}
|
||
function toggleInterests() {
|
||
const body = document.getElementById('interests-body');
|
||
const button = document.getElementById('interest-button');
|
||
const hidden = body.classList.toggle('hidden');
|
||
if (hidden) {
|
||
button.textContent = "open ↓"
|
||
} else {
|
||
button.textContent = "close ↑"
|
||
}
|
||
}
|
||
|
||
function nlSubmit() {
|
||
const input = document.getElementById('nl-email');
|
||
const val = input.value.trim();
|
||
if (!val || !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(val)) {
|
||
input.style.borderColor = 'red';
|
||
input.focus();
|
||
setTimeout(() => { input.style.borderColor = ''; }, 1600);
|
||
return;
|
||
}
|
||
console.log(val)
|
||
// TODO: POST to your subscriber endpoint (Listmonk, Buttondown, etc.)
|
||
fetch('/newsletter/subscribe', { method:'POST', body: JSON.stringify({email:val}), headers:{'Content-Type':'application/json'} })
|
||
document.getElementById('nl-form').style.display = 'none';
|
||
document.getElementById('nl-note').style.display = 'none';
|
||
document.getElementById('nl-success').style.display = 'block';
|
||
}
|
||
document.getElementById('nl-email').addEventListener('keydown', e => {
|
||
if (e.key === 'Enter') nlSubmit();
|
||
});
|
||
|
||
|
||
</script>
|
||
<script src="/static/scripts/posteranimation.js"></script>
|
||
</body>
|
||
|
||
</html> |