I love design. I think a good design is the basic principle of quality, and quality is the right way to the success of a software peoject. Writing code is a sort of an art.
I intensively use design patterns. They are among the important tools any software professional must have. Knowing and applying patterns means building more reliable, robust and maintainable software systems, thus improving general quality and life cycle.
Open source technologies are nowadays the basis of many modern computer systems. They are both powerful and cheap. Frameworks like Spring, Seam, Hibernate and application servers like Jboss, WildFly, Tomcat (just to pick some examples from the Java world) are the main open source technologies I work with.
Customers expect ROI from using commissioned software. This can only be achieved if software systems are properly implemented in accordance with user expectations and high quality standards. The main aspects of software I focus on in order to improve quality are:
- User experience: The main goal of software is to minimize the amount of time spent by users in non-core business activity. This basically means that the software must adapt to the user, not user to the software.
- Maintainability: The greatest development effort in a software project is always occurring after the production deployment. It’s therefore critical that software is properly designed from the very beginning, thus cutting down the maintenance costs.
- Security and reliability: A secure and reliable software is a software that protects users data and guarantees their integrity. Not only from hacking and cracking but also from possible coding errors or accidental events such as system crashes.