Mid-range software engineer
We are now looking to recruit exceptional software engineers with embedded systems development experience to join our successful and growing design and development technical team.
If you are a highly-motivated individual with a desire to be challenged, express yourself and make a difference, DCA will excite you. We are looking for embedded systems engineers who have a rounded experience in developing real-time software on embedded microcontrollers, whether this be low-level bit-bashing or higher-level middleware integration and application development. Most of our development is in C, though we also use languages such as Java and Python for automating testing or creating simple PC/mobile applications to facilitate the development. A basic understanding of electronics and the ability to read schematics is also important as you will be working with our electronics team members to debug PCBs during the product development process. Knowledge of communications systems such as Bluetooth, Zigbee and wired serial systems is an advantage. Medical device development experience is a strong benefit but not essential.
You are likely to have worked for a few different companies in your professional career and looking to fit into a young, fast-moving development company.
You will be encouraged to take on some project management responsibilities as well as some technical leadership, liaising directly with our clients. Support and guidance is always available from other team members.
Our staff is our most important asset. To maintain and improve our high professional standards we provide regular professional and technical development training for all members of our staff.
Competitive salaries, together with other benefits such as discretionary bonus and profit-related pay schemes, are offered and regularly reviewed.
Listed below are the key attributes we will be looking for from potential candidates:
- Software engineering degree: A software engineering degree from a well-established university with a strong reputation for software. A 1st or Upper 2nd degree (or equivalent qualification) is highly desirable.
- Good, wide-ranging technical background: In the course of your career you should have been exposed to a range of software disciplines – these should include many of the following: embedded applications, software development (C and Java essential; Python, C#, C++ desirable), medical device development, software development life cycle, development methodologies, requirements analysis, architectural design, data structures and algorithms, UML/software design, verification and validation, safety-critical systems and understanding of electronic circuit schematic diagrams. Your industrial experience should involve the practical application of many of these skills, together with the addition of further skills and knowledge through on-the-job experience. A basic knowledge of creating Apps for Android and/or iOS, either natively or through platform-independent systems such as PhoneGap is highly desirable.
- Experience: Candidates should have worked in an embedded systems development environment, ideally in full product design, but at least in conjunction with electronics engineers. You should have played a key technical role in the development team, including being involved in taking at least one project through the complete design process from requirements gathering to delivery.
- Ability to thrive in a high pressure atmosphere: You will work best when under time pressure to deliver; as a consultancy, our projects are very time- and cost-focused so you will need to be able to estimate the time required to deliver a project and then keep to it – as far as is reasonably possible, of course
- Able to learn new skills: Candidates should be able to demonstrate an ability to assimilate new knowledge and information, and should be able to learn and use new skills and tools.
- Good, confident communicator: Candidates must have good communication skills, both verbal and written. You will need to communicate confidently, both in a formal presentation situation and in less formal client and supplier liaison situations. Written reports and other documents will also need to be produced accurately and in a well-presented form.
- Logical and well organised: We work under extreme time pressure, and usually across a number of projects at the same time. To do this efficiently and effectively you need to be well organised in managing your time, estimating job size and delivering within budget.
- Appreciation of non-functional design aspects: We operate in multi-functional project teams and our software engineers need to co-operate with designers, mechanical engineers and electronics engineers to blend the visual and functional aspects of a product.
- Team player: Most projects are run using dedicated teams. You must be able to work effectively and enthusiastically within a project team and work co-operatively with staff outside the immediate team.
- Technical responsibility: You will be expected to assume responsibility for your part of the technical design work and to advise and support the more junior members of your project teams. You will also be called upon periodically to provide technical input into our formal design and development procedures. You may also be called upon to mentor more junior software engineers or placement students.
- Enthusiastic, hardworking and proud of your work: People at DCA enjoy their work. They like the atmosphere and the variety of work. This is important since it comes through in the results we deliver. You will need to be enthusiastic about the whole process of product creation and delivery and be proud of what you do.
We offer competitive salaries, with other benefits such as discretionary bonuses, overtime and profit related pay schemes. We combine formal training and on-the-job career development through our unique mentoring and reviewing processes.