Development
Custom software development and legacy application maintenance.
Custom software development and legacy application maintenance.
Depending on the business and the business stage, I can participate actively to build what is necessary for your product.
I'm an expert when talking about PHP-related technologies. I've contributed to many open source libraries used worldwide, visiting the opensource page you can find a list of them. I'm specialized in Symfony based applications, this includes green fields implementation or from legacy-to-new implementations.
My expertise is not limited to symfony but goes beyond, I'm an all-around expert highly confident with this technologies and many other.
I've also built and maintained dozens of different applications that goes from custom websites to e-commerce systems or from custom products to huge CRM systems.
A small subset of projects I've worked on are available in my portfolio.
Enriching your data by using third party API or externalizing part of the problems to a third party provider is a common approach when building software.
Nowadays is possible to consume via API an endless list of services as sophisticated speech recognition services, recommendation engines, invoicing systems and many many others.
I can integrate third party services with your existing application ecosystem or implement API endpoints from your existing data structures or services.
Each database type has specific use-cases, strong points and weak points. Choosing the right one (or a combination of some) can be not trivial and requires the consideration of your specific need.
I can develop efficient database schemas, ensuring data consistency and keeping always in mind your performance requirements.
I have an extensive experience with relational databases as: MySQL, PostgreSQL and SQLite.
I have also experience with non relational databases as: Redis, Memcache, Couchbase, Cassandra and MongoDB.
Infrastructure is all about the set of technologies and tools that you need to use in order to run your application or business in the most efficient way.
Some of them are necessary from the beginning and some of them can be put in place in a later stage. Tools to improve the performance of your application, reduce bugs or tools that allow a faster development cycle by enabling developers to work faster, also them need to be learned, developed and maintained.
I can help you to introduce and maintain them to improve areas as: Development, Provisioning, Deployment strategies, Monitoring, Logging and Continuous integration
To go more in detail, technologies as Docker, Docker-Swarm, Puppet, Terraform are my speciality. Working in cloud environments is my default option.
When having less bugs, increasing the time to market, improving speed of features delivery and reaching good software quality become important for your business, it is time to introduce consciously in your company some DevOps practices.
DevOps (a clipped compound of "development" and "operations") is a practice that aims at unifying software development (Dev) and software operation (Ops).
The DevOps practices improve automation and monitoring at all steps of software construction, from integration, testing, releasing to deployment and infrastructure management. DevOps will shorter development cycles, increased deployment frequency, more dependable releases, in close alignment with business objectives.
I can help you to introduce automation and monitoring in your development cycle. By carefully analyzing your specific situation, together with you will introduce the DevOps in your team and product.
Maintaining your application is fundamental.
Software maintenance is a very broad activity that includes error correction, of capabilities, deletion of obsolete capabilities, and optimization. Because change is inevitable, mechanisms must be developed for evaluation, controlling and making modifications.
Change is inevitable because the markets change continuously thus to stay on the top is necessary to listen continuously to the need of your customers.
I can assist you in analyzing and estimating the impact and cost of the change. I can also actively participate to the maintenance process by supporting and improving your application.
My intervention will be carefully evaluated in each step to make sure to deliver always a tangible value for your customers.
A fast application is equivalent to happier customers and higher conversion rate.
I can analyze and solve performance bottlenecks of your application by doing an attentive research of our application, and together with you understand which actions can be taken to effectively improve the user experience of your product.
Here some of possible performance tests can be done for your application:
Your software is a long term investment. A software that becomes legacy, in many cases is a successful software. Loosing the acquired value of legacy software should not be an option.
Often an application needs restructuring to meet new business goals. The reasons to migrate your software can be due to difficulties to find skilled people to maintain it, difficulties to integrate third party systems difficulties in introducing recent technology improvements and so on.
I can analyze your current application and collaborating with the interested departments plan and execute a migration from your old platform to a new one. In the planning and execution process particular care will be dedicated to reduce risks and have always measurable results.
Custom API development based on the latest web-industry standards and Symfony framework.
A tailored API solution for your business, putting first your goals and ensuring success of the project. From the technical point of view, the resulting API will be a rich, RESTful (Level 3 including HATEOAS), standard, documented and validated API.
Docker has revolutionized how web applications are built. It allows a faster release cycle and allows more confident changes to your application and infrastructure thanks to the approach "build release run".
Migrating your application from a traditional "server" based approach to a "container" based approach will bust the productivity of your team and will allow you to deliver in lest time new features to your customers.
Continuous Integration is a software development practice in which you build and test software every time a developer pushes code to the application.
By applying the Continuous Integration it is possible to reduce the time-to-production, reduce the number of bugs that land on live and to build faster new features thanks to the increased confidence that repeatable builds deliver.
Legacy software is where the value is. Is the story of a successful idea that delivers value.
It is fundamental to not let became "old and not working anymore" that piece of software. Updating legacy software to the latest industry-standards it is a must if the goal is to continue to deliver business critical values.