Engineering System

Development Process

Software engineers need a good development process that allows them to integrate their code in an efficient and quality driven manner.  Best practices include, code reviews, check in tests, basic verification tests and daily builds where the code base is kept in an always shippable state.  Depending on the size and complexity of your product, you may need several development branches and automated integration gateways.  I have helped build many of these systems so can analyze your needs and help you design a great system that grows with your expanded needs.

Bug Process

More than half of a developer's time is spent fixing bugs.  You need a formal process that allows multiple sources to report bugs and you need the bug information reported to contain the information necessary to reproduce, track, and report status of these bugs.  A good bug reporting system is a pleasure to use and a poor one leads to costly mistakes.  It is an area to focus on.

Test Architecture

By proactively planning the testing approach to your product, you can ensure testability hooks are built in enabling effective test automation and other quality tools.  It can be very hard to retrofit testability into existing code bases so an early investment in a test architecture of your product saves time and effort later.  This is a fascinating and critical part of your design which I can help you with.

Software Updates

Every software product needs fixes.  How you deliver updates must be reliable and resilient.  with redundant mechanisms to ensure the updating flow always succeeds with no single point of failure.  There must be built in telemetry and reporting to give insights and instill confidence that your product is continuing to receive necessary updates.  I have worked on updates for some of the worlds most critical products and can help here. 

Preventing Malicious Attacks

Could a malicious employee or contractor modify your product to turn it into malware?  Are you sure there are not these single points of failure in your approaches?  In doing a thorough threat analysis you will uncover weaknesses where malicious behavior could succeed and you will also uncover places where a stupid employee error could do similar harm.  Ignorance is not bliss and the stakes are high to ensure you are protected here.