I’m Stian, a passionate full stack web developer based in Norway, currently crafting innovative solutions at SpareBank 1 Utvikling. With a Bachelor’s degree in Computer Science and over two years of hands-on experience from professional roles and personal projects, I thrive at the intersection of design and backend engineering.
My journey into technology began in my father's hobby room, where tinkering with computers sparked a lifelong fascination. From building what started as a SoundCloud clone and evolved into Sonio.fm , to launching productivity tools like TaskBuddy.dev and Tinify.dev , to creating developer tools like Rampkit and a JetBrains IDE plugin , I enjoy creating tools that simplify and enhance everyday tasks. When I'm not coding, I cherish time with my girlfriend and our 18-month-old son, binge-watching movies or brainstorming the next web application.
Driven by ambition, creativity, and a love for problem-solving, I’m dedicated to building user-friendly, high-performance applications that make a real difference. Let’s connect and create something amazing together!
EXPERIENCE
- Front-End Development: Utilize TypeScript and Next.js to create responsive and user-friendly interfaces.
- Back-End Development: Work with Python to develop robust backend services.
- Legacy Systems
- Next.js
- Python
- React
- TypeScript
- Front-End Development: Utilize TypeScript and React to create responsive and user-friendly interfaces.
- Back-End Development: Work with Kotlin and Spring Boot to develop robust backend services.
- Agile Methodologies: Engage in mob programming and agile practices to accelerate development cycles and enhance code quality.
- Data-Driven Decisions: Leverage user interaction data to inform product decisions, ensuring features meet user needs and business objectives.
- Cross-Functional Collaboration: Collaborate with designers, product managers, and other developers to meet quarterly OKRs and drive continuous improvement.
- AWS
- Agile
- Kotlin
- Mob Programming
- React
- Spring Boot
- TypeScript
Full Stack Developer • Sleipner motor
At Sleipner Motor, I serve as a Full Stack Developer. My role involves developing and maintaining both front-end and back-end systems, ensuring seamless integration and functionality across our platforms. I work with a variety of technologies to deliver high-quality solutions that meet the needs of our users and business objectives.
Full Stack Developer • SpareBank 1 Utvikling
At SpareBank 1 Utvikling, I serve as a Full Stack Developer on Team Overview, responsible for building and maintaining critical front-end and back-end services for the bank's primary user interface across mobile and desktop platforms. Our team delivers the landing page that provides users with a comprehensive overview of their daily transactions, accounts, loans, debts, and financial tools.
PROJECTS
- AWS S3
- CSS Modules
- GSAP 3
- Lexical Rich Text
- Next.js 16
- Payload CMS 3
- Playwright
- PostgreSQL
- Radix UI
- React 19
- Spline 3D
- TypeScript
- Vercel
- Zod
- AWS Lightsail
- CSS Modules
- Caddy
- Clerk
- Drizzle ORM
- FastAPI
- Next.js 16
- PgBouncer
- PostgreSQL 16
- Python
- React 19
- Stripe
- TypeScript
- Next.js
- Payload CMS 3
- React 19
- SWC
- Sharp
- TypeScript
- npm
- AppKit
- Highlight (libhighlight)
- Lua
- Quick Look Extensions
- Swift 6
- SwiftUI
- Tree-sitter
- XPC Services
- XcodeGen
- macOS 15+
- Color Theory Algorithms
- Next.js
- Radix UI
- React
- SCSS Modules
- TypeScript
- Various Color Formats
- Various Export Formats
- CSS
- IntelliJ Platform SDK
- JetBrains Plugin Development
- Kotlin
- Next.js
- SCSS
- TypeScript
- AWS Lightsail
- AWS S3
- Audio Processing
- Custom Authentication
- Kotlin
- Next.js
- REST API
- React
- Sign in with Google
- Spring Boot
- TypeScript
- UI/UX Design
- Wavesurfer.js
- AWS Lightsail
- Color Theory
- Next.js
- React
- TypeScript
- UI/UX Design
- AWS Lightsail
- Image Processing Tools
- ImageMagick
- Kotlin
- Next.js
- React
- Spring Boot
- TypeScript
- UI/UX Design
- AWS
- Google Cloud Storage
- JWT Authentication
- Kotlin
- Next.js
- PostgreSQL
- React
- Spring Boot
- TypeScript
- UI/UX Design
- Figma
- Illustration
- Next.js
- React
- TypeScript
- UI/UX Design
- Barcode Generation
- Firebase
- Next.js
- React
- TypeScript
- UI/UX Design
- Admin Dashboard
- Authentication
- Firebase
- Next.js
- React
- Tailwind CSS
- TypeScript
- UI/UX Design
- Next.js
- QR Code Generation
- React
- Supabase
- Tailwind CSS
- TypeScript
- UI/UX Design
- Audio Processing
- Express.js
- Firebase
- Node.js
- REST API
- React
- TypeScript
- UI/UX Design
- Wavesurfer.js
Ampera AS - Energy Contractor Platform
Built the full website for Ampera AS, a Norwegian energy contractor (energientreprenør) based in Østfold/Viken. The platform serves as a B2B lead-generation site targeting grid operators like Elvia, Norgesnett, and BKK, showcasing 10 specialized distribution network and allied services.Developed a headless CMS architecture using Payload CMS 3 with PostgreSQL and AWS S3 for media storage. The CMS features custom content blocks (hero, text, checklist, columns, quotes, stats, FAQ, contact), reusable across all service pages and editorial content.Implemented multiple conversion flows including a Byggestrøm (temporary construction power) booking system, LFS safety leader inquiry forms, and general contact forms — all with server-side validation, reCAPTCHA v3 integration, and automatic CMS capture of submissions.Designed a complete HSL-based design system with CSS custom properties and CSS Modules, GSAP-powered animations, and interactive 3D elements via Spline. All UI text is in Norwegian with a direct, professional brand voice — no marketing fluff.
DBHost - Managed PostgreSQL Hosting
A managed Database-as-a-Service platform where developers can provision PostgreSQL databases in seconds. Sign up, create a database, and get a connection string — no infrastructure to manage.Features a web dashboard with a built-in SQL Explorer, REST API for programmatic access, a CLI (@dbhost-app/cli), scoped API keys, PgBouncer connection pooling on every database, and automated daily backups with on-demand triggers.Built on a split-plane architecture: a Next.js control plane on Vercel handles auth, billing, and the dashboard, while a Python FastAPI agent on an AWS Lightsail VPS manages the actual PostgreSQL instances, PgBouncer config, and backup pipelines.Includes an admin panel with user/database management, activity history, and incident monitoring. Offers Free, Pro, and Business tiers with Stripe-powered billing.
payload-img-convert - Image Conversion Plugin for Payload CMS
An open-source Payload CMS v3 plugin that automatically converts and resizes uploaded images to modern formats like WebP and AVIF using Sharp. Solves the gap where Payload 3 lacks built-in format conversion — no manual work needed, just install and configure.Features automatic format conversion (WebP, AVIF, PNG, JPEG), aspect-ratio-preserving resize, max file size guards, per-format quality options, and a kill switch for disabling conversion without schema drift. SVGs and GIFs are intelligently skipped.Includes custom admin UI components: a format selector dropdown in the upload sidebar with file size savings display (e.g., 'Saved 42%'), a collapsible resize panel with oversize image detection and auto-fill suggestions, and quality degradation warnings for lossy-to-lossy re-conversion.Built with zero Sharp dependency — uses Payload's managed Sharp instance. Supports re-conversion of existing uploads without re-uploading. Published on npm with three entry points: main plugin, type exports, and client components for Next.js RSC compatibility.
dotViewer - Quick Look for Code & Dotfiles
A native macOS Quick Look extension that brings syntax-highlighted previews to source code, dotfiles, and markdown — right inside Finder. Press Space on any code file and get an instant, beautifully rendered preview without opening an editor.Supports 600+ file types out of the box with full syntax highlighting powered by Highlight via an XPC service, plus Tree-sitter for language detection. Includes a dedicated Quick Look thumbnail extension so code files show readable previews in Finder icon and gallery views.Features rich markdown rendering with table-of-contents, inline images, and a toggle between raw syntax-highlighted and rendered views. Handles edge cases like binary plists (auto-converted to XML), sensitive file detection, transport stream filtering, and configurable file-size limits with truncation warnings.Ships with a companion settings app for managing themes (auto/light/dark), font sizes, line numbers, word wrap, content width and alignment, preview caching, custom file extensions, and per-type enable/disable toggles — all synced between the app and the extension via App Group shared settings.
Rampkit - From Hex to Color Palette
A modern color palette generator that creates beautiful 12-step color ramps from any hex color input. Designed specifically for developers working with design systems and UI frameworks. Features comprehensive color generation including accent colors and gray scales in both light and dark variations, perfect for creating cohesive design systems. Supports multiple export formats including shadcn/ui HSL values, CSS variables, JSON format, and human-readable text - making it easy to integrate generated palettes into any development workflow. Built with accessibility and developer experience in mind, providing ready-to-use code snippets and color formats that work seamlessly with modern web frameworks.
CSS Variables Assistant - JetBrains Plugin
Advanced CSS custom properties plugin for JetBrains IDEs including IntelliJ IDEA, WebStorm, PyCharm, and more. Features intelligent autocomplete with live preview, quick documentation with color swatches, JSDoc-style comment support, and advanced @import resolution. Supports CSS, SCSS, SASS, and LESS with multi-preprocessor compatibility. Rated 4.6/5.0 with 400+ downloads from the JetBrains Marketplace.
Sonio: Advanced Music Platform, just like SoundCloud
Developed Sonio, a free web-based music platform that allows users to upload, share, and discover music. Built a robust backend in Kotlin + Spring boot handling custom authentication and data retrieval , utilizing postgres and aws s3 for efficient data storage and retrieval. Implemented advanced audio processing tools using WaveSurfer.js for seamless audio playback and waveform visualization. Created a responsive frontend using Next.js and TypeScript, focusing on a clean and intuitive user interface. Deployed the application on AWS Lightsail for scalability and security. Designed all UI components from scratch, ensuring a visually appealing and user-friendly experience.
ColorPalette: Create beautiful color palettes with instant code export
Created ColorPalette, a web application that allows users to generate beautiful color palettes and export them as code snippets for various programming languages.
Tinify: Advanced Image Optimization Service
Developed Tinify, a free web-based image optimization service that compresses, resizes, and crops images to reduce file sizes and enhance website performance. Built a robust backend in Kotlin and Spring Boot, utilizing advanced image processing tools like ImageMagick, pngquant, cjpeg, and more for efficient image manipulation. Created a responsive frontend using Next.js and TypeScript, focusing on seamless user experience. Deployed the application on AWS Lightsail for scalability and security. Designed all UI components from scratch, ensuring a clean and user-friendly interface.
TaskBuddy: Task Management Application
Created TaskBuddy, an intuitive task management application designed to help users organize tasks and boost productivity. Developed the application using Next.js and TypeScript, crafting all UI components without third-party libraries to ensure originality and performance. Built a secure backend with Kotlin and Spring Boot, connecting to a PostgreSQL database hosted on AWS. Implemented custom authentication using JSON Web Tokens (JWT), eliminating reliance on third-party solutions. Managed user data, tasks, settings, and metadataROOT efficiently, utilizing Google Cloud for image storage.
TaskBuddy Landing Page: Marketing Frontend
Designed and developed the marketing landing page for TaskBuddy to engage users and promote app adoption. Crafted unique illustrations and 3D assets using Figma, focusing on a modern and appealing aesthetic. Implemented the design using Next.js and TypeScript, ensuring responsiveness and fast load times. Developed informative sections like 'About Us' and 'Learn More' to effectively communicate the app's value proposition.
Strek-kode: Text to Barcode Generator
Developed and open-sourced Strek-kode, a free web application that converts text into barcodes. Built with Next.js and TypeScript, ensuring high performance and reliability. Leveraged Firebase for authentication and real-time database capabilities. Designed an easy-to-use interface for generating barcodes, catering to various user needs.
Skipper'n Utleie: Boat Rental Platform
Developed a comprehensive boat rental platform for Skipper'n Utleie, enhancing operational efficiency for the local business. Built with Next.js and TypeScript, using Tailwind CSS for responsive design. Integrated Firebase for managing bookings, users, inventory, and authentication. Designed a custom admin dashboard to display orders, track profits, and manage inventory with CRUD functionalities. Focused on creating an intuitive interface for both customers and administrators.
QR-kode.app: Custom QR Code Generator
Created qr-kode.app, a user-friendly platform for generating free custom QR codes with various configuration options. Implemented using Next.js and TypeScript for a fast and reliable frontend experience. Utilized Supabase for efficient data management and backend services. Employed Tailwind CSS to achieve a modern and responsive UI. Provided users with an intuitive interface to generate QR codes for personal and business use.
AudioVisualizer.io: Online Audio Visualization Platform
Designed, developed, and deployed AudioVisualizer.io, an online platform for uploading, sharing, and visualizing audio files. Built a RESTful API using Node.js and Express.js for audio compression, peak data generation, and storage. Implemented the user interface with React and TypeScript, utilizing Wavesurfer.js for audio visualization. Integrated Firebase for user authentication and database management. Enabled users to experience interactive audio visualizations similar to SoundCloud.