Expert C Embedded utvecklare Stockholm, Sweden

Podría estar disponible

(Actualizado 2020-06-11.)

Expert C Embedded utvecklare

Stockholm, Sweden

Principiante Svenska, English

  • 20 år Software development
  • C++ utvecklare
  • 10+ år C utvecklare

Habilidades (28)

PROTOTYPE

Jenkins

C Embedded

PROTOTYPING

MAINTENANCE

Python

MULTITASKING

C

Linux

Software Developer

HTML

JavaScript

Windows/Linux-admin

Git

PHP

C++

C#

Azure DevOps

Drivers

Datapath

FIRMWARE

Perl

BILINGUAL

Subversion

TCL

RASPBERRY PI

BIOS

MIDDLEWARE

Experiencia profesional

Assembler
Operativsystem

2006-01 - Presente

Software developer
Uppsala Private project - Various
Jens has worked on various smaller things at home. Some of them are:

* Using a Raspberry PI to control his lights using an RF transmitter.
* Contributed code to the Dolphin Emulator. (https://dolphin-emu.org/)
* Wrote a super tiny Linux init system that boots to a shell in less than a second.
* Fixed kernel code bugs and wrote apps for the GCW Zero (http://www.gcw- zero.com/)
* Controlling motors and blinking LEDs using an Arduino.

Linux C++ Arduino Raspberry PI Dolphin Emulator GCW Zero
Software developer
VMware

2009-06 - Presente

Linux Python Vim Bash C Docker Mikrotjänster
Molnlösningar VirtualBox OpenStack QEMU Kubernetes Libvirt
Jun 2009 - Ongoing Software developer
Private project - Fudge Operating System
Fudge is an x86 monolithic operating system that Jens has written entirely from scratch. It consists of a kernel that supports multitasking, memory protection,
symmetric multiprocessing, inter-process message passing, a virtual filesystem
interface and loadable kernel modules. The operating system has around 50
kernel modules which adds support for various devices like graphics, networking,
block devices, input devices etc. The userland includes a shell with a bunch of utilities and a full desktop environment in the form of a network-transparent tiling
window manager.

Fudge is written to be event driven and asynchronous. Central to this idea is that
Fudge implements the actor model. All programs on Fudge acts as an actor that
listens to incoming messages and takes actions on them when received. An
action could be to change an internal state, create a new actor by spawning a new
process or respond by sending new messages. This design makes issues around
concurrency a lot less complicated.
Technology area specialist
Ericsson

2016-11 - Presente

Ericsson
Jens worked as a specialist in the area of operating systems and virtualization. He
mainly did prototyping work in order to find new and better solutions for
problems in Ericssons' portfolio of products. One of the bigger projects that Jens
came up with (together with another colleague) that gained a lot of attention was a
custom-built Linux image based system which ran entirely in RAM in which
Ericsson was able to deploy both it's entire IMS system and it's entire vRAN
system with a mix of virtual machines and containers. This lowered the amount of
compute resources needed considerably because of the little footprint and minimal configuration it had in comparison to the previous OpenStack instances and at the same time it saved a ton on maintenance and testing. The time it took
to upgrade an entire cluster of machines went from weeks to literally hours (or even minutes in some cases). This was showcased and demoed all throughout
Ericsson and got very positive feedback and was even presented at Mobile World
Congress together with what was going to be the next generation hardware for
edge deployments for which this was built. Sadly, soon after, Ericsson started to
discontinue these type of deployments so the project never really had time to make it out the door.
Software developer

2019-05 - Presente

Private project - ALFI
ALFI is a domain-specific language for user interfaces that Jens is currently
working on. With ALFI you can easily define user interface elements i.e. widgets
(like text, headers, buttons) using human readable text. These widgets can then
later be rendered on the screen using a specially crafted ALFI browser. The
purpose of ALFI is to bridge the gap between what is considered a web application and what can be considered a regular native application. It takes the best parts
from each and merges it into something that feels both simple to use yet still
very powerful.

NAVI is the custom browser that will read ALFI code and render the resulting
widgets on the screen with the help of OpenGL. NAVI renders beautiful, fluid,
interactive and dynamic layouts by only interpreting the ALFI code itself. Similar
dynamic behaviour in a regular browser would typically require you to have tens of lines of code in JavaScript or similar. Here you don't need any at all.

OpenGL C
Software developer
Ericsson

2012-05 - 2016-10

Ericsson
Ericsson builds their own server blades called GEP which is part of their BSP blade
system offering. Jens wrote both Linux drivers to handle custom hardware
components on GEP (like the custom BMC) and tools for updating firmware like
BIOS and for various disks and network devices. Not only did he do the actual
development himself but as the project owner he also helped plan for upcoming
revisions and synchronize the daily work items together with the hardware
developers themselves. Also had meetings with representatives from Intel.

More about BSP: https://www.ericsson.com/en/portfolio/digital-services/cloud-
infrastructure/bsp-8100

Linux Perl Git Vim Bash C TCL
Software developer
Ericsson

2011-04 - 2012-04

Combitech
Jens worked as a consultant for Ericsson, mainly on their custom SLES-based Linux
system used in a platform know as Core Middleware. The system had already by
then been around for a while so there was not much feature development so
most of the time was spent handling bug reports and improving the test coverage.
Pretty soon after this Jens got offered a job and moved over as a full time
employee at Ericsson.

Linux Jenkins Git Vim Bash C TCL
Software developer
Västerås

2010-08 - 2011-07

Pingdom
The idea behind Pingdom is very simple. They monitor the server of a customer by sending pings from other machines around the world. If the server doesn't
reply they notify the customer that the server is not reachable. The results of
each of these pings needs to be saved and analyzed. It needs to be aggregated and made available for reading. Jens worked on trying to improve the performance
in this backend that dealt with all of this data. He also improved worked on the
backend for the web interface and sometimes on the frontend as well.

HTML JavaScript PHP SQL CSS C# MySQL
Software developer
Uppsala

2007-05 - 2010-07

Trippus
Jens worked as a fullstack developer working on both the frontend (HTML, JS) as
well as the backend (C#, SQL) of their travel booking system.

HTML JavaScript ASP ASP.NET SQL Subversion CSS C#

Formación académica

Uppsala university
Uppsala university

2003-01 - 2006-01

Contacta con el consultor

/