Business Segment: Digital Predix Products & Technology
Location(s): Canada; British Columbia; Vancouver
About Us: At GE Digital, we are creating technology and solutions to enable social, mobile, analytical, and cloud capabilities for the Industrial Internet. The Industrial Internet is an open, global network that connects people, data and machines. It’s about making infrastructure more intelligent and advancing the industries critical to the world we live in. At GE, we believe it’s about the future of industry—energy, healthcare, transportation, manufacturing. It’s about making the world work better. Stay connected with us. Join our Talent Community!
Role Summary: You will be responsible for designing and implementing components in Embedded Linux for GE’s next generation of Edge technology that is targeted for different platform (e.g. x86, ARM). You will also play key role in hardening measures as part of development, as well as contributing towards developing adapters for industrial protocols. You will actively support and continuously improve our best practices including Agile/Scrum, automated testing, and rigorous code review.
Break down feature requests into stories and acceptance criteria in collaboration with Product Owners and the development and QA teams
Identify the scope of the work, provide initial estimates and justifications
Demonstrate understanding of the Agile software development lifecycle
Work closely with your peers and engage in technical discussions, design reviews
Seek and provide feedback on design, implementation, and task/project management
Understand the whole product, its modules and their relationship
Write excellent code that meets agreed upon coding standards with an emphasis on security and simplicity
Be an expert in assessing application performance and optimizing/improving it through design and coding best practices
Demonstrate the ability to make informed technology choices after due diligence, impact assessment, and data-driven decision making
Be fluent in core data structures, algorithms, and design patterns
Bachelor’s Degree in Computer Science or in “STEM” Majors (Science, Technology, Engineering and Math) or equivalent work experience.
A minimum of 6 years of professional or open source experience in Embedded Linux development OR Master’s degree with 4 years of experience
Legal authorization to work in Canada is required
Any offer of employment is conditioned upon the successful completion of a background investigation
Ability to travel up to 5%
Must be willing to work out of an office located in Vancouver, Canada
Experience with C/C++, embedded script language (e.g. Python, Lua,), and shell script
Expert-level Linux system API (socket, process management), in-depth understanding of embedded Linux OS, and virtualization platform (e.g. KVM)
Experience with compilers, parsers, DSLs, message queue, dynamic analysis tool (e.g. Valgrind) and tools such as Docker, Yocto a definite asset
Familiarity with network protocols, stacks, security
Strong algorithm analysis and design skills, ability to debug complex systems
Strong problem solving abilities and capable of articulating specific technical topics or assignments
Demonstrated experience designing and implementing highly available, high performance server applications in a distributed network
Expert in breaking down problems and estimating time for development tasks
Willing to evangelize how our technology solves customer problems from a technology and business perspective
Demonstrated clarity of thinking to work through limited information and vague problem definitions
Able to influence through others; builds direct and "behind the scenes" support for ideas
Proactively identify and remove project obstacles or barriers on behalf of the team
Willing to share knowledge, power, and credit, establishing trust, credibility, and goodwill
Able to work under minimal supervision
Excellent communication skills and the ability to interface with senior leadership with confidence and clarity
Able to work well with global teams, including time-zone flexibility
Skilled in providing oversight and mentoring team members, effectively delegating work as required
We are in the process of transitioning to an improved job application system and in the interim we are operating with two systems. Have your Job ID ready (from the email you received when you applied) to log in and check your application status.
Click the appropriate button. If you don't know your job ID, you can still check your status: use both buttons.