Scope of Position:
Software Development Engineer/Scientist with responsibility to develop, participate on development teams designing, developing, testing and deploying solutions for internal systems. This includes the ability to do this at an embedded level, participating with a HW designer / team in the architecture, debug and integration of the firmware with the hardware. Would participate on project teams leveraging emerging technologies to deploy state of the art software solutions across all Corning businesses. Participate in internal and external working groups to advance the use of emerging software technologies within Corning.
Day to Day Responsibilities:
- Work with team to develop system requirements, establish design constraints, and set priorities.
- Build software solutions for internal customer projects.
- Develop software at the embedded level and work closely with a hardware developer / team in architecting, developing for, debugging and testing at the SW / HW level.
- Participate in brainstorming and other ideation activities related to software development.
- Help develop Software and Software Project management best practices (from coding best practices to project management, unit test, archive management, etc…).
- Communicate development, testing results and project progress to team members and leadership.
- Integrate new systems and technologies into Development and Manufacturing systems.
- Transfer new technologies to equipment and process receivers, provide remote system support, and develop system documentation.
- Experience developing on a wide variety of embedded processor family types
- Experience developing on embedded processors using various operating systems
- Experience testing / debugging embedded software using various hardware tools such as oscilloscopes, etc.
- Experience working with hardware teams to assist in architectural and design choices impacting both the hardware and software architecture.
- Experience interfacing embedded processors to sensors or external peripherals using various communication protocols (IIC, SPI, RS232, Ethernet, etc.)
SW & HW Interface / Integration Skills Required:
- Experience interfacing a windows application to commercial equipment (sensors, lab instruments, etc.) via various standard interfaces (Ethernet, USB, IO, etc.)
- Experience interfacing a windows application to commercial IO (such as to National Instruments IO modules \ boards)
- Experience developing communication interfaces between systems (WCF, raw sockets, etc.)
- Experience performing system integration tasks and testing (including both software hardware aspects)
Windows Dev. Skills Required:
- C#, Visual Studio, Microsoft DotNet programming experience for manufacturing or commercial applications
- Experience writing and managing development to requirements
- Experience designing, reviewing, and producing design content via UML diagrams
- Experience writing parallel / multithreaded applications leveraging Microsoft TPL / windows threading
- Experience interfacing DotNet managed code to unmanaged code
- Experience developing user interfaces using DotNet Windows Forms
- Experience developing user interfaces using WPF (lower priority)
- Experience developing in layers emphasizing the separation of business logic from GUI display (MVC / MVVM a plus)
- Experience using a variety of source configuration management tools and collaborating in multi developer team environments
- Experience profiling software application performance
- Experience with unit test frameworks
Data System Interface Skills: :
- Experience setting up, managing and interfacing to databases from Windows applications
- Experience using Windows Entity Framework (desired)
- Experience interfacing to data systems via OPC, Ethernet IP, etc.
BS, MS or PhD in Computer Science, Electrical Engineering, Physics, or relevant field.