Embedded Software Development

That heading can include many things. Most of those things are well within my capabilities and are listed below. Those things not listed, ask. If I am not able to provide them, I may be able to find someone who can or work with a person of your choosing.

Software Development

To me, this is more than simply writing code. This encompasses designing the software for the hardware and task at hand using proven methodologies to help insure success, documentation, and thus maintainability. Structured methods are my favorite and have proven to be quite successful for me.

After design is the actual coding, which can be done by any competent coder provided the design is clear and complete. My preference is to code in C/C++, but anything from assembly to Java is fine also.

Development isn’t entirely complete until the code is able to be thoroughly tested and debugged. This is another area that benefits greatly from the initial design phase that documents not only the internals, but the end results as well.

Hardware Integration

Custom hardware typically means custom software interfacing, or integration. This area is one of my specialties since I’m very familiar with electronic design, reading schematics and product data sheets, and the test equipment that goes along with it. This is the fun part of the project.

Version Control

Revision and Source Code Control Systems (RCS, SCCS) are extremely important components of a software development project. If such systems are not already available or in place, I can help create and maintain one. In the instance where I may be the sole developer, I can host it locally. There are many such packages available to choose from and we can discuss which might best suit the needs of the project.

Project Management

Another area of great importance to any project’s success is Project Management. Projecting milestones, managing resources, and keeping those resources on track can make or break a product release. Communication among all parties is key, as well as insuring the milestones and goals are complete and realistic. Identifying problems early helps adjust resources so that the ultimate goal can be met. There are packages available to help manage a project and we can either find one for you or use one you may already have in house.