FUJIFILM

C++ Software Engineer II or III (FIS)

Job Locations US-NH-West Lebanon
Posted Date 3 months ago(2/15/2021 9:48 AM)
Requisition ID
2021-14456
Category
Other
Company (Portal Searching)
FUJIFILM Dimatix, Inc.

Overview

 Logo

 

 

Fujifilm Dimatix, Inc. strives to offer a healthy work environment that promotes individual responsibility and growth, a collaborative spirit, and an atmosphere that encourages learning, professional development and achievement.

 

We search for the most talented and qualified people for both external and internal opportunities. At Fujifilm, performance, development and accountability are the standards to which the company and its people strive toward. And to support its employees, we offer programs that motivate, educate and promote a healthy work-life balance, which increase employee satisfaction and overall personal well-being.

 

Fujifilm is committed to offering a comprehensive and flexible benefit program to meet the needs of employees and their families. This flexible approach allows employees to create a program that fits their lives.  At Fujifilm, INNOVATION and PEOPLE matter.

 

FUJIFILM Dimatix, Inc. is an E-Verify Employer

 EO-employer-M/F/Vets/Disabled

 ATTN Staffing Services:  We do not accept unsolicited resumes.

External US

POSITION SUMMARY:

The C++ Software Engineer II/III develops software for custom user desktop applications, system services, Daemons, and middleware software that provides a specific role for other software components and intelligent devices needed to create an overall solution or complete printing workflow.  Majority of programs developed utilize layered communications stacks to interact with other system distributed components or custom shared memory interfaces and APIs for local process to process inter communications and synchronization. All software developed runs on modern commercial operating systems; Windows and Linux. Software solution are intended for industrial use and address existing and growing digital Inkjet commercial printing markets and new opportunities. Software executes on State of the Art Intel based industrial computers and motherboards and dedicated computing devices using ARM microprocessor(s). 

 

Designs can require use of multi core microprocessor(s) to meet algorithm processing speed needs and multi-Giga Bit communication lane(s) to move large amounts of image data quickly. Software solutions are designed to utilize multiple tasks or threads and with parallelism that takes advantage of multiple core CPUs, multiple processors and fast memories and fast data lanes, managed by Linux or Windows OS and the specific Hardware Abstraction Layer of the computing device.  Software designs interface with other intelligent devices, using Industry standard or custom TCP/IP and Ethernet based APIs and protocols.

 

Software algorithms can be used to compose or enhance PDF images for print, render and rasterize images for either gray scale or color printing. Software design efficiently manage the movement, distribution, and streaming of large amounts data, while keeping up with the fast printing speeds demands of modern single pass, high resolution, high speed, wide image, digital printing presses. You are to work as part of a team participating in the design, development, and test of C++ and C software designs that manages and controls, high-speed, high-resolution industrial ink jet printing equipment and supporting industrial automation equipment needed to support the printing press workflow.

 

QUALIFICATIONS:

To perform this job successfully, an individual must be able to perform each essential job function satisfactorily.  The requirements listed below are representative of the knowledge, skill, and/or ability required.  Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.

 

REQUIRED:

  • Typically requires a minimum of 6/10 years of related experience (with a Bachelor’s degree) or 5/9 years (with a Master’s degree) of experience writing C++/C software for microprocessor(s) based devices and computers used in industrial machine applications.
  • Proficient in the design and development of software, using C++ and C language, that executes on commercially available computers or custom computers utilizing microprocessor(s) with memory management units and with communication network links that the software must use to interfaces with other devices in the system solution.
  • Design and Develop software applications and services that handle, process, rasterize, and manipulate various image file formats, delivering large amounts of data to and from multiple intelligent devices with high throughput rates and/or low latency.
  • Experienced writing, tuning and debugging software running on modern Windows Operating System
  • Experienced writing, tuning and debugging software running on modern Linux Operating System
  • Experience using C++ to create Executable and Linkable Formats (ELFs) for use with commercial or embedded Linux distributions
  • Experience using C++ to create Executables (EXEs) and Dynamic Link Libraries (DLLs) for industrial Desktop Application running Windows OS (7, 10, IOT, or Server).
  • Programming TCP Sockets in Windows and Linux for both Client and Server sides communications
  • HTTP and Restful software development to interface client (desktop and embedded) application with web based services.
  • Experienced writing and debugging software APIs and protocols that utilize Ethernet links and TCP/IP communication stacks for industrial control and data movement needs for high speed, high resolution digital inkjet printing presses.
  • Experienced using network protocol analyzers (e.g. Wireshark) to debug and ensure software developed follows defined software interface specifications, stack protocols and defined APIs.
  • Experience using Visual Studio and Eclipse for all software solutions, development, tuning, testing, debugging and for integrated software version management.
  • Design, build, test, enhance, refactor, maintain and release reliable C++/C code designs and deliverables
  • Develop C++ /C code for use with state of the art Microprocessors and peripherals running Windows or Linux commercial Operating Systems for industrial applications.
  • Develop C++/C software for use in system or systems that connect via TCP/IP links both custom and industry standard APIs and protocols
  • Identify bottlenecks and bugs, and devise solutions to these problems
  • Experience using MSVC/Visual Studio and GNU/Eclipse compilers, linkers IDEs and debuggers.
  • Help maintain code quality, organization, and automatization
  • Create design documentation throughout the development process. Skilled at reviewing designs with peers and stakeholders.
  • Understand the various levels of Object Orientated design principles including State Machine Design
  • Experience working under Engineering Development Process

 

DESIRED:

  • Strong proficiency in C++, with fair knowledge of the language specification
  • Proficient knowledge of the standard library, STL containers, and algorithms
  • Good understanding of memory management in non-garbage collected environments
  • Familiarity with templating in C++
  • Knowledge of the latest C++ (C++11, C++14, C++17, or C++20) standard
  • C++ /C development experience with dedicated embedded systems using ARM Cortex –A series of microprocessors and with hardware interactions.
  • Proficient C Preprocessor knowledge
  • Familiarity using Windows OS Sysinternals Tools for troubleshooting
  • Experience with Embedded Ecosystems such as Xilinx Zynq SoC and Zynq
  • Setting up TCP Network Interfaces Cards and Switches is appreciated.
  • Familiarity with use of Wireshark
  • Knowledge of low-level threading and tasking primitives for both soft and hard real-time environments.
  • Familiarity with Windows OS architecture including processes, threads, services and device drivers
  • Familiarity with language tools, such as Valgrind 
  • Proficient understanding of code versioning tools such as Git.
  • Using Intel® Microprocessor Intrinsic with C++ Compiler
  • IEC 1131 Structured Text Programming for modern Automation and PLC controller
  • Creating a C++/CLI Wrapper
  • Creating C# or VB and .Net software
  • Linux Driver Development

 

SUPERVISORY RESPONSIBILITIES:

None

 

PHYSICAL DEMANDS:

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.

 

  • Ability to concentrate and consistently deliver excellent attention to detail.

 

 

WORK ENVIRONMENT:

The work environment characteristics described here are representative of those an employee encounters while performing the essential functions of this job.  Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.

 

  • Normal office/lab and manufacturing environment
  • Extended detailed visual tasks and computer use.

 

 

OTHER:

  • Other duties as may be assigned.
  • Each employee’s primary objective is to assure that the quality, delivery and cost controls within his/her control meet or exceed all of our internal and external customers’ requirements.
  • Each employee is required to abide by the Employee Handbook and the rules and regulations explained and provided at each orientation and training session. Special attention must be given to the safety aspects of these documents.

 

FUJIFILM Dimatix provides competitive wages, a generous benefits package and a friendly, dynamic working environment.

Equal Opportunity Employer

 

FUJIFILM Dimatix is an E-Verify Employer

 

Options

Sorry the Share function is not working properly at this moment. Please refresh the page and try again later.
Share on your newsfeed