This page contains a short autobiography. You might also be interested in my CV / Résumé.
The early days of my life I lived in a croft in Sjönevad in south western Sweden. By the age of four our family had outgrown the house, and we moved about 5 kilometers to Vessigebro, where we built a house and I attended elementary school.
My years in junior high school is a time I remember as filled with music. This is when I started my band. I also quit the Vessigebro football (soccer) team to focus on swimming. In senior high school I started focusing my education towards computer science and engineering. I moved to a bigger swim team to be able to focus on my athletic career.
When I graduated from high school with good grades and a few math awards I decided I was done with exercising my body for a while and it was time to focus on intellectual training. I moved to Linköping to study computer science and engineering at the University that I had found to have Sweden's toughest undergraduate math education.
The first course I took in programming at the university was my first encounter with Lisp. I liked it and a year later I was teaching it to the new first year students. During the three years I worked as a TA in various programming courses at the university I acquired teaching experience in Common Lisp, Scheme, Java, Python and PHP. I created lab series for courses in Python and Java, and managed staff in some courses. Apart from teaching programming I also did some math teaching for the new students at the start of the fall semesters.
My commitments during my studies extended beyond teaching, in 2004 I was part of a committee responsible for the greeting of new students at our educational program. We were in charge of organizing social activities to help the about 140 new students form the social connections needed to succeed in their studies, and make sure that they got up to pace with their studies. During 2004 and 2005 I was part of the board for the computer science division of the student union, as chairman of the education evaluation committee, a position that also meant I was representing the students at the board for education governing at our education program. My duty was to evaluate the education to maintain and improve quality. In 2005 and 2006 I was a member of the delegate committee for the student union.
In late 2006 a student buddy of mine asked me to review the API for the graph database that he was starting a company around. In early 2007 he consulted me again on how this database could be accessed from Python. I mapped the API to Python, enabling access from both Jython and CPython, but I was not satisfied with not being able to utilize the with-statement for transaction management in Jython, since Jython at the time was only at version 2.2 compared to CPython 2.5. I decided that I wanted to fix this and signed up for a project to bring Jython to 2.5 compatibility as part of the Google Summer of Code initiative.
During my Summer of Code project I was mentored by Jim Baker, a person with great talent and a great social networker. After I successfully finished the summer project, by enabling Jython to load bytecode files from CPython, Jim and I submitted presentations about our work on Jython to various conferences. In just one year I was introduced to, and became part of the Python developer community, the Java developer community, and the Language implementers community.
At the end of the summer of 2007, based on my previous work on Neo4j I was hired as a consultant for Neo Technology. I worked with our customers, implementing persistence and data traversal in their systems using our database. I also worked on more bindings for languages and frameworks, and tool support for Neo4j. The combined effect of working for Neo Technology and traveling to a lot of conferences had the effect that I could no longer study full time, putting my masters thesis on hold.