Hello World!

My name is Erik Schlyter, and I'm a software development enthusiast and a
professional programmer. I work as a freelancing consultant, trying to make
the world of software a better place. I'm passionate about clean code,
automated testing, autogenerated specs and documentation, efficient use of
distributed revision control, and making those bits and bytes dance to my
whims.
Some of my spare time projects
I host most of my code on GitHub. Some of the more recent projects are listed here.
- A Server-Side Git Hook for Automatic Build/Deployment
- This script will checkout the newly pushed revision into a temporary directory and execute a deployment script from it. It can be used to automate test verification, build your project documentation, update your homepage or whatever. Personally I push my code to a bare repo on my VPS, which executes tests and updates the project documentation page before it automatically forwards the now stable changes to my public GitHub account. The revision will be rejected if the deployment script exits with a non-zero value.
- RSpec-illustrate
- A plugin to RSpec and YARD that allows you to define illustrative objects in your examples that will be forwarded to the output formatter. The results can be imported into YARD, which makes your generated specs and documentation more readable, illustrative, and explanatory.
- Combinatorial Puzzle Solver
- A resolver of combinatorial number-placement puzzles, like Sudoku.
- Value Graph Transformation
- A simple framework for manipulating Directed Acyclic Graphs (DAG) for the use of transforming models of functions and values.
Thoughts, ideas and articles
-
Quality by Being Careful - September 25, 2012
-
The Evaluation of My Software Sabbatical - August 14, 2012
-
Software Sabbatical - June 11, 2012
Professional Experience
Technical Tester
,
Feb 2022 - ongoing
Contracted as a Technical Tester to help them test, verify and evaluate
public services and infrastructure related to Swedish eHealth.
Responsibilites include test automation, development and maintenance of
internal testing tools and frameworks, and solving problems related to
quality assurance.
Testing
, Test automation
, Cypress
, eHealth
, SOAP/WS
, CI/CD
Software Developer
,
Feb 2019 - Jul 2021
Contracted to help them develop, automate and maintain test frameworks for
the evaluation and certification of 3rd party provided hardware, to be
used in a Software-Defined Infrastructure product in the context of
large-scale data centers. I also focused on infrastructure and the team's
CI solutions.
SDI
, Linux
, Python
, Bash
, Git
, CI
Software Developer
,
Feb 2017 - Feb 2019
Contracted on a variable basis in a startup environment to help them with
product development and setting up internal routines for revision control,
testing and continuous deployment with focus on stability and scalability.
Comordo was specialized in the analytics and processing of large data sets
for development and tuning of their recommendation systems, and I
developed the infrastructure for their computing pipeline.
Python
, Bash
, MySQL
, DevOps
, Git
, Linux
Software Developer
,
Oct 2015 - Nov 2016
Contracted as an additional C++ developer in their platform team, helping
them develop database/ORM middleware for their crew rostering
optimization solutions.
C++
, Python
, Maven
, Mercurial
, Scrum
, Linux
Software Developer
,
Sep 2014 - Mar 2015
Contracted to help them implement and evaluate a proof-of-concept feature
in a larger system as part of a feasibility study. I also worked as an
advisor in regards of build systems and revision control, and helped them
with setup and education of new tools and routines.
Git
, C++
, VxWorks
, education
Software Developer
,
Nov 2013 - Mar 2014
Contracted to help them improve their software development processes in
terms of revision control, documentation and automation with focus on
long-term cost reduction and quality sustainability. Most of the
development has been in the context of HMI frameworks.
Git
, C++
, Doxygen
, Qt
Software Developer
,
Dec 2012 - May 2013
Contracted as an additional resource in the final stages of a project to
help them port legacy HMI system to a new platform. Key factor for
success was to dive into legacy code and get productive fast.
Java
, C++
, Eclipse
, Git
, CVS
, Linux
, Scrum
-
Systems Engineer
,
Jan 2009 - Oct 2012
As a developer on the Opera Mini team, I have thorough experience
developing mobile software integrated on a multitude of platforms with
high constraints on footprint, performance and usability.
I was mostly developing frameworks for UI and testing, and as part of a
very international environment where personal initiative and commitment
was required and expected, I have learned from and been surrounded by
extremely talented people from most parts of the world.
Java ME
, Eclipse
, Ant
, Ruby
, RSpec
, Vim
, Pike
, Python
, Git
, CVS
, Linux
Systems Engineer / Consultant
,
Jan 2008 - Mar 2009
Software development consultant for various customers, mostly related to
IMS and
Connected Home. Assignments included software development and occasionally
preparing educational material, but most work was related to managing
build systems and porting projects to new hardware platforms.
Make
, Bash
, C
, TDD
, CVS
, Subversion
-
,
,
Jun 2005 - Jun 2007 (25%)
My responsibilities included tutoring, supervising and grading student
papers and conducting occasional lectures and group exercises. Courses
covered Java programming, systems programming in C, operating systems,
communication and network.
Formal Education
ENEA Services
Embedded Linux
,
2008
A 2-day course in device driver development and embedded Linux systems.
C
, Embedded Linux
University of Umeå
- Department of Computing Science
M.Sc. Computing Science and Engineering
,
Aug 2003 - Dec 2007
My Master's thesis covered Structured Data Extraction.
Java
, Eclipse
, C/C++
, Make
, Perl
, Bash
, ML
, PHP
, PostgreSQL
, Vim
, CVS
, Linux
Swedish Armed Forces
- Signal Corps
System technician / Sergeant
,
Jan 2002 - Mar 2003
Swedish conscription service. Basic military training, leadership and
telecommunication.