Job Purpose\n\nThe Senior Software Developper calls for an experienced, knowledgeable, and talented individual to design and develop software for the User Configurable Open System (UCOS) product.\n\nAs a senior software engineer, you will have an opportunity to apply your versatile embedded, systems, and application software development skills to UCOS’s expanding use in myriad industrial controls and automation systems and Industrial IoT.You will lead and collaborate with other engineers while contributing at all phases of the software development lifecycle.\n\n## Job Description\n\n- Architect, design, implement, test and deliver high quality, performant software products.\n- Work cross functionally with software, application, and quality engineers to ensure products meet engineering and client success criteria.\n- Actively participate in the definition and implementation of new processes and improvements\n- Identify and create new technologies and ideas to increase the organization’s intellectual property and to better address customer needs.\n- Present your designs and solutions to internal and external teams and review designs of software and quality engineers.\n- Develop test plans and test automation processes to increase automated functional tests.\n- Mentor team in development/test technologies, tools, and processes\n\n## You are meant for this job if:\n\n- Requires a Bachelor of Science degree or related\n- Expertise in software engineering\n- Expert experience in C/C++, developing embedded software and systems software\n- Deep knowledge of object-oriented programming and experience with at least one of (Java, C#, Python, Ruby)\n- Knowledge of containerization technologies (such as Docker), Kubernetes technologies (such K3S, Helm charts, Rancher), and IoT protocols (MQTT, REST API, Kafka)\n- Knowledge of cloud technologies such as AWS\n- Systems software programming knowledge of Windows and Linux OS\n- Working knowledge of Microsoft MFC (Microsoft Foundation Class), WPF, Qt, or similar GUI framework\n- Understanding of database technologies such as SQL, ODBC, and relational database schema design\n- Understanding of networking protocols (TCP/IP, UDP), wired interfaces (Ethernet, USB), and wireless interfaces (Wi‑Fi, Bluetooth, Cell, Satellite)\n- Experience designing, building, and maintaining APIs for internal/external services\n- Exposure to the principals of Industrial Protocols, Platforms and APIs: OPC (DA & UA), Profibus, Profinet, Modbus (RTU, TCP, Enron), EtherIP, etc.\n- Exposure to serial communication protocols (I2C, RS-485, RS-232, CAN, SPI)\n- Exposure to industry standard embedded design and debugging tools is a plus (JTAG, protocol analyzers, emulators)\n- Knowledge of web technologies, such as JavaScript, CSS, HTML5, XML, JSON, and/or Ajax\n- Exposure to Configuration Management tools (Version control, bug tracking, change management, automated builds, and coding standards)\n- Exposure to developing in agile and Iterative Software development processes\n- Excellent verbal and written communications skills\n\n## Skills\n\nBeing a global leader in the energy industry requires an inclusive and diverse environment. TechnipFMC promotes diversity, equity, and inclusion by ensuring equal opportunities to all ages, races, ethnicities, religions, sexual orientations, gender expressions, disabilities, or all other pluralities. We celebrate who you are and what you bring. Every voice matters and we encourage you to add to our culture.\n\nTechnipFMC respects the rights and dignity of those it works with and promotes adherence to internationally recognized human rights principles for those in its value chain.\n\nLearn more about TechnipFMC and find other open positions by visiting our Career Page.\n\nFollow us on LinkedIn for company updates.
Requirements
Education
Bachelor of Science
Skills
C/C++
embedded software
systems software
object-oriented programming
Java
C#
Python
Ruby
containerization technologies
Docker
Kubernetes
K3S
Helm charts
Rancher
MQTT
REST API
Kafka
AWS
Windows OS
Linux OS
Microsoft MFC
WPF
Qt
SQL
ODBC
relational database schema design
TCP/IP
UDP
Ethernet
USB
Wi-Fi
Bluetooth
Cell
Satellite
API
OPC
Profibus
Profinet
Modbus
EtherIP
I2C
RS-485
RS-232
CAN
SPI
JTAG
protocol analyzers
emulators
JavaScript
CSS
HTML5
XML
JSON
Ajax
Version control
bug tracking
change management
automated builds
coding standards
agile
iterative development
Responsibilities
Architect, design, implement, test and deliver high quality, performant software products.
Work cross functionally with software, application, and quality engineers to ensure products meet engineering and client success criteria.
Actively participate in the definition and implementation of new processes and improvements
Identify and create new technologies and ideas to increase the organization’s intellectual property and to better address customer needs.
Present your designs and solutions to internal and external teams and review designs of software and quality engineers.
Develop test plans and test automation processes to increase automated functional tests.
Mentor team in development/test technologies, tools, and processes