Business Segment: Digital Predix Products & Technology
Location(s): Canada; British Columbia; Vancouver
GE is the world's Digital Industrial Company, transforming industry with software-defined machines and solutions that are connected, responsive and predictive. Through our people, leadership development, services, technology and scale, GE delivers better outcomes for global customers by speaking the language of industry.
Role Summary: You will be responsible for designing and implementing Linux system components for GE’s next generation of Edge Analytics Device Management technology, targeted at IoT Gateways and other Industrial Internet controllers. You will actively support and continuously improve our best practices including Agile/Scrum, automated testing, and rigorous code review.
Break down feature requests into incremental stories and acceptance criteria in collaboration with Product Owners, 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, designs, and design/code reviews
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)
A minimum of 8 years of professional or open source experience in Linux system development or OR Master’s degree with 6 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
Expert C/C++, script language (e.g. Python, Lua), and shell scripting experience
Expert-level Linux system API (socket IPC, process management) experience and an in-depth understanding of embedded Linux OS (x86, ARM)
Experience with Yocto/OpenEmbedded/Bitbake strongly desired
Able to effectively use hypervisors/virtual macines/containers (QEMU, Docker) as part of their development and testing workflow
Broad experience with a verity of open source technologies for different problem spaces, and the ability to quickly evaluate different solutions for unfamiliar problems
Strong algorithm analysis and design skills, ability to debug complex systems
Strong problem-solving abilities and capable of articulating specific technical topics or assignments
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.