Perfico skillset

Whenever we are being asked what makes our offer awesome, we are always proud to invite people to this page. Perfico team is equipped with a strong and comprehensive technology stack, combined with the cutting-edge methodologies, allowing us to develop unlimited variety of high-quality enterprise software architectures. We are not just familiar with these technologies - we actually have skills and expertise to solve complex business tasks using this toolkit.

Server technologies

Java

We use Java technology supported by thousands of companies and developers around the world. A great variety of Java libraries allows for innumerable unique combinations to perform all kinds of programming tasks and satisfy any business need. Java-based enterprise applications are widely acknowledged for their stability. The standards of this language help developers to utilize a component-based approach to create multilevel applications. Because of Java''s robustness, ease of use, platform-independence and security features, it has become a language of choice for providing worldwide software solutions, including Enterprise software.

Spring Framework

Spring is widely used in the enterprise segment. Over 43% of companies using Java chose this framework as basic. We utilize REST API in our applications, which makes them integrable with third-party technologies. It presents the following opportunities for businesses:
  1. Unification of enterprise technologies and ‘light’ web solutions
  2. Wider opportunities for horizontal system scaling for growing businesses.

Microservice architecture

One of the best concepts for enterprise applications. This architecture was formed by Martin Fowler and is likely to become commonly used in the next 2-3 years. This approach presents numerous opportunities for businesses:
  1. Maintaining balance between price and quality for all (critical and non-critical) enterprise spheres.
  2. Possibility of gradual enterprise upgrading in accordance with strategic development plan.
  3. Increased decision-making flexibility related to IT infrastructure.

User Interfaces

Angular

Created by Google, Angular is one of the most advanced and popular technologies nowadays. It was inspired by another google product - GWT and we guess suppose to replace it in the future. We use this technology as it allows to significantly reduce development time and cost. At the same time, Angular allows to boost system usability, meaning better Operational Time and higher Customer Satisfaction Index.

Ionic

Ionic is an Angular-based framework used to develop hybrid mobile apps using web technologies such as HTML5, CSS and Sass. Perfectly-suited to develop highly interactive apps, and supplied with a wide variety of customizable default UI, Ionic provides a great range of tools and services for related tasks, Ionic allows to build applications with the successive publication in AppStore and Google Play. Moreover, Ionic framework is compatible with AngularJS, and so the benefits of AngularJS framework apply to Ionic as well.

Methodologies

12 Factor approach

We develop applications under this concept. It allows us to achieve numerous business-important objectives:
  1. Null downtime during updating operations
  2. Simple integration
  3. Software scalability along with the business
  4. Reduced cost of change
  5. Safe application running, not affecting operational activities.

Clean Code

Programming principles formulated by Robert ‘Uncle Bob’ Martin. The similar approach to interface programming is used by John Papa. Clean Code methodology is a set of rules to regulate the whole development team activities. In project management this methodology allows to significantly decrease the cost of development and support of long and complex projects, as well as scaling development team if needed.

Scrum

Scrum is Agile project management methodology. Scrum is “Lean Manufacturing” for software production. The concept is breaking whole project into small Plan-Do-Study-Act interactions. It helps to reduce uncertainty in requirements specification, avoid spending resources on unneeded product features, at the same time increasing Value delivered to stakeholders. From the client perspective Scrum allows for faster update of priorities and requirements, as well as faster delivery of results.

DevOps technologies

Docker

Docker is well known for its portability across machines and easy maintenance. This technology allows easy environment sharing between developers, without compatibility losses, reducing time for new environment deployment and development sustaining expenses. Containerization allows to lower the cost of heterogeneous structure maintenance, gradually modernizing IT-landscape, merging legacy and new technologies.

Continuous Integration

We are using Atlassian products for project management. Bamboo, Jira and BitBucket have great integration characteristics and help us maintain software development process at a stable high level. Continuous deployment along with auto-testing gives us more time for coding, saving costs on human QA testing. Software becomes more stable, because Continuous integration server checks code for any change and notifies developers about any wrongs and deviations.