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.
- 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
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.
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 specializes in the analytics and processing of large data sets for development and tuning of their recommendation systems.
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.
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.
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.
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.
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.
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.
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.
A 2-day course in device driver development and embedded Linux systems.
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.
Swedish Armed Forces-
System technician / Sergeant,
Jan 2002 - Mar 2003
Swedish conscription service. Basic military training, leadership and telecommunication.