Software Development Consulting and Training Services

Consulting Services

Lot of guys write code, I provide solutions to problems. I've been putting software applications into production for nearly 30 years, literally hundreds and hundreds. What makes me different? I'm more than a software developer, I'm an an engineer.


  • Engineers, as practitioners of engineering, are professionals who invent, design, analyze, build and test machines, complex systems, structures, gadgets and materials to fulfill functional objectives and requirements while considering the limitations imposed by practicality, regulation, safety and cost.


I've worn every hat in software there is to wear from sales to deployment and everything between both hands on or as a leader/manager:

  • Understanding the business problem you are trying to solve (requirements analyst)
  • Proposing potential solutions to your problem (solution architect)
  • Project planning and management (detailed technical solution, project task breakdown, estimates, task/deliverable management)
  • Solution Deployment
  • Solution Documentation and Training

Solutions to Scale

Over the years I've consulted from small business to large enterprise organizations including Dow Chemical and Ford. These entailed anything from web scraping data for marketing campaigns to billion dollar plus eCommerce payment processing systems.

Cost is important, and not just short term, upfront costs. Long term costs are often just as, if not more important. My solution proposals take this into account.

Over engineered solutions can also be a problem. That's what I'm an advocate of agile solutions and processes which is something I've been studying and using almost since its inception under the likes of Ward Cunningham, Kent Beck, Ron Jeffries and Robert Cecil Martin.

Yet good process does not solve all problems. I've seen first-hand where so called "Agile consulting" shops that don't know technology deep enough to truly leverage it resulting in failed or less than optimal solutions. My experience has shown me that very few software developers know how to leverage modern programming paradigms to solve business problems in a cost effective way. "Everything must be made as simple as possible. But not simpler." -- Albert Einstein


I am currently available to consult for the Microsoft .NET Platform:

  • Platform/Application evaluation and reviews
  • Application Architecture consulting
  • Technical Team Lead - guide and manage solution development teams
  • New application (greenfield) Development
  • Existing application (brownfield) assessment, refactoring, porting/rewrites
  • Web sites and applications, Web Services and API's
  • Databases - relational and non-relational, SQL Server, SQLite, DynamoDB, etc.
  • Systems Integration - API's, files
  • Web Scraping (Python)

Training Services

Given my formal training was mostly focused on hardware, my software development expertise comes from my own studies and experience. The world needs great software developers so it's my passion to give them a leg up and shorten their learning curve by sharing what I know. Having spent a good deal of my career in solution consulting, I've had to learn to clearly communicate to various audiences with different levels of experiences and backgrounds.

Quotes from my students ...

  • "receiving tutoring assistance from Charles .... has been an amazing experience .. has helped me tremendously in my programming studies."
  • "Charles is an experienced software developer who is passionate about teaching and ensuring his students understand the lessons"
  • "exemplary understanding of software development, showcasing profound knowledge of design principles, best practices, and principles for developing clean code, unit testing, debugging code using advanced debugging tools"
  • "possesses all the qualities of a great tutor. He is enthusiastic, a good listener, fun and engaging"
  • "I recommend Charles as a tutor, I could not have graduated without his support and teaching method"