Graduate Software Engineer
My client is a small, independent electronics design and manufacturing business specialising in design and manufacture of precision electronic test systems and equipment used within the semiconductor industry. The types of system and equipment vary, using a diverse array of technologies including DSP, FPGA, Real-time Linux, power electronics and digital servo. The business has a large focus on research and development, doing a large amount of leading, specialist research on different ways of designing test systems and related software applications, being known in particular as an expert in field leader in power MOSFET testing. Design and prototyping is done in house, manufacturing is often outsourced to trusted local partners in the United Kingdom. They supply clients around the world, and it’s worth noting the businesses biggest market is East Asia.
Although they are a small business they have a streamlined, organised and professional approach to work that is reflected in the results they have in their research, high annual sales and success. It’s also worth saying that it is a friendly, open work environment with excellent recognition for the work you do and the problems you solve.
I am currently recruiting a graduate software engineer to join their research and development team. You would be directly involved in both upgrading existing and developing new software applications for administering and real-time control of their analogue and digital electronic hardware systems. Your role would be varied, including a variety of technologies and languages. The newer systems use the Linux operating system and encompasses the C languages, PASCAL and Java. The same software is also built for the VMS operating system to support current systems. The R & D team is small, and it’s a full software life cycle role including design, planning, coding and testing. As it’s electronics there will be some work doing low level development of embedded of firmware, though less typical. In the main it will be developing applications for running and control of the equipment including significant work creating user friendly and logical interfaces for users – currently this uses X windows and newer applications developed with Lazarus. In addition to development work on their software applications, there may be some development and upgrading work on their own internal systems/ in house applications used for business operational systems (typically done in VBA).
- Architecture design and coding of desktop applications for management of electronic testing.
- Understanding functional requirements and being able to understand ways of creating an application or module to fulfil said requirements. An understanding of basic electronics principles will be useful.
- Coding with C, PASCAL and Java in a Linux operating systems environment. Programming at both a low and higher level. Able to write clear logical code with an aim of approaching a problem with a straightforward, simple and logical solution though not afraid to innovate where appropriate.
- Bearing in mind the principles of drivers whilst designing application and writing code.
- Development of clear, functional and user-friendly GUI interfaces.
- Thorough testing and validation of applications and modules, documentation of testing where appropriate and bug fixing.
- Undertaking real time programming, for example using pthreads execution models.
- Occasional embedded programming of controllers and processors in both embedded C.
- Occasional support of on-site support engineers as well as client-side engineers as well as very occasional on-site client support.
- Possibly some work creating and modifying applications for internal operational use, mainly in VBA.
- Able to contribute in meetings with other engineers and colleagues from other business areas, who will often be from different technical disciplines or separate functions (commercial, manufacturing). Able to support statements with evidence where useful.
You will need to have:
- Computer Science, Software Engineering or related bachelors or master’s degree with a minimum of 2.2 achieved.
- Understanding of basic electronics principles.
- Able to communicate clearly and concisely.
- Significant project experience of coding multiple applications in C.
- Some experience coding in Java.
- Experience with Linux operating systems.
- Work experience in a professional software engineering or testing role would be advantageous.
- Experience with Pascal (Lazarus) and/or Delphi would be advantageous
- Experience of GPIB and RS232 for I/F and control pf peripheral equipment advantageous.
- Experience with TCP/IP protocols and socket programming
- Awareness of X Windows programming / Motif / Cygwin is useful though not essential.
- Ability to adapt to other operating systems in particular VMS where training will be given
- Exposure to VBA but not essential
- Intelligent, positive approach and pride taken in work undertaken.
In return, the business can offer you a rewarding environment and a career where you can see you having a significant input and ownership of modules and even full applications relatively early on. Full training will be provided to the successful applicant on internal systems, applications, hardware technology, software development cycle, and way of working.
Interested? Please send me a copy of your CV and a cover letter outlining your interest in software engineering and your motivation for this role.