Our development team is renowned for creating robust, well designed and easily maintainable software that performs reliably and to expectation.
- Embedded software (firmware)
- Application software
- Learning systems
- Software for regulated environments
- Hardware-Software integration
- Embedded RTOS and Embedded Linux
- Windows desktop applications
- Server and cloud applications
- iOS and Android mobile applications
- Home Automation Integration
Real-time software can respond to events within milliseconds or less. This requires specialised design and implementation skills to ensure devices function as expected; with aach real-time system having specific characteristics that make it better suited to specific applications.
Our real-time system development expertise encompasses:
When the performance and the services provided by a modern operating system need to be integrated into an embedded device, our expertise with Embedded Linux offers you a strategic advantage. We have the capabilities to develop both Linux kernel drivers to interact with other electronic devices, and the high level code that implements the business and application logic.
Our kernel driver development expertise includes:
- Parallel camera interfaces
- MIPI camera interfaces
- WiFi modules
- I2C – Temperature sensors, accelerometers
- SPI – Touch screens
- V4L – Video for Linux
Mobile applications can drive business efficiencies, help improve customer engagement and build brand value, by connecting users to local or remote systems, anywhere, anytime.
- Android native Java
- Android NDK in C or C++
Home Automation Integration
Our design team and development partners have extensive experience developing Home Automation that we seamlessly integrate with iOS and Android apps. Our experience includes:
- Google Home
Desktop and Server Applications
- .NET (using C#, VB.NET, ASP.NET, C++/CLI)
- Native (using MS Visual C++, GNU gcc, Qt graphics libraries)
- GUI apps (using Qt or GTK graphics libraries)
- Microsoft SQL Server
We also develop applications using:
- Ruby on Rails
- Java EE
- HTML5, CSS3
1| Requirements Definition
The first step of any professional software product development is the definition and documenting of traceable software requirements, along with a software test plan. These requirements documents simplify any future changes and updates as well as software maintenance tasks.
The level of detail necessary for adequate requirements documentation is dependent on the type of application development. Amatek Design has the expertise to match the level of detail to the application and thus minimise costs and time taken whilst concurrently meeting client and industry needs.
2| Standards Compliance
Numerous industries, including Automotive, Medical, Defence and Aerospace, often require that developers show adherance to practices and procedures defined in various international standards, in order that the software we develop be accepted into service.
We have extensive experience developing software compliant to a range of standards, including:
- IEC 62304 - Life cycle requirements for medical device software
- MISRA C/C++M - Motor Industry Software Reliability Association software development guidelines for the C/C++ programming language
- DO-178B - Software Considerations in Airborne Systems and Equipment Certification
3| Design and Implementation
The key feature of a successful software development exercise is the definition of an appropriate architecture; one that not only allows implementation of all the software requirements determined at the start of the project, but also how to address future enhancements and extensions.
Our software team includes experienced software architects who can identify and design the best architecture for your project.
4| Test and Verification
The quality of any product that incorporates software is dependent on the testing regime undertaken by the engineers. This is defined in a software test plan. Test and verification is a process, not a stage. Based on the complexity of the development, we use:
- Continuous Integration, Continuous Delivery (CI/CD) processes
- Test-Driven Development (TDD) processes
Software maintenance, which may encompass bug fixes and enhancements made following a product's release for manufacture, may be ongoing throughout a product's life, depending on the product, its uses and its expected operational lifetime. By adopting suitable development methodologies and architectures for both software and the hardware platform running it, Amatek can create software that is both easily maintained and extensible, in order to meet specific requirements.