Curriculum Vitae


PROFILE
Embedded software developer with 20+ years of experience across embedded Linux, C/C++, and industrial systems, complemented by deep systems-administration and DevOps expertise. Builds and maintains the full stack from kernel and drivers through CI/CD pipelines and hosting infrastructure. Currently focused on embedded Linux development, with strong, hands-on infrastructure skills (Yocto, CI/CD, containerization, Linux security hardening) built over a career that began in systems administration. Enjoys sharing that expertise through teaching — mentoring colleagues and publishing a self-authored STM32 course on Udemy.

CORE SKILLS

Development

  • Embedded Linux & board bring-up
  • C / C++
  • Driver development (userspace)
  • Low-level network/protocol programming (raw TCP/Ethernet)
  • PLC programming & industrial fieldbus protocols
  • FPGA integration (Xilinx Zynq-7000)
  • Secure boot & chain-of-trust design
  • Fault-tolerant boot architecture (A/B, recovery)
  • Cross-compilation & toolchain management
  • Yocto (build systems & image customization)
  • Adaptive AUTOSAR
  • UML modeling
  • Git version control
  • Python & Bash for tooling and test automation
Infrastructure & DevOps

  • CI/CD pipeline design (Azure DevOps)
  • Docker & containerized build/test environments
  • Virtualization (Proxmox VE/Backup Server, VMware ESX)
  • Linux/Unix system administration & security hardening
  • Windows Server administration
  • Networking & firewall configuration (DHCP, DNS, iptables, Windows Firewall)
  • Configuration management (Puppet)

EMPLOYMENT

Jan 2025 – PresentEmbedded Developer – Guidelinegeo AB

As one of three developers on the team, personally designed, built, and orchestrated the internal tooling and infrastructure enabling the team’s development workflow — build systems, CI/CD, hardware emulation, and board access/test infrastructure — alongside core embedded development work:

Contribute to software architecture and implementation for Linux-based embedded systems, performing board bring-up on new hardware platforms from first boot to full system operation; train colleagues in Linux administration and embedded development, including toolchain setup and cross-compilation.

Write modular, highly testable code across the codebase, using a portable Docker-based hardware emulator and an automated pytest suite (including hardware resource reservation) — enabling other developers to build and test against the hardware without physical access.

Developed a userspace driver for an FPGA on a Xilinx Zynq-7000 board, handling IRQ management, a configuration register, and output data.

Designed a fast, reliable, checksum-verified software upgrade mechanism with a fault-tolerant boot architecture — QSPI/U-Boot selecting between redundant A/B images on eMMC, with a recovery image fallback if the board is bricked.

Designed security hardening using a certificate-based chain of trust to ensure only a verified kernel and system can boot, combined with LUKS disk encryption.

Set up and maintained Yocto build environments; configured and maintained Linux systems including kernel drivers, startup services, networking, firewall policies, and security hardening.

Built CI/CD pipelines in Azure DevOps automating build, test, and deployment workflows (including a release and build pipeline using a self-hosted build agent), and deployed Proxmox VE and Proxmox Backup Server to host build containers and support CI/CD tooling.

Configured MikroTik routers and a Raspberry Pi-based control server to provide network access and remote power control for multiple hardware development boards sharing the same IP address.

Built a Python GUI application for taking measurements from the embedded device, using AI-assisted development to accelerate delivery.

Technologies: Embedded Linux, Yocto, C/C++, Bash, Python, Docker, pytest, CI/CD (Azure DevOps), Proxmox VE, Xilinx Zynq-7000/FPGA, U-Boot, QSPI, eMMC, secure boot/chain of trust, LUKS, MikroTik, Raspberry Pi, Git, networking, Linux security hardening.

May 2023 – Jan 2025Java Developer – Lumera AB

  • Maintained and extended a Java-based insurance application (Inca) covering traditional insurance, income statement, and tax processing — resolving defects and delivering new functionality within an established codebase.
  • Wrote an internal guide for installing and configuring Linux as a full development desktop environment for colleagues.
Jan 2022 – May 2023Senior Consultant – Knightec AB, Stockholm

Worked across three client projects:

  • Scania — C++ development for in-truck software update systems, using the Adaptive AUTOSAR framework. Delivered new functionality, conducted code reviews, and modeled software with UML.
  • Metso Outotec (LIDAR/VR) — Built a wear-analysis application mapping and plotting LIDAR data from an industrial grinding mill, visualized in Unity for browser (WebGL) and VR (Oculus Quest).
  • Metso Outotec (Qt migration) — Migrated a C++ product from Qt5/QMake to Qt6/CMake; developed cloud-storage communication with OAuth2 support for a mill wear-detection product.

Technologies: CMake, Qt, C++, Git, Jira, Confluence, GitLab, Adaptive AUTOSAR, Jenkins.

Aug 2019 – Dec 2021Software Developer – Ericsson AB

  • Developed and maintained userspace drivers in C within a Linux-based embedded environment, as part of the XCS group responsible for link management on internal circuit-board and external communications.
  • Extended drivers with new functionality, fixed bugs, and developed tests.
  • Implemented raw TCP/Ethernet messaging using C for low-level link communication.
  • Built an iperf3-based tool to benchmark link performance at the MAC layer (Layer 2), since the device ran a custom Layer 3+ stack instead of standard IP/TCP/UDP that standard iperf requires.
  • Updated device tree files for board hardware configuration.
  • Worked with Yocto and BitBake to build and maintain embedded Linux images.

Technologies: Ethernet, switches, I2C, Yocto, BitBake, device tree, iperf3, Git, Autoconf, Gerrit, Linux, Jenkins, Jira, Eclipse.

Mar 2017 – Aug 2019Embedded C++ Developer – Atlas Copco Industrial Technique AB

  • Developed embedded software in a Linux-based environment for an industrial screwdriver product used in automotive assembly lines.
  • Programmed PLC applications across multiple fieldbus platforms, including Siemens, Allen-Bradley, and Mitsubishi.
  • Developed the Anybus driver to handle communication correctly over CC-Link2.
  • Authored design proposals and functional specifications; implemented new functionality and resolved defects; owned several components in the codebase.

Technologies: Profibus, Profinet, DeviceNet, CC-Link/CC-Link IE, CC-Link2, Anybus, Siemens, Allen-Bradley, and Mitsubishi PLCs, CAN, Ethernet, Git, Make, Docker, Google Test, Gerrit, Linux, Jenkins, Jira, Eclipse, Python, Elasticsearch.

2000 – 2017Earlier Career – IT & Systems Administration

  • Unix Administrator, Telecomputing Sweden AB, Stockholm (2012–2017) — Administered Unix/Linux server environments (CentOS, Solaris, Debian, Ubuntu); configured the company’s external DNS servers and managed Puppet and Spacewalk for configuration and patch management.
  • Built an internal application that performed DNS zone transfers to read all client zones and translate client IP ranges into NAT‘ed addresses, giving backup servers and support controlled access to client servers.
  • Consultant, Telecomputing Sweden AB, Stockholm (Jul 2011–Jan 2012) — Windows/Linux server and network configuration (SCCM, DFS, DHCP, DNS, SQL, Nagios) for enterprise clients.
  • Linux Administrator, Bwin Games AB, Stockholm (2010–2011) — Built monitoring, alerting, and automation scripts (Perl, Bash, PHP) for a JBOSS-based production platform.
  • Server Technician, People To People IT Consulting AB, Stockholm (2008–2010) — Third-line support for server and client environments, with responsibility for the VMware ESX virtualization servers; administered SAN, NAS, and backup storage and firewalls, and led server and client updates across Windows Server, Linux, and Solaris.
  • Additional early IT roles, 2000–2008 — IT support and web development (CAM Consulta AB/TietoEnator, SQM, Dandruff Communication).

EDUCATION

2013 – 2016BSc Electrical Engineering, 180 hp — KTH Royal Institute of Technology, Stockholm
2012 – 2013Technical Preparatory Year — KTH Royal Institute of Technology, Stockholm

COURSES & PUBLICATIONS

UdemyAuthor, STM32 Beginner Course — created and published a self-paced course teaching STM32 microcontroller fundamentals to beginners.

LANGUAGES

Swedish (native) | English (fluent, professional working proficiency)

Leave a Reply

Your email address will not be published. Required fields are marked *