Björn Lindqvist — consultant and developer


Professional resume site for Björn Lindqvist. For prospective employers and clients. Incorporated and looking for freelance work.

About Me

My best quality is my ability to see both the details and the full picture of software projects. I'm passionate about always producing quality results and satisfying my clients needs. I love building stuff.

Developing stuff is both what I do for fun and what I do for a living. I have an uncompleted degree in Software Engineering, have worked as a developer in many different roles and also contributed lots to Open Source projects.

Professional Experience

My developer career started as a consultant and developer at Network Expertise Sweden in which I stayed for two years. After that, I was consulting for Akademin AB, first a ten months assignemnt at Sony Ericsson Mobile Communications in Lund, followed by twelve months as system designer in IS at Ericsson in Älvsjö. After that I've spent two years working with development of web gaming for Caliber Media AB in Stockholm. Then for an insurance company called Söderberg & Partners where I developed pension systems and then again as a consultat for Brüggemann System.

Currently, I'm studying at KTH because I want to finish my Master's degree in Software engineering.

Personal Qualities

I'm positive, happy and chill. More of an introvert than an extrovert. It is better to think before one speaks than speak and think afterwards. I enjoy thinking deeply about problems and discussing them with others.

I like to take on challenges even if it means that I don't always succeed. I'm resilient to stress, reliable and will always do my best to reach my goals. One of my best qualities is that I'm very stubborn and I rarely give up on something I've set my mind to.

People have told me that I'm a good tutor and teaching is something that comes naturally to me.

By bad qualities include often being unable to decipher people's intentions and knowing if they are joking or being serious. Sometimes being too blunt.

Expertise areas

Below follows a list of how I rate myself on a wide variety of technologies and skills. The rating scale goes from 1 - complete newbie (dark brown) - to 5 - almost master level (dark green). The ratings are not set in stone and I update them when I learn more or when I realize how little I know about something. This way, I keep track of my own progress and what skills I can or want to learn more about.

Click on the underlined skill words to get additional information about my experience with it.

Languages

  • Basic
    • Visual Basic .NET

      I used this legacy language while employed at Brüggemann System AB. It is very clunky in comparison with C#.

  • C#
  • C
    • C99
    • C11
  • C++
    • C++11
    • C++17
    • C++20
  • Erlang
  • Factor

    Factor is a concatenative language I've contributed extensively to. For example, to the FUEL Emacs-Factor binding.

  • Haskell
  • Java
    • J2SE
    • Java EE
    • Java ME
  • Lisp
    • Clojure
    • ELisp
    • Racket
  • Pascal
  • Perl
  • PHP
  • Prolog
    • SWI Prolog
  • Python
    • C API
  • Ruby

    Ruby, A language that appears very nice. I'd like to learn more about it and how it compares to Python. I haven't had much chance to play with it yet.

  • Scala
  • SQL

    I consider myself very good at SQL. I have used it in all jobs I've had.

    • PL/pgSQL
    • T-SQL
  • x86 Assembly

Databases & Storages

  • memcached

    memcached, A must have for creating high performance web sites.

  • Mnesia
  • MySQL
  • ORM
    • Entity Framework

      I like Linq2sql more.

    • Hibernate
    • JPA
    • Linq2sql
    • SQLAlchemy
    • SQLObject

      SQLObject, An old ORM for Python which was very popular until SQLAlchemy came along.

  • PostgreSQL

    PostgreSQL, Words can not describe how awesome this database is. It's miles ahead of any other database I've worked with and is so fast that you won't ever need any NoSQL gunk.

  • RabbitMQ
  • Redis
  • SQLite
  • SQL Server

Linux Development

  • DRBD

    DRBD, A Linux device for HA file systems with failover. My experience with it comes from IS in Ericsson — it kernel paniced all the time. ☺

  • GNOME
  • GObject
  • KDE
  • SDL
  • OpenSSH
  • Samba
  • SWIG
  • X11

Protocols & Specs

  • CAN bus

    In university, we created a simple robot using this protocol. Since then, I've forgotten almost everything about it.

  • IP-protocols
    • DNS

      I know how to setup DNS records, how to use BIND and the basics of zonefiles.

    • HTTPS
    • ICMP
    • IMAP
    • IP
    • IPv6
    • RTMP
    • SMTP
    • SNMP
    • SPF
    • TCP
    • UDP
  • MisLife Insurance XML

    MIS portal, I was responsible for the data bridge between MisLife files and the Visi insurance system at Söderberg & Partners.

  • NFS
  • VoIP-protocols
    • H.323
    • IAX
    • MGCP
    • RTP
    • SIP

Scientific computing & ML

  • Keras
  • MatLAB
    • Octave
  • Matplotlib
  • MIR

    MIR stands for Music Information Retrieval and is a very interesting area of research.

    • librosa
    • Madmom
  • NumPy
  • SciPy
  • tensorflow

Other Skills

  • Affiliate Marketing
  • Agile & Scrum
  • Chess

    My lichess account.

  • Competitive programming

    My Kattis profile.

  • Concatenative programming
  • Design Patterns
  • English
  • Functional Programming
  • German
  • Google Analytics
  • Guitar
    • Fingerstyle
  • Object-oriented Programming
  • Project Leadership
  • Swedish
    • Reading
    • Speaking
    • Writing

Operating Systems

  • Windows
  • Linux
    • Arch Linux

      Arch Linux, this is the distro I currently prefer.

    • Debian
    • Gentoo

      Gentoo, I used to have a lot of fun compiling the latest updates of Gentoo and also reporting bugs and fixing broken ebuilds. But Ubuntu has a more polished feel to it which I've come to prefer.

    • OpenSUSE
    • RedHat
    • Ubuntu
  • OSE

Web Technologies

  • AJAX
  • CoffeeScript
  • CSS
    • CSS3
    • Skeleton
    • Responsive Design

      This CV site is supposed to be responsive which means that it should look good on both a desktop computer and a handheld.

  • DOM
  • HTML
    • HTML5
  • JavaScript
    • AngularJS
    • JSON
    • jQuery
    • jQueryUI

      jQuery UI, User Interface components built on top of jQuery. I've previously used it at Caliber Media for dialog boxes.

    • Meteor
    • Qooxdoo
    • qTip2

      qTip2, Tooltips built on top of jQuery. Used on my football site.

  • Markdown
  • REST
  • XML
    • XPath
    • XSLT

Web Frameworks & API:s

  • ASP.NET
    • MVC
    • Web Forms
  • Django
    • Celery
    • Jinja2
  • Flask
  • Google AppEngine
  • Google Maps API
  • GlassFish
  • JSP
  • Node.js
    • Express
    • Jade
    • NPM
    • Socket.IO
    • Stylus

      Stylus, White-space significant CSS pre-processor. I like its very minimalistic syntax.

  • Ruby on Rails
  • Tomcat
  • Web Servers
    • Apache
    • lighttpd

      lighttpd, This was my favorite web server before I discovered nginx. These days the project seems almost abandoned.

    • nginx

      nginx, The best web server I've used. Lightweight, easy to configure and small!

      I'm using it for all new websites I create.

  • ZKoss

Developer Tools

  • Asterisk
  • Bug Tracking
    • Bugzilla
    • DMS
    • JIRA
    • github
    • Trac
  • Build Automation
    • Ant
    • Autotools
    • Hudson
    • MSBuild
    • SCons
    • WAF
  • Clang
  • Editors & IDEs
    • Eclipse
    • NetBeans
    • Visual Studio
  • Emacs
    • org-mode
  • Excel
  • gcc
  • GnuPG
  • GUI systems
    • GTK+ 2.0
    • QT
    • WinForms
  • LaTeX

    LaTeX is an amazing typesetting system.

    • 2 & 3-column layouts
    • Overleaf
  • LLVM
  • MediaWiki
  • Outlook
  • Unit Testing & CI
    • Gatling
    • Hudson
    • JDTS
    • jUnit
    • nosetest
    • pytest
  • Sharepoint
  • Version Control
    • ClearCase
    • CVS
    • git
    • Subversion
    • Team Foundation Server
  • Vi
  • Wireshark
  • WordPress
  • Shell
    • Bash
    • Powershell
    • Zsh

Engagements

KTH, 2017 — curr.

Right now, I'm finishing my degree in computer science. I'll do my Master's thesis in the spring of 2020.

Skills learned and applied
Algorithm analysis, C, C++, Calculus, Complexity theory, Discrete math, Java, Keras, Latex, MIR, probability theory, Python, regression, TCP/IP, tensorflow

Brüggemann System, 2013 — 2015

Hired as a consultat for Brüggemann and working with maintenance and development of assorted IT systems owned by the company. In particular I worked on a pension insurance tool used by Antroposofiska sällskapet.

Skills Applied
ASP.NET, Bootstrap, C#, SQL Server, Visual Basic .NET, Visual Studio, WinForms, XML

Söderberg & Partners, 2011 — 2013

Working with the back end system for Swedens largest independent pension insurance advisor. A major part of the work is handling the import of market and insurance data from external partners to s&p:s database.

I have learnt a lot about optimizing SQL code and have had a lot of fun applying advanced SQL concepts such as window fuctions and common table expressions.

Skills Applied
ASP.NET, C#, Linq2sql, MisLife, Outlook, Powershell, SQL Server, Team Foundation Server, Visi, Visual Basic .NET, Visual Studio, XML

Caliber Media AB, Dec 2008 — Dec 2010

Hired as a system developer for internet marketing company Caliber Media AB. Responsible for new development and maintenance of their web-based gaming platforms. One part of the company was gathering leads using our gaming platforms, and the other was email marketing to the gathered leads.

Sadly, the company has tanked and their website is not online anymore.

Skills Applied
Agile, CSS, Facebook API, GlassFish, Hudson, IMAP, Java, JSP, jQuery, MySQL, NetBeans, Subversion, ZKoss

Personal Projects

My Virtual CV

I suppose this CV should count as a personal project, shouldn't it? ☺ It runs on my VPS hosted by GleSYS where I'm also running some other sites, for fun. The web server I'm using is nginx, which sends the request through to a node server this one-page site written in Coffeescript. I've gotten the good looking background patterns from Subtle Patterns.

The eye-candy, such as the tooltips and smooth scrolling is implemented using jQuery.

Note that for this site, I've decided to go with state-of-the-art web development techniques such as CSS3 and HTML5 and not bother much with supporting legacy browsers. The idea is that whoever is reading this site, and is interested in my services, is very likely to be using a modern browser.

Skills Applied
CSS3, Express, Google Analytics, HTML5, Jade, jQuery, jQueryUI, nginx, Node.js, Skeleton, Stylus

Factor - a practial stack language

An Open Source project I've contributed to. Primarily to the Factor-Emacs binding called FUEL and to the VM.

Football Experts

A site about football betting. Created in collaboration with my brother to explore affiliate marketing opportunities in the sports betting business.

The site never made any real money and is now defunct.

Skills Applied
Affiliate Marketing, Django, Jinja2, memcached, nginx, PostgreSQL, Python, qTip2

The VPS List

A site about VPS:es. It's often down because I'm being harassed by spammers. At the time I wrote the site I didn't know how crucial it is to implement strong anti-spam techniques on public facing websites.

Skills Applied
Django, Google Maps API, memcached, PostgreSQL, Python

GtkImageView

An image-viewer widget for GTK+ 2.0. GTK+ has since released version 3.0 and revamped its entire API, so the widget is only useful for legacy applications. ☺

Skills Applied
C, gobject, GTK+, Python, SWIG, trac