EDA Tools Software Engineer – User Interface Development 6300-1013
You will research, invent, implement, test and document robust software user interface solutions for Achronix’s rich set of software tools, covering:
- IP configuration,
- synthesis, placement, routing, timing optimization,
- visualization and diagramming,
- report generation,
- and live hardware debug tools
which support Achronix’s standalone FPGA and Speedcore embedded FPGA (eFPGA) products. This is a desktop application environment using Java and C++, not a mobile app or web interface. You will initially take over ownership and maintenance of existing features, and add innovative new features to your portfolio over time according to the software feature development roadmap. You will utilize your knowledge of EDA tools to help define new features and enhance usability of the software system. You will use your skills in Java and Eclipse frameworks to develop the graphical user interface, and your skills in C++ and Python/TCL/Perl to develop backend commands and data processing. You will have an unique opportunity to collaborate directly with other Achronix research and development (R&D) software and hardware team members working on next generation hardware IP and software algorithms. You will contribute to a culture of agile innovation and continuous quality improvement.
- At least four (4) years of university and/or industrial software development experience in R&D of EDA software.
- Excellent programming and debugging skills, and expertise in the Java and C++ programming languages. Object-oriented programming techniques.
- Excellent communications skills and ability to describe things in a way that is intuitive to others.
- Strong analytical skills to understand cause and effect in a large software code base.
- Ability to read detailed hardware and software specifications to research open questions about a project.
- Ability and willingness to try novel approaches to solve difficult software engineering problems.
- Familiarity with the Linux and Microsoft Windows operating systems, compilers, and IDEs.
- Experience using Eclipse for Java and Eclipse RCP development, including experience with SWT, JFace, NatTable, etc.
- Experience in scripting languages such as TCL, Perl, Python, and other user interface languages and data formats like XML and HTML.
- Familiarity with the Verilog and/or VHDL HDLs.
- Knowledge and experience with EDA software tools (commercial or academic) and FPGA design flow is preferred.
Education and Experience
- BS or MS in Engineering (Computer Science, Electrical/Computer, or other related/applied engineering) from a top research university with some prior years of industrial experience in EDA software development using Java and C++.