Software Design

Web developer with over 13 years experience, who designs robust, stable, expandable web applications.

I have been developing web applications for what seems like all my life and I’ve learnt a heck of a lot along the way. Working on projects of varying complexities and size has exposed me to many hurdles that you wouldn’t come across if you had not of gone through the experience. All of these experiences, hurdles, headaches put me in a position whereby I am able to  utilise these experiences and design robust, well designed, stable, secure web applications that meet the clients needs.

Using web development processes I am able to communicate with your stakeholders, determine what they would like from the system, and document a clear set of requirements that meet all of the stakeholders needs, requirements that can be measured and reflected upon at various stages during and after development to ensure they’re being met.

Large complex projects can require more detailed documentation than smaller projects, my experience and knowledge allows me to use stakeholder requirements to document and plan a system, making use of use cases, scenarios, class diagrams and such to communicate how the system is going to work to both the stakeholders and developers, gathering vital feedback from both and refactoring the design to suite the feedback.

I have an understanding of design patterns which allows me to design systems that avoid duplication, are well structured, while providing the ability to be easily updated and expanded upon. Changes to existing code can be up to 40 time more likely to be error prone than new code, which is why the systems that I design allow new functionality to be added to an existing system with minimal changes to existing code. This is done by making use of inheritance, composition, encapsulation and various design principles.

Systems are designed to be test-first driven, as tests can be used as an analysis tool and provide instant feedback that can be used to refactor the design of the system before development starts. Test-driven development itself provides a number of benefits during development, where existing code can be tested when changes have been made to ensure a change has not disrupted existing code. Tests are designed to confirm that functionality and features work as they should, while also confirming that operations respond in a correct manner when something unexpected happens.

Whether your project is large or small, my design skills and knowledge are reflected in it’s design.


Get useful tips on web application development and software engineering.