This position develops programs for the automation of semiconductor equipment. Writes the software drivers for low level devices. Works in the lab/fab to test and qualify the software on the engineering tool. Follows company policies and guidelines for software development and testing. Writes software requirements, design, and test plan documents. Works independently on the project with minimum supervision. Supports internal and external customers. May visit customer site to provide support.
The ideal candidate will be well versed with following:
1) Software Engineering
Software development lifecycle activities: project planning and management requirements analysis, requirement specification. Software design, testing, verification, validation, and documentation. Software quality assurance and review techniques, software code maintenance.
2) Object oriented analysis and design.
Feasibility analysis and system requirements determination, object-oriented design methodology, and information systems design using object-oriented modeling techniques. Emphasis on both theoretical and practical aspects of object-oriented systems analysis and design.
3) Operating systems design.
Overview: history, concepts, system calls and structures. Management of major components: processors, memory, input/output and files. Design systems calls and device drivers for hardware dependence. Concepts of kernel and shell, file protection and interactive computation.
4) Algorithms and data structure.
Object-oriented data organization and representation. Sorting and searching and algorithm design and performance analysis.
Familiarity with following aspects is a plus.
1) Real time computer system:
Applications of real time computer systems in different fields; characteristics, hardware and software aspects of real time systems; design of real time systems; application programs, files, databases and operating systems for real time systems; testing and debugging of real time systems.
Discussion of software methods in robotics, robot programming languages, robot architecture and operating systems, robot interfacing and robot task software. Extensive software projects dealing with robots.
Must be proficient in C, C++, and Java. Must have used any of the following tools in academic projects tools: ClearQuest, ClearCase, SVN, CVS, GIT, Eclipse. Unix background is a must. Must be familiar with Multi Threading, Inter Process Communications, Memory Management, Code analysis using profilers and debuggers etc. Experience with QNX or VxWorks is a plus. Experience with ControlWorks and/or smalltalk is a plus.
This position requires MS degree in Computer Engineering or Computer Science.
Interested candidates please submit your resume directly to: david.armijolamresearch.com