Charles Keepax

Principal Software Engineer at Cirrus Logic

City of Edinburgh, Scotland, United Kingdom
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts
email-iconphone-icongithub-logolinkedin-logotwitter-logostackoverflow-logofacebook-logo
Join Prog.AI to see contacts

Summary

👤
Senior
🎓
Top School
award
Top expert inAndroid Open Source Ecosystem
Charles Keepax is a Principal Software Engineer with 13 years of professional experience specializing in low-level and embedded systems, primarily using C and C++. Based in Edinburgh, he has deep expertise in Linux kernel audio subsystems with numerous upstream contributions, including work in the torvalds/linux tree to improve SoundWire/SDCA support. His background spans drivers, signal processing, and firmware for audio and vibration control—having led development of the HAVmeter product from firmware and DSP to electronics collaboration. At Cirrus Logic and prior roles at Wolfson and Reactec he has fixed device driver bugs, added codec features, and tackled tricky power and GPIO issues in BSP kernels. Comfortable with assembly and rudimentary electronics, he blends hands-on embedded engineering with practical product delivery and open-source stewardship.
code13 years of coding experience
job13 years of employment as a software developer
bookBachelor of Science (BSc) Computer Science and Artificial Intelligence, Bachelor of Science (BSc) Computer Science and Artificial Intelligence at The University of Edinburgh
stackoverflow-logo

Stackoverflow

Stats
2,392reputation
150kreached
56answers
1question
Badges
fft
top-5%
math
top-5%
github-logo-circle

Github Skills (21)

c1110
linux-kernel10
c1710
kernel10
device-driver10
sys10
embedded10
math9
codec9
fft9
acpi9
driver9
gpio8
power-management8
fileio6

Programming languages (2)

ShellC

Github contributions (5)

github-logo-circle
tinyalsa/tinyalsa

Jul 2013 - Sep 2017

Tiny library to interface with ALSA in the Linux kernel
Role in this project:
userEmbedded Systems Engineer / IoT Developer
Contributions:5 commits, 1 PR, 2 comments in 4 years 2 months
Contributions summary:Charles primarily contributed to the `tinymix` utility within the `tinyalsa` repository. They focused on improving the handling of integer values in the `tinymix` tool, specifically addressing issues related to enumerated controls. Their work involved refining value detection and output formatting. Further, they reverted a change and fixed formatting issues.
kerneltiny-librarytinylinuxlinux-kernel
torvalds/linux

Nov 2022 - Feb 2023

Linux kernel source tree
Role in this project:
userBack-end Developer
Contributions:5 commits in 2 months
Contributions summary:Charles primarily contributed to the Linux kernel, specifically focusing on the sound subsystem and related drivers. Their work involved fixing probe error paths and ensuring proper device removal synchronization for the cs42l43 MFD driver. They added and refined support for the SDCA (SoundWire Digital Control Adapter) specification, developing helpers to parse and manage SDCA controls and structures, and also added code to handle DisCo constant values and GE entity properties.
kernellinux-kernellinuxkernel-source
Find and Hire Top DevelopersWe’ve analyzed the programming source code of over 60 million software developers on GitHub and scored them by 50,000 skills. Sign-up on Prog,AI to search for software developers.
Request Free Trial
Charles Keepax - Principal Software Engineer at Cirrus Logic