The successful candidate 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,
- Live hardware debug tools
These tools 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.
Primary Job Responsibilities
The candidate will initially take over ownership and the maintenance of existing features, and add innovative new features to their portfolio over time according to the software feature development roadmap:
- Utilize knowledge of EDA tools to help define new features and enhance usability of the software system
- Use skills in Java and Eclipse frameworks to develop the graphical user interface
- Use skills in C++ and Python/TCL/Perl to develop backend commands and data processing
The position provides a 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 and to 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 with 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++