Skip to content
WELCOME
Nelson Koskela
Home About Projects Assistant Contact
GitHub LinkedIn Resume Email
Log in Register

Legal & privacy

Last updated September 2026. This is a personal portfolio site, not a commercial service. Plain language, no dark patterns.

Terms of use

The site and its projects are provided as-is, for demonstration, with no warranty of any kind. The Trading Simulator, Company Scorer, and any market figures use simulated or delayed data and are not financial, investment, tax, or legal advice. Don't make decisions based on anything here. Interactive demos (Pipeline World, Timed-Squares) accept short text you submit knowingly and display it publicly — don't submit anything private.

Privacy

What is collected, and nothing else:

  • Accounts (optional, only for the LeetCode tracker): a username and a hashed password. No email address is stored, and there is no email or marketing list.
  • Functional cookies: a signed session cookie, a random session_id used only to scope rate limiting, and a "remember me" cookie if you tick it at login. Nothing else.
  • Request logs for the assistant: for each chat message, a truncated copy of the question, the reply, timing, and your IP address stored only as a salted SHA-256 hash — never the raw IP. Used for the public usage stats page, which shows aggregates only.
  • Public submissions: character names and icebreaker answers in Pipeline World, and leaderboard names in Timed-Squares, are shown publicly by design.

No third-party analytics, advertising, pixels, or trackers run on this site — no Google Analytics, no Meta Pixel, nothing. Data is not sold or shared. Everything lives on a single European VPS. To request deletion of an account or a submission, email the address below.

Cookies

Only strictly necessary cookies are set (session, rate-limit scope, optional "remember me"). There are no advertising or analytics cookies, so there is no consent banner — there is nothing non-essential to consent to.

AI assistant disclaimer

“Hera” on the Assistant page is a retrieval-augmented large language model. It answers only from this site's own published content. Its responses:

  • are informational only and may be inaccurate, incomplete, or out of date;
  • are not a binding statement, promise, or offer by Nelson Koskela, and do not create any agreement;
  • are not financial, legal, or professional advice.

For anything that matters — roles, availability, commitments — contact Nelson directly rather than relying on the assistant.

Accessibility

This site aims to meet WCAG 2.1 AA: semantic HTML and a single <h1> per page, a skip-to-content link, alt text on meaningful images (decorative images are marked empty), keyboard operability, visible focus outlines, a declared page language, and respect for prefers-reduced-motion. If something is hard to use with a screen reader or keyboard, please email the address below and it will be fixed.

Reporting abuse or infringing content

The only user-generated content is short submitted text (names, icebreaker answers, leaderboard handles); no files, images, or media are hosted. To report content that is abusive, infringes a copyright, or shouldn't be here, email koskela.nelson@gmail.com with the URL and what's wrong. Reported content is reviewed and removed promptly.

Eligibility

You must be at least 13 years old to create an account. This site is a professional portfolio and is not directed to children.

Contact

koskela.nelson@gmail.com · GitHub · LinkedIn

Personal portfolio site. The Trading Simulator uses simulated positions against delayed real market data from yfinance. No real money, and none of it is financial advice. The Company Scorer's scores are a demo built from public filings and delayed market data, not investment advice. The Site Traffic Analytics board logs only this app's own requests and API calls, never a visitor's browsing.
GitHub LinkedIn koskela.nelson@gmail.com Legal & privacy
© 2026 Nelson Koskela · Built with Flask · Design derived from HTML5 UP (Dimension, CCA 3.0) · Source on GitHub