Software Design Solutions


Software Design Solutions was founded in 2003. The company offers development services for embedded systems, workstation applications, user interface design, and software process improvement. They have developed applications for a variety of industries including medical, industrial automation and control, audio and image signal processing, transportation, retail, networking, defense, security, and consumer devices.


Software Design Solutions provides consulting and embedded software development services. We use our knowledge and expertise to solve problems at every stage of application development. Companies can either hand off projects for us to develop for them, or we can join the existing customer team to provide experienced engineers with little or no ramp time. They can also leverage our decades of embedded software expertise to learn new best practices in agile embedded software development.


IoT Development

The sea of interconnected devices that makes up the Internet of Things poses a unique set of challenges. In addition to the classic embedded systems tradeoffs of speed, power, and cost, most IoT designs also introduce requirements for communications, security, and upgradability.


Our engineers at Software Design Solutions have decades of experience in embedded systems design, machine-to-machine (M2M) communication, and user interface design. We provide valuable insight during the design phase, the hardware selection and rapid prototyping process, and implementation.


  • Microcontrollers and DSPs (ARM, NXP, Freescale, Atmel, Intel, TI)
  • Special purpose devices and FPGAs
  • Embedded Linux, WinCE, other RTOS, and bare-board designs
  • In-circuit emulators, cross compilers, and IDEs from various vendors
  • Communications over RS-232, RS-485, I2C, SPI, and CAN
  • Wireless protocols: Bluetooth Low Energy, WiFi, 6LowPAN, and ZigBee
  • Embedded application tuning for speed, size, and power


Engineering Consulting

Software Design Solutions does more than just code and build your systems – we make sure developers get the most out of their engineering staff through our engineering consulting services. We work at a high level to guide your existing engineering staff through the process.  Give a man a fish, he’ll eat for a day. Teach a man to fish, he’ll eat for a lifetime.


System Design and Prototyping

Software Design Solutions can assist in the early phases of development by providing input during the system design phase. We can provide input on the tradeoffs of various real-time operating systems versus bare-board design for your application. Our broad experience with hardware platforms and vendors can save you time and money when selecting and evaluating the right hardware for their needs. Finally, a rapid prototype can quickly reduce risk and demonstrate core functionality early in a project’s development cycle.


Agile Software Development Consulting

We have helped teams implement Agile software development processes, which cut both cost and time while improving product quality and schedule reliability. This includes a series of changes for staff, which can be easily adopted—and kept after implementation. The Agile software development process focuses on interpersonal and environmental factors, each of which help a group of people become a team focused on finishing each project in the best way possible.


Continuous Integration and Testing

Testing is important, and the best way to test is to implement continuous integration. This model requires that the code be examined and tested at every stage of development—in fact, every time code is checked in. Continuous integration and automated testing pose unique challenges for embedded systems projects, but our experienced engineers know how to make it work. Once you do adopt continuous integration, the results will speak for themselves. Read our blog over at Applied Visions for more information about the benefits of continuous integration.


We can also help implement systems for automated unit, system, and GUI testing, which will reduce testing time.


Requirements Analysis

Successful applications accommodate users, rather than expect users to accommodate the application. In order to do that, the software requirements need to be appropriately determined during development. We can help with that, too.