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

Chris Kottaridis

Verified Expert  in Engineering

Software Developer

Location
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.

Portfolio

Toyota Material Handling, Inc - Main
Embedded C++, C++, Embedded Systems, Embedded Hardware, Embedded C...
Freelance Client
C++, FreeRTOS, Analog-to-digital Converters (ADC), EEPROM, GitLab, ARM Embedded...
IBM
PHP, Linux, Eclipse, MySQL, JavaScript, CSS, HTML, LAMP, Apache, Java, APIs...

Experience

Availability

Full-time

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

Embedded Systems Developer

2023 - 2023
Toyota Material Handling, Inc - Main
  • Developed an application that gathered messages from I/O processors and reported various messages to the Redis publisher-subscriber tool, which forwards them to a web-based database.
  • Built a tool to gracefully shut down user space processes when the temperature crossed a specific threshold. When the temperature dropped below a point, it would reboot the system to start all the applications again.
  • Re-factored code that monitored an impact sensor and reported warnings and errors to the Redis publisher-subscriber tool, which forwards them to a web-based database.
  • Fixed various bugs in various applications using the Microsoft ADO bug tracking system.
Technologies: Embedded C++, C++, Embedded Systems, Embedded Hardware, Embedded C, Embedded Software, Firmware, Back-end, APIs

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, Firmware, Back-end, APIs, Kernel

Software Developer

2016 - 2021
IBM
  • 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, APIs, Web Applications

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, Back-end, APIs, Kernel, Networking

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, Kernel, Networking

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.

Libraries/APIs

Garmin API

Tools

Apache, Git, Android Studio, Gradle, GitLab

Languages

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

Storage

MySQL

Platforms

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

Other

IBM SoftLayer, Linux Kernel Programming, ASCII, UTF-8, Embedded Systems, Embedded Development, Firmware, Back-end, APIs, 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), Web Applications, Networking, SOAP, Embedded Hardware, Embedded Software

Collaboration That Works

How to Work with Toptal

Toptal matches you directly with global industry experts from our network in hours—not weeks or months.

1

Share your needs

Discuss your requirements and refine your scope in a call with a Toptal domain expert.
2

Choose your talent

Get a short list of expertly matched talent within 24 hours to review, interview, and choose from.
3

Start your risk-free talent trial

Work with your chosen talent on a trial basis for up to two weeks. Pay only if you decide to hire them.

Top talent is in high demand.

Start hiring