Hoppa till sidans innehåll

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

Kort om Kvadrat

Spetskonsulter inom systemutveckling, teknik, digitalisering, informationshantering, ledning, organisations- och verksamhetsutveckling.