Jon Packer

Web Developer

Hi! Here's some quick facts about me.


Work Experience

2008 - Frontend Developer Intern at Creative Audio (now BIAMP)
2010-2011 - Web & iOS App Developer at Creative Intersection
(Moved to Norway 01/01/2012)
2012-2018 - Full Stack Developer & Partner @ BRIK
2018-2020 - Senior Developer @ Vibbio

Technology Experience

My philosophy on technological experience is that attitude is more important. Web technologies are a dime a dozen and change from year to year, so attitude and ability to constantly adapt, learn new things, and not become complacent is more important than anything else. I feel this is where my experience mostly lies: in the ability to pick up new things, learn how they work, and become confident and comfortable working with them.

This is a brief summary, and is by no means exhaustive.

Web Frontend

The last couple of years I've been working with React (and Redux). In the olden days, I could work with or without jQuery. I used Backbone in production for almost 5 years, and had a love/hate relationship with it.

Web Backend

Like many people, I started early on (again, in ye olde days) with PHP. In 2011 I discovered node.js and was a bit smitten. I've been using node on the backend for pretty much everything since then. Sometimes jobs call for other tools, and I've maintained my familiarity with PHP, working every now and then with Craft and WordPress. I have some passing experience with ASP.NET and Ruby on Rails.

Within node, I've used express, koa and hapi a whole lot (in descending order of how much I enjoy them). I've used a lot of browserify and webpack.

I've played a bit with next.js and like what I've done so far.


SQL-based databases are a fact of life, I'm comfortable working with them and do so on a reasonably common basis (mostly MySQL).

I've spent a whole lot of time working with a Graph Database named Neo4j - I wrote and driver for it a few years ago for node (seraph).

I have some experience working with Redis and MongoDB, and some passing experience with CouchDB.


I work with docker, nginx, varnish regularly, and I'm used to working with AWS and GCS. I have seen Kubernetes, and I'd prefer not to do so again :P. I'm comfortable in Unix-based systems.


I wrote and published a few apps for iOS in Objective-C as a part of my first job. In the last few years I've written a couple of native iOS apps using Swift, and a tvOS app using Apple's JavaScript-based TVMLKit. I would not call myself experienced here, just familiar.

I've spend a passing amount of time working on a hobby project in React Native.


I'm proficient in using much of the Adobe suite, including Photoshop, Illustrator, Premiere, After Effects and Lightroom. I would say that I'm "very proficient" at Photoshop, After Effects (including expressions) and Lightroom. I know how to use camera to shoot good quality video, and edit it using Premiere and AE.

Communication Experience

Working Independently

I have spend large swathes of my career working independently, so I am confident designing, building, polishing and releasing projects alone. I frequently work on my own personal projects outside of work hours to keep this skill honed.

Working In Teams

I have also worked in teams early on at BRIK and for the last couple of years while working at Vibbio. In my opinion good team work and communication is (rather than naming) the hardest problem in Computer Science. I am constantly striving to be better at communication, and recognize I have a long way to go.

Working Remotely

My time at Vibbio has been 100% remote. Every year I worked at BRIK I had one remote month working in Australia around late-December/January. For one reason or another these often ended up being some of the most productive months of the year (at Vibbio too).

Working remote is a enormous challenge, particularly for good communication. I think it can work, but all involved parties have to put in the effort to make it work well.

Case Studies

Cottontails Bergen (source)

I designed and implemented the website for The Cottontails, a Swing-dancing club in Bergen. The site was written using node (express) on the backend, pug and stylus. I also experimented with having a databaseless website that used Contentful for static content that changes 1-2 times per year, and reads from Facebook's API in order to display events and news.

Seraph (source) & Seraph-Model (source)

Drivers I wrote and maintain for Node.js for the Neo4j database. This has been a long-running project that is widespread use at BRIK. Some pain-points have been tracking breaking updates to Neo4j, and the ever-changing landscape of node.js idioms (for example, migrating from callbacks to promises).

Norges Toppidrettsgymnas
Working at BRIK, I implemented NTG's new website, implementing a design from Sommerseth Design. The site was written using Craft (a PHP-based CMS), a small amount of JavaScript, and Stylus. As a part of the project, I wrote a custom Craft-plugin in order fetch social data using Facebook and Twitter's APIs.

Also at BRIK, I designed and retrofitted a responsive design for Olympiatoppen. The challenge here was to create a design that worked with the very large amount of content and existing design. As a part of this project, I wrote jquery.tap.

MBCC Beer List (source)

I created an appcache-based progressive web-app for a beer festival I was visiting in 2016, and spent a lot of time expanding it for the same festival in 2017. It works as an offline beer list, or an app that shows real-time average ratings of other festival-goers and has background integration with social networks - depending on your level of internet access.

VinmonopoletDiff (source)

A small website that reads Vinmonopolet's API and diffs beer product lists for individual stores from hour to hour. I wrote this in late 2017 when Vinmonopolet started doing frequent silent beer releases at their beer-focused stores. It was upgraded and made public in 2018.

Makibot (source)

A fun side project to automate ordering sushi from a local sushi chain on slack. Runs on node.js.

Design: Cottontails Danseklubb

I have made a few different logos, done some photography, created a hand-lettered wordmark and a few posters for The Cottontails in Bergen (where I'm an active member and instructor). Here are a few examples:

Cottontails Poster Image (wordmark hand lettering, photograph):

(Image hidden in print version)

Poster, Swingin' in the Rain 2017 (vector art and reference photography) :

(Image hidden in print version)

Poster, Learn to Dance Lindy Hop 2015 (art and photography):

(Image hidden in print version)

Video Work: Olympiatoppen & BRIK

I've done some video work for BRIK and Olympiatoppen (through BRIK). This involved some reusable titles and interstitial titles for Olympiatoppen, and some promotional video production for BRIK.

Demoreel, titles for Olympiatoppen (titles design, animation and expressions in After Effects):

(Vimeo video hidden in print version)

Promotional video for BRIK (lightning, audio, camerawork, editing and grading in Premiere):

(Vimeo video hidden in print version)


I've done a few talks at our small shared-office conference that we organise twice a year, Revolverconf. You can see them here:

Full Text Indexing in the Browser

CSS Units

CSS Grid

Service Worker


(YouTube videos hidden in print version)


If you're after any other specifics, please don't hesitate to get in touch