Mid-range App and Systems Software Engineer
We are looking to recruit exceptional software engineers with mobile phone/tablet App and 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, work on complete product development and make a difference, DCA will excite you.
We are looking for App development engineers who have a rounded experience in developing prototype Apps for Android and iOS platforms, where these Apps communicate with physical devices via communications links such as Bluetooth Smart and WiFi. You will ideally also have experience of using or developing real-time software on embedded microcontrollers, and experience of integrating Apps with physical products. Most of our App development is in the appropriate development environment for Android or iOS (Java etc), and most of our embedded systems development is in C, though we also use languages such as Python for automating testing. Experience of cross-platform systems such as React Native, PhoneGap and Xamarin would be very useful. A basic understanding of electronics and the ability to read schematics would be beneficial but not vital. Knowledge of communications systems such as Bluetooth, NFC and WiFi is a strong advantage.
You are likely to have worked for a few different companies in your professional career and be looking to fit into a young, fast-moving, multidisciplinary product 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 on these 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.
- 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: Android and iOS App software development (Java and C essential; Objective C, C#, C++, Python desirable), embedded software systems on small microcontrollers, software development life cycle, development methodologies, version control systems, requirements analysis, architectural design, data structures and algorithms, UML/software design, verification and validation and ideally an 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.
- Experience: Candidates should have worked in a systems development environment involving Apps and physical products, ideally in full product design, but at least in conjunction with embedded electronics and software 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 work 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 keenly 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 bonus, profit related pay scheme and regular development training.