I am Torstein. I love working with complex Unix and Linux systems with lots of HTTP servers, web caches, load balancers, distributed memory caches, databases, LDAP and application servers. Making them all play together is a treat.
Also, I enjoy designing and developing Python & JEE applications, using web standards like HTML5, XML, CSS, DOM, ECMA/JavaScript as well as hacking on Python and BASH scripts to glue everything together.
I've been fortunate to work on some of the biggest European web sites and newspapers, helping the customer with everything from operating system patching, database, LDAP, web server, cache server, application server and frontend performance tuning to application development and development methodology.
Distributed development is something I'm comfortable and have great experience with. I've worked with multinational teams in several time since January 2007 and am used to the challenges (and benefits!) of many nationalities and cultural backgrounds.
Getting teams to function optimally, making everyone feel valued and boost the team's development velocity is a hugely challenging and equally rewarding experience that is also the core of my MSc in Human Resource Management.
Specialities: Multi-server architecture and development of JEE systems with very high demands for performance, availability and scalability.
Experience
Escenic, System architect, May 2015 – Present
Back home in the R&D department at Escenic, developing the best Content Management System in the world, constantly playing with as many Linux servers, Java, BASH and REST applications as my mind can muster. I'm also contributing to our cloud platform and do a fair amount of work on our internal R&D infrastructure.
OS: Debian, Ubuntu, CentOS, RedHat; Packaging & repo admin: Maven, APT, RPM; Java: Loads!; Python: Flask, requests; Shell: BASH, sed, awk; Servers: Loads! nginx, apache, lighthttpd, Percona, MariaDB, Derby, Oracle, OpenLDAP, memcached, HA Proxy, Nagios, Icinga; IAM: Gluu, KeyCloak, OpenID Connect, OAuth2, SCIM.
Conduct AS, Senior consultant, February 2013 – April 2015 (2 years, 3 months)
Building world class solutions for our customers using open source technologies such as Linux and Java.
I've worked with these technologies: Java backend and frontend development using JBoss, EJBs, JPA, Apache Wicket, Activiti, Mockito, Hibernate 3 & 4, Spring, Spring Batch, RESTEasy, memcached, Git, jQuery, jChart, CSS & HTML. Not to forget: ActionScript, Flex, Jaspersoft iReporter.
Server setup and operations are most of the time a breeze using: nginx, Apache, RedHat Linux, Ubuntu Linux, BASH, SED, awk & Puppet
Escenic, System architect, February 2012 – January 2013 (1 year)
I worked in a team of five to build a new SaaS solution for Vizrt Online's (Escenic's) customers which later will expand to cater for other systems in Vizrt's portfolio too.
This job was a wonderfully challenging one were I got to work full time on Linux servers and BASH programming, most of which we release as open source github/vizrt/ece-scripts
This job is fully loaded with exciting challenges including: Varnish, nginx, lighthttpd, Tomcat, Percona DB, Ubuntu LTS, RHEL, Debian, NFS, KVM, Amazon WS, Nagios/Icinga, check_mk & Munin. Not to mention thousands of lines of BASH code, performance testing with httperf & siege, creation of DEB packges, own APT repositories and build systems integrating development team efforts with proper release management.
Escenic, System architect, November 2008 – January 2012 (3 years 3 months)
As a system architect I was responsible for the general development, architecture and future technical direction of my two teams' products.
Keeping on top of the latest developments in the domain of social media APIs, single sign on, captcha APIs, JavaScript APIs, NoSQL products, HTML5 & CSS, REST, Atom Publishing Protocol, Java frameworks whilst re-examining the RFCs backing the internet as we know it, made for a hugely challenging and rewarding experience.
I've got a keen interest in performance tuning, load testing and multi server architecture and this undoubtedly influenced the specification I wrote.
The size of my teams varied over the years from 2 in the beginning and peaking at 10 later on, through which my role changed from being both architect and tech lead, to acting solely as a system architect (a year of which it was topped up with a product owner role as well).
During these years, I learned that although caring about general architecture, deciding how systems talk together, focusing on interfaces and fundamental principles, communicating technical design and development approach, I am far more comfortable being a tech lead, leading the development team by example, working concentrated on product development with most or all of my commits going into production rather than into PoCs.
Escenic, Senior consultant, October 2005 – November 2008 (3 years 2 months)
I worked with some of the biggest newspapers in Europe, helping them on-site primarily with production environments: Unix, Linux, DBs, LDAP, distributed memory caches, reverse proxies, load balancers, deployment routines, development methodology, web site development and editorial workflow.
I've found it challenging and hugely interesting to work different parts of the newspaper organisations: From both editorial staff, designers and business management to development departments and hosting partners: Finding the correct solution for the customer that serves the needs of all parties' area of interest has been a rewarding experience.
CoreMedia AG, Technical Consultant, 2004 – 2005 (1 year)
Working on one Europe's biggest web portals with hefty JEE development on a Solaris platform with extreme demands for high performance.
This year taught me a lot about working for extremely structured, quality conscious and demanding customers; never settling for anything but the best.
Splendid Internet GmbH, Developer, 2003 – 2004 (1 year)
I'm very grateful for this job as it taught me a lot of the German work ethics, of extreme attention to detail and structured approach to development.
Working as a developer on a project for one of the biggest German telecoms allowed me to work with JEE, SOAP web services, CORBA, GNU/Linux and HP-Unix - all in the same solution!
Opera Software, Intern, 2001 – 2002 (1 year)
Summer intern & part time work involving ECMA/JavaScript, DOM and Python development as well as testing Opera on the Linux platform.
Education
- The University of Stirling, MSc Human Resource Management: 2002 – 2003; Activities and Societies: University of Stirling Mountaineering Club, SUDS - Stirling University Drama Society, University of Stirling Volleyball Club, CU.
- Østfold University College (HiØ), BSc Computer Science: 1999 – 2002; Activities and Societies: Founded the FiFo film society, was a member of the STAMP art society ("Studenter angriper med pensel") and was an actor in the HiØ Student Drama Society ("Halden Studenternes Theaterselskab").
- Østfold University College (HiØ), Business English; 1998 – 1999; Oral and written business communication.
Languages
- Norwegian: Norwegian is my mother tongue
- English: I have taken my master's degree in Scotland and have had English as my working language since 2005.
- German: I have lived in Germany for 2.5 years and have worked in German speaking countries for a total of 4 years.
- Mandarin: I have good oral skills for every day conversation.
Programming languages
- Java: EJB3; CDI (injection, events, decorators, interceptors, classifiers++); JMS, HornetQ & ActiveMQ; Spring; Spring Batch; Activiti; Persistence with iBATIS, Hibernate 3 & 4, JPA, JDBC; fat GUI clients with AWT & Swing; Web GUI clients with: JSF, Rich Faces, Apache Wicket, JSP, EL & JSTL.
- BASH: Unit testing with shunit2; JSON parsing with JSON.sh; XML & XPATH parsing with xml_grep (XML Twig Tools); consuming REST and SOAP web services using curl and wget; parsing text with sed and awk
- Python: Gtk+, Flask.
- C & C++: OpenAL, OpenGL
- ECMASCript, JavaScript & ActionScript: jQuery, jChart, ActionScript & Flex
Technologies I've worked a lot with
- Version control: Git; Perforce; Subversion, have migrated large Subversion repositories to Git; CVS;
- Virtualisation: KVM; Amazon AWS; VMWare; VirtualBox, Vagrant; Docker.
- Content Management Systems: Escenic Content Engine (worked 7.5 years as consultant and architect); Coremedia (worked 1 year as consultant); EZ Publish :: developed a plugin for it; Joomla; Wordpress
- Web & application servers: nginx; Apache 1.x and 2.x; Apache Tomcat; Resin; Oracle Application Server; JBoss 7.0, 7.1, EAP 6.2 & Wildfly 8
- Reverse proxies & load balancers: Varnish 2 & 3; Squid; nginx with memcached integration; Oracle Web Cache; HA-Proxy; pon
- LDAP: OpenLDAP with multi master setup for high performance read/write environments
- Databases: MySQL & Percona 5 & 5.5; PostgreSQL; Oracle 8, 10g, 11g, Cache DB, CouchDB, Sybase.
- Identity & access management: OpenID 1/2, OpenID Connect, SCIM OAuth2; Gluu, KeyCloak.
Operating systems
- GNU/Linux: Debian; Ubuntu; Arch; SuSE; RedHat & CentOS; Gentoo.
- UNIX: HP-UX; Solaris 8 & 10; OpenBSD 6.2; NetBSD 6.1; FreeBSD; Mac OS X
My toolbox
- I'm particularly found of Emacs, I use it for pretty much everything except web browsing and image manipulation.
- I use IntelliJ IDEA for debugging and refactoring.
- I cannot live without the UNIX command line tools, BASH, sed and awk are my best of friends.
- My tool of choice for most HTTP testing is curl
- For a lot of HTML, JS and CSS investigation, Firebug is excellent.
- When performance testing, I tend to use httperf, siege & netstat.
Non-technical matters
Ichtys International / KIA, Volunteer teacher, August 2006 ➡️ 2015
→ Once a week for nine years, I worked as a volunteer teacher teaching Norwegian to immigrants from all over the world. During these years, I have had great fun teaching at all levels, from the students who do not speak a word of Norwegian, to the ones who have need to polish and further improve their already well functioning language.
Organisations
- Cafe Ichtys International, a part of KIA
- OPLUG, Oslo Pils and Linux User Group
- Turistforeningen
- Kraftverket
Interests
Mountain biking, jogging, hiking, traveling, languages, rock climbing, piano, literature, poetry, politics.
Some customer projects I've been involved in
- CNN 2012-07
- New Indian Express 2012-11
- STV 2012-11
- Axel Springer 2008
- 100% football 2008