Chris Kottaridis, Developer in Roanoke, TX, United States
Chris is available for hire
Hire Chris

Chris Kottaridis

Verified Expert  in Engineering

Software Developer

Roanoke, TX, United States
Toptal Member Since
April 12, 2022

Chris has 25 years of experience in Linux environments. Most of those years were spent in operating system development, such as writing device drivers and embedded Linux systems. His most recent tasks have been in the cloud computing world, where he was on IBM Cloud's core development team. He's currently interested in both Linux and FreeRTOS-based embedded systems.


Freelance Client
C++, FreeRTOS, Analog-to-Digital Converters (ADC), EEPROM, GitLab, ARM Embedded...
PHP, Linux, Eclipse, MySQL, JavaScript, CSS, HTML, LAMP, Apache, Java
Wind River Systems (Subsidiary of Intel Corporation)
C, Linux, Git, Bash, Python, Perl, Yocto, Embedded Linux...




Preferred Environment

Linux, Unix, C, C++, Android Studio, Analog-to-Digital Converters (ADC), I2C, FreeRTOS, Device Drivers, ARM Embedded

The most amazing...

...thing I've developed is a scheduling tool to allow customers to schedule various tasks to be performed by the employer's team.

Work Experience

C++ Back-end Developer for Robotics Control Application

2022 - 2023
Freelance Client
  • Created a variable storage subsystem for the STM32L476 microcontroller's EEPROM. The task involved porting STM32 Cube code into the client's FreeRTOS environment. The work was done using C++ with Eclipse IDE.
  • Created an Analog-to-Digital driver for STM32 STM32L476 micro-controller. This was a polling driver to replace the existing driver. The code was written from scratch for the client's FreeRTOS environment. The work was done using C++ with Eclipse IDE.
  • Wrote an I2C driver for STM32L476 microcontroller. This was an interrupt-driven driver that could perform multiple transfers. The code was written in C++ for the client's FreeRTOS environment. The Eclipse IDE was used.
  • Built physical units classes. Devices measure voltage in different units. Some in volts and some in milli-volts. This can result in conversions scattered all throughout the code. The voltage and amperage classes localize the conversions to one place.
  • Recommended a protocol to exchange data between the firmware and the controlling device. It allowed for different types of data like JSON or XML. This recommendation was made as an alternative to the existing one being used that had some problems.
  • Added code to define a test mode that can be used during development. This model created a FreeRTOS environment with a dedicated task to use during development to test new features as they are added.
Technologies: C++, FreeRTOS, Analog-to-Digital Converters (ADC), EEPROM, GitLab, ARM Embedded, I2C

Software Developer

2016 - 2021
  • Developed a scheduling tool for the managed services team to schedule routine patching.
  • Added a new feature to display data from the monitoring device.
  • Performed code security analysis and fixed issues as needed.
  • Created a tool to monitor incoming support requests for managed services and flag high-priority issues.
  • Made a tool to monitor previously scheduled support requests.
Technologies: PHP, Linux, Eclipse, MySQL, JavaScript, CSS, HTML, LAMP, Apache, Java

Member of Technical Staff

2001 - 2015
Wind River Systems (Subsidiary of Intel Corporation)
  • Acted as a member of the original team for the company's Linux embedded systems product.
  • Ported Linux source RPM's into Wind River's build system. This involved creating RPM build and installation sections as well as making changes to the source code to compile and execute properly in the Wind River environment.
  • Served as the tech lead and primary creator of the Linux sustaining engineering team. I was responsible for setting policies and procedures for the team.
  • Approved escalations and all patch fixes for existing releases. Gave guidance on how to troubleshoot technical problems.
  • Fixed the bugs in any language that might be in the application level or the kernel. This included C, C++, Python, Bash, and Perl.
Technologies: C, Linux, Git, Bash, Python, Perl, Yocto, Embedded Linux, Linux Kernel Programming, Linux Kernel Modules, Linux Kernel, Device Drivers, Linux Device Driver

Software Development Engineer

1994 - 2001
Berkeley Software Design
  • Performed bug fixes primarily in the Unix kernel. I also had the responsibility of building and distributing patches to our customers.
  • Created device drivers for the BSD Unix kernel. This included both ethernet drivers and RAID disk controllers.
  • Hired as the initial employee to provide telephone support for the BSD Unix product. Defined the policies and procedures for the support team. Trained all incoming support team members.
Technologies: C, Linux, Perl, Embedded Linux, Apache, Linux Kernel Programming, Linux Kernel Drivers, Linux Kernel Modules, Linux Kernel, Device Drivers

Software Developer

1991 - 1994
Ceram Inc
  • Created a software hard disk compression program for DOS computers. This involved implementing a proprietary software compression algorithm and a strategy to store the variable-sized compressed blocks on the fixed disk drive.
  • Built an installation tool for the Sun Microsystem's TurboDisk product. I wrote the installation script that automatically installed the necessary device driver and rebuilt the UNIX kernel.
  • Provided customer support for the TurboDisk product.
Technologies: C

Race Chase

This is a simple Android app that can be used to track two race competitors. It was initially intended for car races to see how one competitor was able to catch up to another racer. However, it applies to any closed course competition, such as swimming and track.

Scheduling Tool

Wrote a scheduling tool for IBM's managed hosting team. It integrated with their in-house ticketing system. It was primarily used for creating tickets at scheduled times for the managed hosting team to perform patching on customers' machines. However, it was capable of creating a schedule for any purpose.


PHP, C, C++, Embedded C, Bash, Perl, PHP 7, HTML, CSS, Embedded C++, Kotlin, Python, Java, JavaScript


Apache, Git, Android Studio, Gradle, GitLab


Linux, Unix, LAMP, Eclipse, Embedded Linux, Android


IBM SoftLayer, Linux Kernel Programming, ASCII, UTF-8, Embedded Systems, Embedded Development, Firmware, Yocto, Linux Device Driver, Device Drivers, Linux Kernel, Linux Kernel Modules, Linux Kernel Drivers, FreeRTOS, Analog-to-Digital Converters (ADC), EEPROM, ARM Embedded, I2C, Real-time Operating System (RTOS), SOAP




Garmin API