Senior Embedded Software Developer

  • Job Tracking ID: 512894-577749
  • Job Location: Charlotte, NC
  • Job Level: Mid Career (2+ years)
  • Level of Education: BA/BS
  • Job Type: Full-Time/Regular
  • Date Updated: May 31, 2017
  • Years of Experience: 5 - 7 Years
  • Starting Date: ASAP

Invite a friend
facebook LinkedIn Twitter Email

Job Description:

Position Overview

This role is responsible for C/C++/JAVA software engineering & developing with extensive work in designing and building high-quality, high-performance applications and services. You will work with and guide a team of experienced analysts, developers and business resources to research, design, develop, and test embedded software solutions for our company’s growing line of industrial automation products.

The successful candidate will be a responsible, motivated, self-started who is able to work alone as well as in a team environment.


  • Research, design and develop major functional and performance enhancements for existing products and develop new software products and tools.
  • Design and develop applications predominately in C/C++/JAVA on a Linux platform
  • Analyze and code complex modules, define data structures, and specify test tools
  • Solve problems and create solutions for embedded systems and multi-threaded applications
  • Troubleshoot, isolate, and resolve issues in complex systems and components
  • Communicate effectively (written and verbally) with management, systems engineers, and other software developers on ideas and solutions
  • Successfully complete multiple simultaneous tasks in an environment with rapidly changing priorities
  • Actively participate in a small, experienced, energetic team on a rapid, agile development schedule
  • Write and maintain lower level device drivers and various hardware interfaces, in addition to higher level I/O subsystems in C/C++/JAVA
  • Design, develop and support desktop, server, and embedded software for various high profile products
  • Take ownership of projects and lead team members
  • Plan, document and execute software testing activities
  • Design and implement embedded software in line with best practice
  • Perform rapid-prototyping to support functional requirement development
  • Perform Deep dive analysis improving hardware, software interfaces
  • Test and validate new software features within our products and solutions and/or on the test bench

Experience and Skills:

Required skills & knowledge

  • Extensive software engineering experience using C/C++/JAVA/Content Management Systems & Agile Methodology
  • Ability and willingness to read through code written by others, as well as the ability to create your own clean sheet designs
  • Strong Knowledge of Linux or a POSIX O/S environment, especially on embedded platforms
  • Hands-on experience developing, designing and testing real-time, multi-threaded and multi-process embedded applications on Linux
  • Highly proficient in C++ and associated object-oriented design
  • Solid understanding of object-oriented programming (OOP) and computer science foundations, such as memory management, multi-threading, and low-level algorithm performance
  • Deep knowledge of embedded software implementation best practices is a plus
  • Experience with TCP/IP socket programming and inter-process communication (IPC)
  • Experience with multi-threaded application development (use of threads, queues, mutexes, file I/O, etc.)
  • Experience with profiling / optimizing software algorithms
  • Experience with OpenCV
  • Experience in all phases of the software development life-cycle
  • Experience in developing low-level TCP/IP socket communications routines
  • Thorough knowledge of Network appliances, networking (TCP, HTTP) and firewall fundamentals
  • Experience with source control and bug tracking tools
  • Image and/or signal processing experience a plus
  • Ability to read and interpret schematics and wiring diagrams is a plus
  • Experience with OCR and VoIP a plus
  • Early development planning
  • Work with full life cycle of product(s)
  • Design / Proof of Concept
  • Additional experience with QT and embedded test code development are all highly desirable
  • The ability to proactively drive technical solutions in a collaborative environment


  • Bachelor’s degree in Computer Science, Software Engineering or related area is preferred
  • Certifications are a plus


  • Must have a passion for delivering exceptional products
  • Team oriented
  • Mentoring and leadership skills
  • Works with a sense of urgency
  • Complex problem solving skills
  • Presentation skills
  • Adaptability, flexibility and attention to detail
  • Strong verbal and written customer service skills

Work Environment/Dynamics

  • Must be able to sit and use computer and equipment for long periods
  • Must tolerate stressful situations gracefully
  • Flexible with working remote as needed for projects/implementation

Physical Ability

The physical demands described here are representative of those that must be met by an employee to successfully perform the essential functions of this job. Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.

While performing the duties of this job, the employee is regularly required to stoop, kneel, crouch, talk and hear. The employee frequently is required to stand; walk; sit; climb stairs; use hands to finger, handle, or feel; and reach with hands and arms. The employee is occasionally required to climb or balance. The employee must frequently lift and/or move up to 30 pounds. Specific vision abilities required by this job include ability to adjust focus.


Health - Company pays portion

Dental  - Employee Paid

Vision - Employee Paid

Short Term Disability  - Employee Paid

LTD / Life / AD&D = 100 %  Company Paid

15 PTO Days

9 Paid Holidays