Hoppa till innehållet
Eric Björklund, Senior Embedded developer,

14 år i yrketEgenföretagare

Eric Björklund

Senior Embedded developer,

  • Kvadrat Tech Stockholm

I enjoy taking ownership of components that may have been forgotten, under-tested or lacking clear architecture. My approach always starts with establishing reliable tests, enabling safe refactoring and long-term maintainability. With solid tests in place, clean abstractions naturally emerge — and from those, a fit-for-purpose architecture takes shape. I don’t believe in perfect architectures; I believe in making conscious trade-offs and evolving the design over time to keep systems understandable, maintainable and trustworthy.

Visa mer
  • C++
  • Python
  • Artificial Intelligence
  • GitLab
  • Linux
  • Windows
  • Jenkins
  • Perforce
  • TeamCity
  • CMake
  • Git
  • MATLAB
  • Debugging
  • Documentation
  • Machine Learning
  • Customer Support
  • I2S
  • I2C
  • Oscilloscopes
  • CI-/CD-pipeline
  • USB driver programming
  • vcpkg

Kurser & certifieringar

  • C Körkort2011

Uppdrag

  • Senior Algorithm Engineer

    mars 2026 – nu

    Toptracer (part of Topgolf), is a global market leader in camera-based ball tracking systems for golf, combining computer vision, image processing, and physics modelling to deliver real-time analytics at scale." The system is deployed in more than 1,000 golf ranges worldwide, operating under diverse real-world conditions, with production software running locally on Linux-based infrastructure interacting with camera hardware and network environments.

    The Tracking Core team developed and maintained the core tracking pipeline, where the challenge was to continuously improve accuracy, robustness, and performance of a distributed, production-critical system while handling real-world variability and system-level dependencies across software, hardware, and networks.

    Developed and maintained tracking system components using C++, Python, and Rust, focusing on performance optimization and reliability in a Linux server environment
    Analysed production data in Observe from global installations to identify algorithmic weaknesses, edge cases, and low-frequency/high-impact failures using data-driven debugging techniques
    Implemented, tested, and validated improvements in computer vision and object tracking algorithms, ensuring consistency across varying environmental conditions
    Worked hands-on with system-level interactions between camera hardware, embedded/edge devices, and network configurations to troubleshoot and enhance end-to-end performance
    Collaborated closely within a team of 7 engineers through code reviews, refactoring initaives, technical discussions, and shared ownership, applying pragmatic decision-making
    Evaluated and troubleshooted a next-generation camera system as part of a hardware replacement initiative, performing system-level testing and root-cause analysis across camera hardware, Linux infrastructure, networking, and tracking software to assess production readiness

    Resultat: Enhanced the reliability and robustness of a next-generation camera system by identifying and resolving hardware-software integration issues, helping achieve tracking accuracy comparable to the existing production platform while increasing confidence in future large-scale deployment.

    Teknik och metoder: C++, Python, Rust, Linux, Observe, computer vision, image processing, object tracking, physics modelling, production data analysis, edge computing, embedded Linux, network configuration, system integration, debugging, code reviews

    Visa mer
    • Linux
    • Embedded Linux
    • Image processing
    • Rust
    • Python
    • Computer Vision
    • C++
    • Edge computing
    • Object tracking
    • Production Data Analysis
  • Evidente

    sep. 2024 – feb. 2026

    Consultant Embedded Software Developer

    Evidente is a Swedish engineering consultancy specializing in embedded systems, software architecture, and safety-critical solutions across automotive, industrial and IoT domains.

    Held two consulting engagements. First: design and implementation of a low-power electronic lock using Zephyr RTOS, owning overall system and software architecture. Second: development and maintenance of a Linux-based package management and installation system for an automotive platform, enabling reliable field deployment and updates.

    Ownership of the software for a battery-powered smart lock built on Zephyr RTOS, with communication over BLE and NFC. Responsible for architecture, implementation, driver development, automated testing and CI/CD. Worked closely with a hardware engineer to measure and optimize power consumption and low-power strategy. (C, MCU boot, Nordic nRF52, CMake, Docker, gitlab, device tree, drivers, multithreading, encryption, Bluetooth low energy, DFU, ztest, ninja, OTA)
    Development and maintenance of a Linux-based package management component, delivered as part of a Yocto-based embedded Linux distribution. Redesigned the component architecture using a Ports and Adapters (Hexagonal) approach to separate core domain logic from out-of-process concerns, and implemented a rollback strategy safe against interruptions, ensuring system consistency even in the event of power loss during installation or rollback. (C++, Python, CMake, GTest, PyTest, Yocto, Embedded-Linux, Linux, Valgrind, qemu, Docker, Jenkins, Artifactory, JFrog, json, GCC, clangtidy, clangformat)
    Improving CI/CD build time for a Yocto-based project in Jenkins, analyzing Yocto caching mechanisms and parallelization opportunities across build and test stages to significantly reduce end-to-end build times. (jenkins, Groovy script, artifactory, JFrog, Yocto, artifact caching, bash, Python)

    Results: Extended battery lifetime from approximately 1 year to 3–5 years. Delivered a robust, power-loss-safe update mechanism enabling reliable field deployments without manual recovery. Significantly reduced CI build and test times for the Yocto-based platform, improving developer feedback cycles and overall development velocity.

    Technologies and Methods: Zephyr RTOS, C/C++, DeviceTree, Nordic nRF52, BLE, NFC, secure boot/DFU, unit/integration tests (ztest and gtest), CMake, Ninja, GCC/clang, Linux, Embedded-linux, Yocto, shell, Python, Git, GitLab/Jenkins CI, code reviews, static analysis, Scrum, SAFE, oscilloscopes/logic analyzers

    Visa mer
    • Linux
    • Zephyr
    • Jenkins
    • Git
    • CMake
    • Unit testing
    • Integration testing
    • C/C++
    • Shell
    • OTA
    • NFC
    • GitLab
    • BLE
    • Python
    • Package Management
    • Ninja
    • Static analysis
    • Scrum/Kanban
    • devicetree
    • GCC/Clang
    • Nordic nRF52/ESP32
  • MSAB (Micro Systemation)

    jan. 2017 – sep. 2024

    Software Developer

    MSAB is a global leader in mobile forensics, known for extracting, decoding and analyzing data from smartphones and other devices used by law enforcement and government agencies.

    Rehired to explore and introduce machine learning capabilities and to become responsible for the company’s data enrichment pipeline. Work expanded to include CI improvements and solving C++ package management issues impacting build stability and developer productivity.

    Implementation of image recognition capabilities, from research and prototyping to production integration. Built pipelines to scan large image sets for people, weapons, drugs, money and other categories using open-source models, with runtime selection between GPU and CPU execution to ensure predictable performance across customer environments. (OpenCV, CUDA, neural network models)
    Design and integration of speech-to-text transcription for audio evidence using whisper.cpp, enabling full-text search across customer data sets. Implemented GPU-accelerated inference with automatic CPU fallback depending on available hardware at runtime.
    Implementation of face detection and face recognition workflows using multiple AI models for detection, feature extraction and face comparison, optimized for on-device execution with optional GPU acceleration to handle large-scale data efficiently. (OpenCV, image segmentation, image processing, TensorFlow, PyTorch, CUDA, KNN)
    Redesign of the data enrichment execution model to parallelize processing across multiple decoders and introduce more effective caching strategies, reducing execution time by approximately 50% on representative workloads. (C++ multithreading, caching, refactoring)
    Complete redesign of C++ third-party dependency management for whole company, migrating from manual builds to a central vcpkg registry used across all components. Enabled centralized versioning, automated upgrades, and automatic SBOM generation for third-party dependencies, significantly improving build reproducibility, compliance, and long-term maintainability.(vcpkg, binary caching, deterministic builds, license compliance)
    Overall ownership of the data enrichment platform, including implementation and ongoing maintenance, automated testing integrated into the CI/CD pipeline, and reliable deployment of all components together with their dependencies (artifact caching, artifact management, branching strategy, design, architecture)

    Results: Delivered AI-assisted data enrichment enabling investigators to find relevant evidence; accelerated large-scale data processing by approximately 50% through parallel execution and effective caching helping investigator to get processed data faster; automated third-party dependency updates, allowing developers to focus on product development rather than manual dependency management.

    Technologies and Methods: C++17/20/23, STL, Boost, Python, REST, ML prototyping (scikit-learn), text processing, regex, multithreading, SIMD, vcpkg, CMake, Ninja, TeamCity, Github, Jira, CI, Docker, unit/integration tests, code review, static/dynamic analysis, Scrum, OpenCV, CUDA, GPU, neural network, KNN, C++ multithreading, TensorFlow, Image processing, PyTorch, Scrum, Kanban, Confluence, Git, Github, Perforce

    Visa mer
    • Jenkins
    • REST
    • SQLite
    • CMake
    • Regex
    • Docker
    • STL
    • Machine Learning
    • Boost
    • GitLab
    • Python
    • Conan
    • C++
    • Multithreading
    • Data enrichment
    • CI-/CD-pipeline
    • vcpkg
  • MSAB (Micro Systemation)

    jan. 2015 – dec. 2017

    Software Developer

    MSAB’s products connect to a vast range of mobile devices to extract and decode evidentiary data for digital investigations.

    Main responsibility for Windows USB driver programming to support connectivity with a wide spectrum of phones, plus development of extraction and decoding routines for mobile data formats.

    Contributed to the development and maintenance of Windows USB drivers enabling reliable communication with a wide range of mobile devices, supporting forensic data extraction and decoding. Worked on driver-level USB communication, device compatibility, performance optimization and robust error handling for unstable and legacy devices.

    Results: Expanded supported device coverage by may, new models; reduced driver-related defect rate release-over-release through defensive I/O and rigorous regression tests.

    Technologies and Methods: C/C++, WinUSB, UMDF/KMDF, asynchronous I/O, crash dumps, protocol analyzers (USBlyzer/Wireshark)

    Visa mer
    • Continuous Integration
    • CMake
    • Unit testing
    • C/C++
    • Protocol analyzers
    • Windows
    • HID
    • USB driver programming
    • WinUSB
    • UMDF/KMDF
  • Samsung Nanoradio Design Center

    jan. 2012 – dec. 2015

    Embedded Software Developer

    Samsung Nanoradio Design Center focused on Wi‑Fi/Bluetooth combo chipsets and embedded firmware for consumer and IoT devices, operating under stringent memory and real-time constraints.

    Member of an ~8-person SCRUM team building a speaker/audio solution within a Wi‑Fi/Bluetooth SoC, working close to hardware with C in a constrained environment. Scope included development, testing, documentation, debugging and on-site customer support in Shanghai.

    Contributed to the development of an embedded IoT audio device built on a Wi-Fi/Bluetooth SoC, enabling wireless audio streaming from sources such as DLNA devices and Spotify. Worked close to hardware in a resource-constrained environment, focusing on embedded C development, real-time audio handling and system stability.
    Contributed to establishing an automated test suite for the embedded firmware, improving regression detection and confidence during development in a resource- and real-time-constrained environment.

    Results: Delivered a stable embedded audio solution capable of reliable wireless streaming over Wi-Fi/Bluetooth. Improved firmware robustness and development confidence through the introduction of automated tests, contributing to smoother integrations and fewer late-stage regressions.

    Technologies and Methods: C, RTOS concepts, SVN, Git, Scrum, Jira, DSP basics, I2S, SPI, GPIO, UART, JTAG, circular buffers, oscilloscopes/logic analyzers, continuous integration

    Visa mer
    • Embedded C
    • Git
    • SPI
    • UART
    • GPIO
    • I2S
    • DMA
    • Scrum
    • RTOS concepts
    • DSP basics
    • Fixed-point arithmetic
  • CPAC Systems

    jan. 2012 – dec. 2012

    Master Thesis Worker / Image Processing Intern

    CPAC Systems, member of Volvo group, develops control systems and operator-assist technologies for off-highway machinery and marine applications, with a focus on safety, reliability and HMI.

    Developed a camera-based pedestrian detection prototype for heavy construction equipment to increase operator awareness around large vehicles. Built a driver-assist tool using four external cameras to create a stitched “overview” / bird’s-eye view of the immediate surroundings for truck drivers.

    Master’s thesis focused on the development of a proof-of-concept computer vision-based pedestrian detection system for autonomous construction equipment. The work included data collection and dataset preparation, training and evaluation of neural networks, and comparison with classical machine learning approaches such as SVM and k-NN to assess accuracy, robustness and suitability under real-time constraints. (C++, OpenCV, Neural Network, SVM, k-NN, Machine Learning)
    Short assignment to develop a proof-of-concept 360-degree surround-view system for trucks, based on four external cameras with real-time image stitching. A significant part of the work involved camera calibration and designing a physical test rig to enable controlled data collection and validation.(C++, OpenCV, Image processing)

    Results: Delivered a proof-of-concept pedestrian detection system for autonomous construction equipment, demonstrating reliable detection performance under real-time constraints. Additionally delivered a functional 360-degree surround-view prototype with real-time image stitching, supported by robust camera calibration and a dedicated test rig enabling repeatable validation.

    Technologies and Methods: OpenCV, C++, Neural Network, SVM k-NN, data mining, machine learning, model training

    Visa mer
    • OpenCV
    • Image analysis
    • Image processing
    • Kalman filtering
    • Python
    • C++
    • Multithreading
    • Viola-Jones
    • GPU/OpenCL
    • HOG+SVM

Utbildning

  • M.Sc. in Biomedical Engineering

    2012

    Chalmers

  • B.Sc. in Automation & Mechatronics

    2010

    Chalmers

Kompetens · nivå och år

Tekniker

  • C++
  • Python
  • Artificial Intelligence
  • C
  • Embedded C
  • Embedded programming
  • Image analysis
  • Image processing
  • LaTeX
  • Bluetooth
  • WiFi
  • Java
  • BLE
  • C/C++
  • GPIO
  • Kalman filtering
  • Multithreading
  • NFC
  • Object tracking
  • OpenCV
  • OTA
  • Protocol analyzers
  • PWM
  • Regex
  • REST
  • Rust
  • SIMD
  • STL
  • UART
  • Unit testing

Plattformar

  • GitLab
  • Linux
  • Windows
  • Android
  • Embedded Linux
  • PostgreSQL

Produkter

  • Jenkins
  • Perforce
  • TeamCity
  • Zephyr
  • Conan
  • Docker
  • HID
  • Ninja
  • SQLite

Verktyg

  • CMake
  • Git
  • MATLAB
  • SVN
  • Artifactory
  • Scikit-learn
  • Shell
  • systemd

Metoder och processer

  • Debugging
  • Documentation
  • Machine Learning
  • Package Management
  • Scrum
  • Testing
  • Data extraction
  • Boost
  • Computer Vision
  • Continuous Integration
  • Integration testing
  • Scrum/Kanban
  • SPI
  • Static analysis

Verksamhetsområden

  • Customer Support

Standarder och regelverk

  • I2S

Hårdvara

  • I2C
  • Oscilloscopes

Övrigt

  • CI-/CD-pipeline
  • USB driver programming
  • vcpkg
  • Data Decoding
  • Mobile Forensics
  • Circular buffers
  • Data enrichment
  • devicetree
  • DMA
  • DSP basics
  • Dynamic Analysis
  • Edge computing
  • Fixed-point arithmetic
  • GCC/Clang
  • GPU/OpenCL
  • HOG+SVM
  • Libusb
  • LightGBM
  • Nordic nRF52/ESP32
  • ostree
  • Production Data Analysis
  • RAUC
  • Ring buffers
  • RTOS concepts
  • Secure comms
  • SetupAPI
  • UMDF/KMDF
  • Viola-Jones
  • WinUSB
  • ztest

Den som känner Eric

Theodor Wahlgren

Theodor är Erics kontaktperson på Kvadrat.