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

2017-10 - date

Systems Engineer at NIRA Dynamics

  • Infrastructure lead for the backend behind NIRAs new slip hazard warning feature. Building a highly available and scalable platform using Kubernetes on top of AWS for running various microservices and Flink Jobs.

    The system uses Apache Kafka for message passing, and has extensive systems monitoring using Prometheus, Grafana and Graylog.

  • Designed the data ingestion system using gRPC.
  • Highly involved in preparations for ISO27000 certification.
2009 - 2017-09

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.
  • Implemented a third generation using streaming technologies such as Google Cloud PubSub, Google Dataflow, Google BigQuery and Apache Avro.
  • Served 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

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.

Other Experience

2018/2019

Football (Soccer) coach for F12 (girls born 2012) at Linghems Sportklubb, coaching daughter and her teammates.

  • Included a 2-day course in leadership skills and techniques for being a coach to kids, arranged by the Swedish National Football association.
  • Highly appreciated by the kids for being what is possibly the worst goalkeeper in the universe.
2018-

Leader for a group of Scouts of age 7+ in Linghems Scoutkår.

  • Attended the course “Leda Patrull”
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.

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 cars with a weight up to 3500kg.

Computer Skills

Programming

Very good programming skills in Python and shell scripting. Good programming skills in Pike, Java and Scala. Some skills in C/C++, Groovy, Go 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. Some experience with Apache Flink.

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

Very good understanding of event-driven network programming.

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

Very good skills in Continuous Integration / Continuous Deploy systems, mostly with Jenkins, including scripted pipelines using Groovy.

System/Network Administration - / DevOps Skills

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.

Very good skills in configuring and running Kubernetes clusters, including integration with monitoring tools such as Prometheus, Grafana and Graylog. Experience both with KOPS-based and EKS-based Kubernetes-klusters.

Very good skills in configuring AWS services using Cloudformation. Experience with EC2, S3, RDS, IAM and others, including multi-account setups with centralized IAM and Roles.

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 Prometheus, InfluxDB, Grafana and Graylog.

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

Very good knowledge in configuring web servers such as Nginx and Apache.

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, as well as Flask, and Bootstrap. Some experience in creating web backends using Scala Play.

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). In-depth knowledge with Scylla

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

In-depth knowledge in running Apache Kafka with Microservices forming a data processing chain.

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. Some experience in configuring and using Microsoft ADFS as well as Duo.

Some experience in configuring web-based authentication using OIDC and SAML.

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.

Lead in the process of creating an open source policy for NIRA Dynamics.

Documentation/Lectures

Good documentation writing skills. Experience from writing technical documentation in Docbook, SGML, HTML, LaTeX, FrameMaker, reStructured Text and Markdown, using various tools, most recently Hugo.

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