[{"content":" Code Thesis The Problem # Automated pain assessment can support healthcare and rehabilitation by making pain measurement more objective. Most research relies on facial expressions, while body movement, which people also use to express and protect themselves from pain, has received far less attention.\nMy Master\u0026rsquo;s thesis at Linnaeus University investigated whether skeleton pose data could be used on its own, or combined with facial features, for three tasks:\nPain recognition: is the person in pain? Intensity estimation: how strong is the pain? Area classification: where is the pain located? Approach # I extracted two modalities from video recordings of people performing an overhead deep squat:\nBody: 17 skeleton keypoints per frame with PoseNet Face: facial action units with OpenFace, based on the Prkachin and Solomon Pain Intensity (PSPI) scale I trained two architectures suited to movement over time, a hybrid CNN-BiLSTM and a recurrent CNN (RCNN). I compared body-only models with three ways of combining (fusing) the two modalities:\ngraph TD A[Video] --\u003e B[PoseNet: 17 body keypoints] A --\u003e C[OpenFace: facial action units] B --\u003e D{Fusion strategy} C --\u003e D D --\u003e|Early| E[Combine inputs] D --\u003e|Late| F[Average model scores] D --\u003e|Ensemble| G[Weighted model voting] E --\u003e H[CNN-BiLSTM / RCNN] F --\u003e H G --\u003e H H --\u003e I[Recognition / Intensity / Area] Tech stack # Language: Python Deep learning: TensorFlow 2.8 and Keras, TensorFlow Addons Feature extraction: PoseNet (body keypoints), OpenFace (facial action units), OpenCV (video preprocessing) Ensembles and augmentation: DeepStack (weighted ensembles), time-series data augmentation Data and evaluation: pandas, NumPy, scikit-learn, k-fold cross-validation Workflow: Jupyter notebooks, Cookiecutter Data Science project structure, Pipenv Results # Task Best strategy AUC Pain recognition Body + face ensemble 0.71 Intensity estimation Body only (CNN-BiLSTM) 0.75 Area classification Late fusion (RCNN) 0.75 Body movement alone was the strongest signal for estimating pain intensity, and combining it with facial features helped with recognising and localising pain. This shows that skeleton data is a useful modality for automated pain assessment, both on its own and alongside facial expressions.\nThe dataset is private because of ethical and privacy agreements with the participants, so the repository is provided as a reference for the models and methods.\nIdeas for Continuation # Graph neural networks: a skeleton is naturally a graph, and spatio-temporal graph neural networks capture the dependencies between joints better than CNN-BiLSTMs. Transformers for fusion: cross-attention would let the model learn, frame by frame, whether the face or the body is the more reliable signal. Edge deployment: pose estimation now runs in real time on ordinary devices, which would make live clinical feedback possible. ","externalUrl":null,"permalink":"/projects/spot-the-pain/","section":"Projects","summary":"Master’s thesis (2022): can body movement, captured with skeleton pose estimation, recognise, grade, and localise pain - either alone or combined with facial expressions?","title":"Spot the Pain","type":"projects"},{"content":"","date":"12 August 2026","externalUrl":null,"permalink":"/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":"","date":"12 August 2026","externalUrl":null,"permalink":"/tags/cloud/","section":"Tags","summary":"","title":"Cloud","type":"tags"},{"content":"","date":"12 August 2026","externalUrl":null,"permalink":"/tags/cloud-native/","section":"Tags","summary":"","title":"Cloud Native","type":"tags"},{"content":"There will be some occasional posts here and I will be writing mostly about cloud-native observability.\n","date":"12 August 2026","externalUrl":null,"permalink":"/blog/first-post/","section":"Blogs","summary":"Learn more about observability in cloud native architecture. What has happened and where the field is going.","title":"My First Blog Post","type":"blog"},{"content":"","date":"12 August 2026","externalUrl":null,"permalink":"/tags/observability/","section":"Tags","summary":"","title":"Observability","type":"tags"},{"content":"","date":"12 August 2026","externalUrl":null,"permalink":"/tags/software-development/","section":"Tags","summary":"","title":"Software Development","type":"tags"},{"content":"","date":"12 August 2026","externalUrl":null,"permalink":"/tags/software-engineering/","section":"Tags","summary":"","title":"Software Engineering","type":"tags"},{"content":"","date":"12 August 2026","externalUrl":null,"permalink":"/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":" Privacy \u0026amp; Ethics # This website is designed to be as minimal and data-respectful as possible.\n1. Cookies # This website is a static site built with Hugo. It does not use any cookies for tracking, advertising, or analytics. There is no cookie consent banner because it is not necessary.\n2. Data Collection # No personal data is collected, stored, or processed by this website.\nThere are no contact forms that store information in a database. There is no third-party tracking (e.g., Google Analytics, Facebook Pixel). 3. Hosting \u0026amp; Infrastructure # This site is hosted on Cloudflare Pages. Cloudflare may collect anonymized metadata (such as IP addresses, browser types, and timestamps) for security purposes (e.g., DDoS protection) and performance monitoring. This data is handled by Cloudflare in accordance with their privacy standards and is not used by me for any personal identification.\n4. External Links # My portfolio contains links to third-party websites (GitHub, LeetCode, LinkedIn, etc). Once you leave my domain, please refer to the privacy policies of those respective platforms.\nLast updated: February 2026\n","date":"10 February 2026","externalUrl":null,"permalink":"/privacy/","section":"Angelica Hjelm Gardner - Software Developer","summary":"Privacy \u0026 Ethics # This website is designed to be as minimal and data-respectful as possible.\n1. Cookies # This website is a static site built with Hugo. It does not use any cookies for tracking, advertising, or analytics. There is no cookie consent banner because it is not necessary.\n","title":"Privacy Policy","type":"page"},{"content":" ","date":"6 February 2026","externalUrl":null,"permalink":"/","section":"Angelica Hjelm Gardner - Software Developer","summary":" ","title":"Angelica Hjelm Gardner - Software Developer","type":"page"},{"content":" 👋 Hi and Welcome # I\u0026rsquo;m a Cloud Native Developer based in Stockholm, working on Go microservices in Ericsson\u0026rsquo;s 5G Observability domain. I recently returned from a period of study abroad in Saudi Arabia, where I studied Arabic at Umm Al-Qura University, and I\u0026rsquo;m now back with my team full-time as a developer. To see which open-source software projects I’ve created or made contributions to see my GitHub Profile.\nMy background spans AI/ML engineering in Python through my academic work and cloud-native infrastructure development in Go. I have experience as Scrum Master but I\u0026rsquo;m happiest when I\u0026rsquo;m deep in the technical work. To follow my publications, see my Google Scholar Profile.\nFun Facts # ✨ I\u0026rsquo;ve worked in several programming languages, current regulars are Go and Python. Before that I\u0026rsquo;ve used Java, JavaScript and C#. Today I\u0026rsquo;m learning C++ as a hobby.\n✨ I am a mom of 5 (3 girls and 2 boys).\n✨ I am fluent in Swedish and English, and have an intermediate proficiency in Arabic and Spanish.\n","externalUrl":null,"permalink":"/about/","section":"Angelica Hjelm Gardner - Software Developer","summary":"👋 Hi and Welcome # I’m a Cloud Native Developer based in Stockholm, working on Go microservices in Ericsson’s 5G Observability domain. I recently returned from a period of study abroad in Saudi Arabia, where I studied Arabic at Umm Al-Qura University, and I’m now back with my team full-time as a developer. To see which open-source software projects I’ve created or made contributions to see my GitHub Profile.\n","title":"About","type":"page"},{"content":"","externalUrl":null,"permalink":"/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"Please reach me on my LinkedIn account, or use the form below.\nName Email Message\nSend\n","externalUrl":null,"permalink":"/contact/","section":"Angelica Hjelm Gardner - Software Developer","summary":"Please reach me on my LinkedIn account, or use the form below.\nName Email Message\nSend\n","title":"Contact","type":"page"},{"content":"","externalUrl":null,"permalink":"/tags/deep-learning/","section":"Tags","summary":"","title":"Deep Learning","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/health-research/","section":"Tags","summary":"","title":"Health Research","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/machine-learning/","section":"Tags","summary":"","title":"Machine Learning","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/multimodal-learning/","section":"Tags","summary":"","title":"Multimodal Learning","type":"tags"},{"content":"","externalUrl":null,"permalink":"/tags/pose-estimation/","section":"Tags","summary":"","title":"Pose Estimation","type":"tags"},{"content":"A selection of my research and engineering projects.\n","externalUrl":null,"permalink":"/projects/","section":"Projects","summary":"A selection of my research and engineering projects.\n","title":"Projects","type":"projects"},{"content":"Click here to download my resume as PDF\nWork Experience # Ericsson # Cloud Native Developer (Aug, 2026 — Current) # In 2026, I took a 6-month period of leave to study Arabic at Umm Al-Qura University in Saudi Arabia. I\u0026rsquo;ve since returned to Stockholm and am back with my team in the Observability domain, now focused fully on development. Cloud Native Developer \u0026amp; Scrum Master (Aug, 2022 — Jan, 2026) # Developed and maintained two Golang microservices within the 5G Observability domain, ensuring high availability in Kubernetes-native environments for critical cloud-based telecommunications infrastructure.\nStreamlined team delivery by facilitating Scrum ceremonies and driving a culture of proactive blocker identification, better internal documentation, and continuous improvement — tracked and managed through Jira.\nParticipated in conducting technical interviews for junior developers and design the onboarding process to improve time-to-productivity for new hires.\nProvided technical input to roadmap prioritization, bridging feasibility assessments with business requirements to ensure on-time delivery of high-impact features.\nAwarded Key Contributor Award (2024) for excellence in product strategy and guiding the team through organizational transitions.\nTech Stack # Simple [A] # Software Developer Intern, R\u0026amp;D (Jan, 2019 — Jun, 2019) # Engineered an NLP-powered conversational AI prototype using Dialogflow, GraphQL, and Neo4j to validate production feasibility — designing intent handling, graph-based data relationships, and a fallback recovery module that provided context-aware responses for unhandled user inputs, reducing drop-off and friction. Tech Stack # Mjukhud.se # Junior Web Developer (Jan, 2015 — Dec, 2016) # Optimized cross-platform responsiveness for Magento and WordPress ecosystems using a mobile-first approach. Leveraged Bootstrap and custom JavaScript to ensure a seamless and consistent user experience across device viewports.\nHardened platform security and stability by proactively mitigating vulnerabilities through Magento security patches and executing critical backend bug fixes to ensure high site reliability.\nStarted frontend performance initiatives, implementing advanced optimization techniques (asset minification, critical path rendering) that resulted in measurable improvements to Google PageSpeed Insights scores and Core Web Vitals.\nTech Stack # Recognition # Key Contributor # Ericsson - Jan, 2024\nCertifications # Education # Linnaeus University (Master) # Master of Science with specialization in Software Technology, Computer Science\nLinnaeus University (Bachelor) # Bachelor of Science, Computer Science\nMid Sweden University # Higher Education Diploma with specialization in Web Development, Computer Engineering\n","externalUrl":null,"permalink":"/resume/","section":"Angelica Hjelm Gardner - Software Developer","summary":"Click here to download my resume as PDF\nWork Experience # Ericsson # Cloud Native Developer (Aug, 2026 — Current) # In 2026, I took a 6-month period of leave to study Arabic at Umm Al-Qura University in Saudi Arabia. I’ve since returned to Stockholm and am back with my team in the Observability domain, now focused fully on development. Cloud Native Developer \u0026 Scrum Master (Aug, 2022 — Jan, 2026) # Developed and maintained two Golang microservices within the 5G Observability domain, ensuring high availability in Kubernetes-native environments for critical cloud-based telecommunications infrastructure.\n","title":"Resumé","type":"page"}]