C/C++ Software Engineer 2 - Communication protocols
Garmin Ltd
Cary, United States of America
22 days ago
Role details
Contract type
Internship / Graduate position Employment type
Full-time (> 32 hours) Working hours
Regular working hours Languages
EnglishJob location
Cary, United States of America
Tech stack
C++
Cloud Storage
Configuration Management
Communications Protocols
Computer Engineering
Software Debugging
Linux
Embedded C
Linux on Embedded Systems
Emulators
Real-Time Operating Systems
Software Engineering
Project Management
Data Streaming
Wi-Fi Technology
Multithreading
Scripting (Bash/Python/Go/Ruby)
Computer Network Technologies
Garmin
Information Technology
Free and Open-Source Software
Wireless Technologies
Build Process
Job description
As a member of the Networking Technology team, you will deliver software features for a diverse set of innovative products such as next-gen dashcams, fishfinders, chartplotters, bike computers, handheld 2-way radios, and other personal navigation devices tailored for off-roading, racing, trucking, and recreation. We push the limits of wireless connectivity to deliver advanced features such as remote device monitoring, media streaming, automated cloud storage uploads, automatic software and map updates, and many more unique capabilities., * Design and deliver high-quality embedded C and C++ software on embedded Linux and real time operating systems (RTOS)
- Prototype and productize software features in a fast-paced environment
- Analyze, debug, and resolve Wi-Fi performance and interoperability issues using wireless protocol analyzers as well as tenacity and ingenuity
- Collaborate with stakeholders across Garmin to implement innovative connectivity use-cases and to enhance existing designs to meet new requirements
- Integrate, maintain, and contribute to third-party and open-source software projects
- Utilize software engineering tools such as configuration management systems, build processes, and debuggers in the software development process
- May perform as a technical leader or Lead Software Engineer for derivative software project
- Collaborate and add value through participation in peer code reviews, providing comments and suggestions
- Provide reliable solutions to a variety of problems using sound problem solving techniques
- Perform technical root cause analysis and outline corrective action for given problems
- Contribute to technical research on new technologies
- Estimate level of effort, evaluate new options of similar technology, offer suggestions to improve processes, and provide feedback on some electrical design aspects
- Serve as a mentor to less experienced software engineers (Software Engineer 1)
Requirements
- Bachelor's Degree in Computer Science, Electrical Engineering, Computer Engineering, Software Engineering, Math, Physics or related fieldANDa minimum of 1 year relevant experience (notincluding internships or co-ops)ORan equivalent combination of education and experience
- Excellent academics (cumulative GPA greater than or equal to 3.0 as a general rule)
- Demonstrated proficiency and experience necessary to develop moderately complex software in embedded C/C++, preferably on Linux
- Proficient knowledge, utilization and mastery of relevant software engineering tools (configuration management systems, build processes, debuggers, emulators, simulators and logic analyzers)
- Collaborative and flexible, eager to learn, * Outstanding academics (cumulative GPA greater than or equal to 3.5)
- Experience with networking or communications across the internet including streaming audio or video
- Experience with wireless technologies such as Wi-Fi
- Experience developing multi-threaded programs in Linux
- Knowledge of modern C++ standards
- Python scripting experience
About the company
This position is eligible for Garmin's benefit program. Details can be found here: Garmin Benefits