Ivan
Web developer in Oslo, Norway

Fast websites, speed fixes and Python automation.

I build lightweight landing pages for small businesses, make slow websites fast, and write Python scripts for repetitive spreadsheet work. You get a fixed price before I start.

What I can do for you

If your task falls outside these three, I will say so before we agree on anything.

Landing pages and small business websites

One to five pages, built mobile-first and fast by default. I set up free hosting on Cloudflare Pages or Netlify, or deploy to the host you already have.

  • Responsive design from your content or a Figma file
  • Contact or booking form
  • SEO basics and structured data
  • Hosting setup and a short handover guide

Website speed and technical SEO

An audit of what slows your site down and what to fix first, or the fixes themselves for static and custom-built sites. Measured before and after.

  • PageSpeed and Core Web Vitals audit
  • Fix list ordered by impact, in plain language
  • Image, font and script optimization
  • Titles, meta tags, sitemap, structured data

Python automation for Excel and CSV

Scripts that merge, clean and summarize your exports, or move data between tools. They run on your own computer, so there is no server to pay for.

  • Combine and clean messy spreadsheets
  • Formatted Excel reports with charts
  • File format conversion and simple API integrations
  • Instructions on how to run it

Work

One live project and three demos. The demo businesses and their data are made up; the code and the measurements are real.

Home page of chesscodex.org: search box and the opening of the day on a chess board
Live project

chesscodex.org

A free reference of the 3,690 named chess opening lines with statistics from Lichess. Server-rendered PHP with a SQLite database: every opening has its own page, structured data and a place in the sitemap. Self-hosted on a Raspberry Pi 5 behind Cloudflare Tunnel.

PHP 8.4, SQLite, HTML, CSS, JavaScript, Cloudflare

  • 100Performance, mobile
  • 100SEO
  • 1.5 sLargest Contentful Paint
  • 100Accessibility
  • Google PageSpeed Insights, measured 11 October 2026
Home page of the Tråkk Sykkelverksted demo: headline, booking button and a bike drawing
Demo, fictional business

Tråkk Sykkelverksted

A one-page website for a made-up bike workshop in Oslo, in Norwegian and English. Services, prices, opening hours, FAQ and a booking form with validation. It has no frameworks, web fonts or photos, so it loads fast even on a weak mobile connection.

HTML, CSS, a little JavaScript, schema.org structured data

  • 100Performance, mobile
  • 100Accessibility
  • 100Best practices
  • 0.8 sLargest Contentful Paint
  • Search engines are asked not to index this demo, because the business does not exist.
Case study page of the speed demo: before and after buttons above the results
Demo, speed optimization

The same page, before and after

A landing page for a fictional coffee roaster, built the way many small business sites are: full-size photos, a CSS framework and an icon font for three icons, render-blocking fonts and scripts. The optimized version looks exactly the same. Includes a sample audit report, the kind of document you get with my audit service.

Image resizing and AVIF/WebP, responsive images, font loading, critical CSS

  • 66 → 97Performance, mobile
  • 26.6 s → 2.4 sLargest Contentful Paint
  • 4.8 MB → 34 KBPage weight
  • 6 → 0Render-blocking files
  • Google PageSpeed Insights, measured 11 October 2026
Summary sheet of the generated Excel report: totals, revenue by month with a bar chart, top 5 products
Demo, synthetic data

Excel report automation

Three monthly exports in three formats (a webshop CSV, a Norwegian accounting CSV with 1 234,50 prices, and an Excel file) become one formatted report: summary with a chart, breakdowns by product, city and channel, and an Issues sheet that lists every row that could not be used and why.

Python, pandas, openpyxl, pytest

  • 446rows read from 3 files
  • 29problem rows found and explained
  • 6sheets in the finished report
  • 28automated tests

How I work

In writing

Scope, price, deadline and changes are agreed in writing, by email or on the platform. Nothing gets lost, and you can reply when it suits you.

Fixed price, agreed upfront

You know the price and the delivery date before I start. The number of revision rounds is agreed in advance too.

Tested before delivery

Every delivery goes through a checklist: phone and desktop, several browsers, speed, links, forms and accessibility basics.

Open about tools

I use AI coding assistants in my work.

You own the result

Source code and files are yours, and hosting is set up in your name, so you never depend on me to keep your site online.

  1. You describe the taskA few sentences, links or files are enough.
  2. I confirm scope and priceWith questions if anything is unclear.
  3. I build and testYou get progress updates in writing.
  4. You reviewRevisions as agreed.
  5. HandoverFiles, access and a short guide.

How to hire me

Email me a short description of your task, and I will reply with questions or a fixed-price offer. Payment can go through a freelance platform, so it is protected for both of us.