Curriculum Vitae

Contact Information

Surname:Forsberg

Forename: Erik

Nationality: Swedish

Web Site http://efod.se

E-mail address: forsberg@efod.se

Cell Phone: +46-(0)768-15 74 99 (CET Evening Time)

Education

1998-2003

Master of Science in Computer Science at Linköping University

1994-1997

Brinell College Natural Science program.

Work Experience

2009-date

Full time job as Lead Developer/Architect for the Opera Statistics Platform at Opera Software.

  • Designed and implemented large parts of the two first generations of the Statistics Platform, using Hadoop, Cassandra, Zookeeper and Flask.
  • Currently implementing a third generation using streaming technologies such as Google Cloud PubSub, Google Dataflow, Google BigQuery and Apache Avro.
  • Serving as Lead Developer/Architect in a team of 6.
2008-2009

Full time job as Server-side Developer, Opera Mini, at Opera Software.

  • Lead developer for OTA installation server for Opera Mini.
  • Some development on Opera Mini and Opera Turbo services.
2003-2008

Full time job as Systems Analyst/Developer at Cendio AB.

At Cendio, I shared my time between three main tasks:

  • Manager of support operations
  • Manager of the computer and network environment
  • One of the main developers of Cendio’s main product, ThinLinc, a thin client solution.
2001-2003

Part time job at Cendio AB.

During the period I was studying full-time, I was also working part-time at Cendio as a consultant for several customers including Ericsson, Nokia and Securitas.

2002

Summer and part time job at UNIT, the central IT department of Linköping University

During my summer- and part time job at UNIT, I implemented a Java servlet based web application used to distribute passwords to the central LDAP-based authorization database for all students at Linköping University. I also taught Postfix to system administrators from several departments at Linköping University.

2001-2001

Summer and part time job at CSC Sweden in Linköping.

At CSC, I was resonsible for keeping the backups of SAAB Aviation running during the summer when the ordinary backup managers were on vacation. I also integrated RSA SecureID into AIX graphical login, created a system for monitoring the backups and wrote several web applications for the company intranet.

2000

Part time job for Energy Interactive creating interactive e-learning applications using Macromedia Authorware.

1999-2000

Part time job as a system administrator for Foto Malmen AB

1998

Summer job as network administrator at Jönköping High School

At Jönköping High School, I was part of a project for upgrading all workstations to Windows NT 4.0. I also modified the Debian GNU/Linux Linux distribution to integrate it into the existing NIS+-based authorization system, and installed it on about 80 workstations using a self-developed mass-installation system.

1997

Evening job teaching basic computer skills.

Other Experience

2007

Major contributor to the Python Programming Language Project’s project for changing bug tracker.

During 2006 and 2007, I helped the Python Programming Language Project convert from a bug tracker at Sourceforge to a bug tracker based on the Roundup Issue Tracker. This involved writing a proof of concept in cooperation with a team of volunteers, as well as the implementation of several scripts for conversion of old data into the new tracker, and code for the tracker itself. The result of the project is successfully running at

1999-2007

Volunteer System Administrator at Lysator Academic Computer Society, the larger of the two computer clubs at Linköping University.

During my time as a student at Linköping University, I spent a lot of my free time working with various projects at Lysator. I gained experience in administering many different dialects of UNIX: Linux, Solaris/SunOS, AIX, HP-UX, IRIX, UNICOS and Tru64.

In addition to doing normal day-to-day system administration, I also designed and implemented the mail server of Lysator, including web-based administration interfaces allowing members to create Mailman-based mailing lists and administrate their personal Anti-spam configuration.

I also designed and implemented a version control server

supporting CVS and Subversion. Using a web-based administration interface, members can create projects and invite non-members as developers with read/write access.

1998

: Military service as sergeant first class in an infantry brigade.

Served as a system administrator taking care of the staff computers
and a mobile local area network. The service period included 30
hours of leadership training, 400 hours of computer training, and
1000 hours of practical work with computers.
Driver License

Swedish ‘B’ drivers license authorizing me to drive normal cars.

Computer Skills

Programming

Very good programming skills in Python and shell scripting. Good programming skills in C, Pike and Java. Some skills in C++ and Perl.

Good understanding of distributed applications and servers interacting heavily with the underlying operating system. Experience of HA programming.

Lot’s of experience in developing large-scale data analysis solutions using the MapReduce Paradigm, with Hadoop and Dumbo.

Experience with Google Cloud Platform, including AppEngine, PubSub, Streaming Dataflow, Datastore and BigQuery.

Experience with Apache Avro. Implemented in-house version of schema server.

Very good understanding of event-driven network programming.

Good experience of unit- and integration testing, mainly with PyUnit. Some experience with load testing.

System/Network Administration

15+ years of experience in administrating networks with UNIX-like platforms and Microsoft Windows. In-depth knowledge of Linux, good knowledge of Solaris. Some experience in Microsoft Windows.

Experience in shell scripting for automating common tasks, as well as deep knowledge of configuration management tools, especially Puppet. Good knowledge of network statistic/graphing tools such as RRDTool, InfluxDB and Grafana, as well as network monitoring tools, especially Nagios.

Planned and implemented current logical and physical network structure at Cendio AB, including routing and firewall configuragion.

Planned and implemented logical network structure for Opera Statistics Platform, handling Terabytes on a daily basis.

Experience of various backup solutions and software, including Legato Networker, Bacula, and rdiff-backup.

Good experience of desktop standards (XDG) in the KDE and Gnome environment. Main developer of a desktop management feature in ThinLinc.

Web Technology

Good knowledge of HTML, basic knowledge of CSS.

Experience from creating web applications using several different web frameworks, including standard Python and Perl CGI, Webmin modules, mod_python, Plone and Zope, Django, Java servlets with Tomcat, and Webware with Cheetah Templates, as well as Flask, and Bootstrap.

Databases

In-depth knowledge of configuration and use of MySQL, good knowledge of PostgreSQL.

In-depth knowledge about distributed Key/Column databases (mainly Cassandra, but also some experience from Google Datastore).

Good knowledge of configuring OpenLDAP. In-depth knowledge of programming LDAP applications connecting to OpenLDAP and Novell eDirectory. Good understanding of schema design.

Security

Security-minded - I tend to think about what security implications a program or network setup has when I make decisions on what solutions to use.

Experience from several security-related products, such as Nordic Edge One Time Password Server and RSA SecurID.

Good understanding of TLS and GPG.

Open Source

Strong believer in the benefits of Open Source, but still pragmatic -closed source has its place as well.

Contributor to several open source projects, including Cassandra, rdesktop, Thinstation, kofoto, Plone, Roundup, Python, and Mailman. Author of several small projects under Open Source license.

Documentation/Lectures

Good documentation writing skills. Experience from writing technical documentation in Docbook, SGML, HTML, LaTeX, FrameMaker and reStructured Text.

Author of a large set of webpages about Linux.

Experience of giving lectures, both in professional circumstances at for example Open Source Forum and Novell Technology Days, and in academic computer society circumstances (“UppLYSning”, the lecture series of Lysator ACS).

Other skills

Leadership skills

Generally being the type of person who makes things happen. Does not need detailed leadership, can work independently. Tend to take leadership in groups where it’s needed.

Acted as Project Leader for several projects at Cendio.

Planned and supervised moving all of Cendio’s network and computer infrastructure from one physical location to another.

References and certificates available on request