Co-op Opportunities at Woodward McCoach, Inc.

Woodward McCoach, Inc. (WMI) is a small, privately-owned Electronic Design and Software Development company founded in 1983. WMI markets their products through a wholly-owned subsidiary called Communication Automation Corporation. We develop state-of-the-art fiber optic products for the telecommunications industry and take products through the complete life cycle: concept, design, development, prototype, manufacture, sales and post-sales technical support.

WMI offers a competitive wage adjusted for a student's academic experience, a flexible work schedule, and a relaxed work environment. We have been actively involved with Drexel's Co-op program since 1994. We count the following among our strengths:

  • Agility - Our size allows us to quickly respond to customer requirements and special feature requests. We can turn an idea into a deliverable product in months, not years.
  • Minimal operational hierarchy - We have very few levels of management. During your co-op cycle, you'll work closely with experienced engineers.
  • Autonomy and responsibility - We expect you to be self-motivated. In return, you will be trusted with significant portions of design projects.
  • No compartmentalization - Members of our work force "wear many hats" and work on diverse areas of multiple projects.
  • Real-world Engineering - We build and ship real-world products that are used by dozens of companies. Your work will be used by others and you will receive real-world, constructive feedback.

Experience the Full Product Life-cycle

From concept to final product packaging and delivery, we do it all. Our engineers, including co-op students, are involved in many aspects of the product-realization process.

  • Designers from all disciplines work together to formulate initial system requirements.
  • Hardware designers work to meet mechanical, electrical, and thermal constraints, design schematics, layout and simulate the PCB.
  • FPGA designers help formulate the initial system requirements and design some very complex logic and hardware algorithms.
  • Engineers of all disciplines are involved in every aspect of testing prototype boards, from initial power-on to functional, electrical, and thermal testing, through preparing the product for customer shipment.
  • Software developers write all the code necessary for a hardware system to boot up into an operating system.We write code to monitor power supplies, temperatures, voltages, and control fans. We also create the necessary code images and installer scripts used by our own production team as well as by customers to perform field updates.
  • We work together to test every functional aspect of the boards and systems.
  • We pride ourselves on our customer support. Technical support calls are often directed to our engineering staff.

Experience Cutting Edge Technology

Solving complex problems in the field of telecommunications means working with some of the newest technologies in the field, including:

  • New chips and processors - We are often the first to get silicon; warts and all. We often work closely with chip vendors to determine the proper operating conditions for new devices that won't be generally available to others for many months.
  • High-bandwidth interfaces - Some of our systems can deal with terabits of bandwidth.
  • Special purpose CPUs - There is an enormous amount of special purpose processing available in our systems. We seek to fit the greatest amount of processing power in the smallest possible area.

Hardware Engineering Co-op

We offer positions in three areas of expertise of hardware design: circuit board design, FPGA (programmable logic) design, and mechanical design. Requirements for any of these Hardware Engineering Co-ops include:

  • Students who crave a challenge, enjoy learning new skills, and want to get extensive, hands-on design experience.
  • A highly motivated student with good verbal and written communication skills and problem-solving skills with a minimum GPA of 3.0 in the engineering curriculum and overall.
Hardware Development Engineer

Students will be responsible for assisting hardware design in all aspects of product development. This includes the following tasks:

  • Assemble, test and debug products.
  • Analog and Digital Design - the level of design work will be dependent on the student’s academic level and previous hands-on experience.
  • Schematic capture and schematic library part development.
  • Product documentation.
FPGA Development Engineer

Students will be responsible for assisting FPGA design engineers in all aspects of product development. This includes the following tasks:

  • RTL coding (HDL experience required, Verilog experience preferred).
  • Behavioral Simulation (ModelSim experience preferred).
  • Implementation, place and route using vendor specific tools (Altera/Xilinx experience preferred).
  • Timing analysis using vendor-specific tools.
  • Implementation of on-chip debug features (Altera's SignalTap, Xilinx's ChipScope).
  • Design, code, simulate, and test new FPGA features for existing designs.
  • Creation and execution of test plans to verify FPGA releases.
  • Assist in FPGA bring up for initial prototypes.
  • Assist engineers w/ debugging issues and pursuing issues to resolution.
  • Provide first level of FPGA support to software designers.
Mechanical Development Engineer

Students will be responsible for assisting mechanical engineers to design and validate electronic enclosures and heat dissipation methods. Responsibilities will depend on the student's skill level and may include:

  • Design of mechanical enclosures using Solidworks CAD software with emphasis on Design for Manufacturing.
  • Heat sink design, which may involve Flotherm simulations.
  • Creation of mechanical drawings to support the fabrication of parts.
  • Prototyping of designs using a 3rd party manufacturer or 3-D printing.
  • Product assembly, development of assembly procedures, and part validation.
  • Collaboration with electrical engineers and production engineers to solve problems.

Software Engineering Co-op

We develop embedded systems. The problem space is the intersection of hardware and software. We control every aspect of the system and our software ranges from the lowest to the highest application level:

  • Microcontroller -In some products, a microcontroller is responsible for powering on the system and related system management tasks. In other products, the microcontroller takes on many command and control tasks.
  • Boot loader -Loads the operating system from non-volatile storage and performs some basic hardware initialization.
  • Operating System - Initializes peripherals and starts running control software. We use a version of Linux slightly modified to fit our platform and functional requirements. We also develop drivers to support our hardware.
  • Control Programs - Our control software is the heart of the system. It is responsible for accepting user commands and reporting status.
  • Test and Debug - We write software to test and verify the hardware and make sure the software is working as expected.
  • GUIs - We supply Graphical User Interfaces for many of our products.

Students will get involved in developing software for all aspects of embedded systems product development, from initial design through production. This may include development in embedded C microcontroller software, C software for embedded Linux environments, and scripting languages on host machines (Bash, Python). Projects typically require designing, coding, and testing software which provides direct control of custom hardware (electronics and optics) designed by engineers at Woodward McCoach. Some examples of previous tasks:

  • Designing and developing low-level embedded C control software for ARM microcontroller based circuitry.
  • Creating a remote control utility to drive an optical test instrument for automated testing.
  • Configuring multiple fiber optic modules operating at greater than 10 gigabits per second.
  • Writing a Linux driver to offload terabytes of data at high speeds.
  • Bootstrapping Linux (Busybox, gcc, glibc) on a MIPS processor.
  • Linux Kernel driver development including storage device management working in conjunction with our custom FPGA designs.

Requirements and Qualifications for the Software Engineering Co-op include:

  • Students who crave a challenge, enjoy learning new skills, and want to get extensive programming experience.
  • Second-time and third-time co-op students should have experience in C programming and exposure to software development tools such as gcc, make, and cvs.
  • A highly motivated student with good verbal and written communication skills and problem-solving skills with a minimum GPA of 3.0 in the engineering curriculum and overall.


Production Test Engineering Co-op

Students will gain hands-on experience in various aspects of product validation and test while working closely with other test and design engineers. Responsibilities of this position include:

  • Proper handling, cleaning, and testing of optical components.
  • Initial PCB bring up and verification.
  • Execution of production test routines and recording of results, including test scrip development (Bash, Python).
  • Work with Test Engineers and Design Engineers to perform problem analysis and troubleshooting on components and subsystems.
  • An opportunity to learn test instruments: Frequency Counter, Optical Spectrum Analyzer, Automated Fiber Optic Path and Insertion Loss Analyzer, Fiber Optic cleaning tools.