Staff Memory CAD Engineer
Bachelor's degree in Computer Science, Electrical/Electronics Engineering, Engineering, or related field and 3+ years of Hardware Engineering or related work experience. OR Master's degree in Computer Science, Electrical/Electronics Engineering, Engineering, or related field and 2+ years of Hardware Engineering or related work experience. OR PhD in Computer Science, Electrical/Electronics Engineering, Engineering, or related field and 1+ year of Hardware Engineering or related work experience. Bachelor's degree in Electronics Engineering, Computer Science, or related field. 8+ years Software Engineering or related work experience. 4+ years experience with Programming Language such as Unix, Shell Scripting, C, C++, Java, Perl, Python, Skill etc. 2+ years experience working in a large matrixed organization. 2+ years of mentoring & leading a team of engineers 2+ publications in VLSI Conference or forums like SNUG/CDN LIVE etc. Analyzes needs of the users who are both internal & external to the Memory team and develops software solutions. Designs tools/software or customizes software for customer use with the aim of optimizing operational efficiency. Analyzes user needs and software requirements to determine feasibility of design. Knowledge & Exposure to Memory/Stdcells/IOs IP Design & Development Understands the fundamentals of Microelectronics, Digital Design, CMOS VLSI Design, Circuit Theory, Computer Architecture etc. Completes assigned coding tasks to specifications on time with good quality. Adapts to changes and setbacks to manage pressure and meet deadlines. Collaborates with others inside project team to accomplish project objectives. Communicates with project lead to provide status and information about current tasks. Quickly resolves complex software issues and bugs. Gathers, integrates, and interprets information specific to a module or sub-block of code from a variety of sources in order to troubleshoot issues and find solutions. Seeks others' opinions and shares own opinions with others about ways in which a problem can be addressed differently. Participates in technical conversations with tech leads/managers. Anticipates and communicates issues with project team to maintain open communication. Makes decisions based on incomplete or changing specifications and obtains adequate resources needed to complete assigned tasks. Prioritizes project deadlines and deliverables with minimal supervision. Writes readable code for large features or significant bug fixes to support collaboration with other engineers. Unit tests own code to verify the stability and functionality of a feature. Convey information clearly and accurately, as well as choosing the most effective method of delivery (e.g., email, phone, face-to-face). This includes using a technically sound communication style both verbally and in writing. Ability to attack work activities with drive and energy, understanding the impact of work on key metrics, and making decisions that are in the company's best interest. Ability to appropriately document software and/or hardware specifications to promote knowledge transfer to other engineers. Knowledge of the overall process for developing new software. This includes knowledge of the roles and responsibilities of software engineering and other functions, major phases, checkpoints and deliverables. This also includes the ability to identify common issues and considerations for bringing a new product to the marketplace. Ability to quickly prioritize mission-critical from less important or trivial work activities. This includes sensing what the next most useful thing is to work on and focusing on the critical few tasks that add value while putting aside or delaying the rest.