Charles Anderson has over 20 years of experience in the computer industry. He has worked as a programmer, technical lead, systems administrator, build engineer, chief technical officer, and professor.
Charles's passion is systems programming, where "systems programming" is defined pretty broadly: everything from firmware and embedded systems to Java web application frameworks. This work has included real-time programming, Unix kernel programming, low-level database and file system internals, networking, distributed objects, and security. He has a strong preference for, but not a dogmatic devotion to, open-source tools and technologies.
In addition to systems programming, Charles has always been a strong proponent of software engineering best practices. He is often the lead in setting up revision control, automated and regular builds, regression testing, bug testing, and bug tracking when any or all of those processes are lacking in an organization.
Charles enjoys educating others on all of these topics. In addition to his experience as a university professor teaching these subjects, he has also given talks at conferences, made client presentations, and spoken to civic groups.