Hi! Here's some quick facts about me.
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-2021 - Senior Developer @ Vibbio
2021- - Tech Lead @ Lokalbrygg/NBS
My philosophy on technological experience is that attitude is the most important. Web technologies are a dime a dozen and change from year to year. Eagerness to adapt and learn new things, and an ability not become complacent is more important than anything else. I feel this is where my experience mostly lies: in the ability to learn new things, learn how they work, and become confident and comfortable working with them.
This is some brief highlights of some technologies I've worked with, it is by no means exhaustive. If you're wondering about something specific we should have a chat!
The last few of years I've been working with React (and Redux). In the olden days, I could work with or without jQuery, but these days I generally don't use it. I used Backbone in production for almost 5 years, and had a love/hate relationship with it.
Like many people, I started early on (again, in ye olden 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, but that experience is fast becoming outdated.
Within node, I've used koa, express 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, making a few small projects like VPList and like what I've done so far. I think their philosophy of going back to SSR is a positive for almost everyone involved.
I've used WebSockets both with socket.io and without for various real time projects, such as a leaderboard which live-updated from user input, a video processing pipeline which showed progress in real time,
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 - still used in production, but not actively maintained).
I have had frequent 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, but this project has begun gathering dust. Again, familiar but not experienced.
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.
I have spent 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.
I have also worked in teams early on at BRIK and for the last couple of years of 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.
My time at Lokalbrygg and 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. Probably mostly because the 10 hour time difference does a great job of facilitating distraction-free "deep work".
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.
2014: - 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.
2012-2016: - 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).
2017: - 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.
2012: - 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.
2016-2021: I created a 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. In 2018 and 2019 I converted it
to React. 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. I gave a small talk about the browser-based full text
indexing featured in this app here.
2017-2021: 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.
2021: An expansion of the VPDiff concept to show more expansive information about Vinmonopolet's beer releases. Based on next.js, react and redux.
2013: A fun side project to automate ordering sushi from a local sushi chain on
slack. Runs on node.js.
2013-2015: 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):
Poster, Swingin' in the Rain 2017 (vector art and reference photography) :
Poster, Learn to Dance Lindy Hop 2015 (art and photography):
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):
Promotional video for BRIK (lightning, audio, camerawork, editing and grading in Premiere):
I've done a few talks at our small shared-office conference that we organise twice a year, Revolverconf. You can see them here:
If you're after any other specifics, please don't hesitate to get in touch