Eric Björklund
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.
Erics utvalda uppdrag
-
Senior Algorithm Engineer
2026 -
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 -
Evidente
Consultant Embedded Software Developer
2024 - 2026
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 -
MSAB (Micro Systemation)
Software Developer
2017 - 2024
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
Erics kompetenser
-
Metoder & processer
Computer Vision, Documentation, Testing, Continuous Integration, Integration testing, Debugging, Machine Learning, Boost, SPI, Package Management, Static analysis, Scrum, Data extraction, Scrum/Kanban -
Verksamhetsområde och funktion
Customer Support -
Plattformar
Embedded Linux, Linux, Android, Windows, GitLab, PostgreSQL -
Produkter
Zephyr, Jenkins, TeamCity, Perforce, SQLite, Docker, Scikit-learn, HID, Ninja, Conan -
Roller
SW Architecture Design -
Standarder & regelverk
I2S -
Tekniker
Object tracking, Rust, Embedded C, OpenCV, Java, REST, Regex, LaTeX, C, Unit testing, C/C++, Bluetooth, STL, Image analysis, Protocol analyzers, WiFi, OTA, NFC, SIMD, Artificial Intelligence, Image processing, UART, BLE, GPIO, Kalman filtering, Python, PWM, Embedded programming, C++, Multithreading -
Verktyg
MATLAB, Git, CMake, SVN, Shell, Artifactory, systemd -
Okategoriserat
Edge computing, Production Data Analysis, I2C, Oscilloscopes, Mobile Forensics, RAUC, DMA, Data enrichment, Dynamic Analysis, Libusb, LightGBM, CI-/CD-pipeline, vcpkg, devicetree, GCC/Clang, Data Decoding, USB driver programming, ztest, WinUSB, SetupAPI, Ring buffers, Circular buffers, Viola-Jones, GPU/OpenCL, Nordic nRF52/ESP32, ostree, HOG+SVM, Secure comms, UMDF/KMDF, RTOS concepts, DSP basics, Fixed-point arithmetic
Erics tidigare uppdrag
-
Senior Algorithm Engineer,
2026 -
-
Consultant Embedded Software Developer, Evidente
2024 - 2026
-
Software Developer, MSAB (Micro Systemation)
2017 - 2024
-
Software Developer, MSAB (Micro Systemation)
2015 - 2017
-
Embedded Software Developer, Samsung Nanoradio Design Center
2012 - 2015
-
Master Thesis Worker / Image Processing Intern, CPAC Systems
2012 - 2012
Erics utbildningar
-
Biomedical Engineering, Chalmers
2012 - 2012
-
Automation & Mechatronics, Chalmers
2010 - 2010