Iffort has been operating in the space of technology and digital marketing services since 2010. For more information about us, please visit: https://www.iffort.com
- Scaling - We believe that scaling can be achieved at two levels – Infrastructural Level and Code Architectural Level
- Infrastructural Level - Since the application is already deployed on AWS (EC2 Instance), we recommend that we use Elastic Beanstalk and Auto Scaling services of AWS to manage and automatically scale the infrastructure when there is a sudden spike in traffic or when we have millions of users using the application at the same time. Though both the services are quite useful for scaling, we would recommend that we go ahead with Auto Scaling Services for now that can scale our EC2 instance and database as per the requirement.
- Code Architecture - It seems that right now the application is built using Monolithic architecture. For any application, to be scalable, the architecture must follow micro-service architecture. We recommend using container-based architecture where different application units will have different instances of the container running independently. Further, these containers should be managed by Kubernetes for scaling, deployment, and management. With Amazon Cloud Services, Kubernetes can be managed manually with EC2, or a managed Kubernetes (Amazon EKS) can be provisioned.
- Team Management Tools - We use Trello and Jira for team and project management depending on the complexity and requirement of the project. For team collaboration, we use Slack.
- For code collaboration, it is recommended that we use cloud service like GitHub or Bit Bucket as a code repository. We at Iffort use Bit Bucket as our code repository for all our projects as it is connected with the project management tool Jira.
- Code Review Strategy - There are various ways through which we review the code: - Visual Studio Code extensions like Phpcs, PHP Mess Detector - Using PHPUnit of Laravel Framework - Peer Code Review – Through Trello, whenever a story is completed by a developer, the story status is changed to – Submitted for Review. At this moment, the scrum master assigns the story to a peer developer for review which is then reviewed and submitted further for code merge or deployment.
- Deployment tools like CICD and Jenkins
- Continuous Deployment We recommend using DevOps methodology to improve the process of integration, delivery, and deployment. CI/CD pipeline is one of the best workflows that can be followed by a DevOps team. Multiple tools and plugins can be used at each stage (Source, Build, Test, Deploy) of the CI/CD pipeline to achieve faster integration and continuous deployment.
- How can we help Improve Canonizer? For any product, as a development partner, we believe that we should set certain standards and processes in place. These standards could be – Project Documentation, Coding Standards, Code Documentation, Process for using the Code Repository, Test Processes and many more. If these processes are clearly defined, documented, and actively followed by the team, there is no way a product can fail technically.
- Examples of times when you went beyond what was being asked of you? Three years ago, we were hired by a company in Dubai for developing a mobile app and the backend. The first phase of the product was launched and made LIVE in one year after its inception. Three years later, Iffort has an equity in the same company, and we a core team of 5 dedicated developers working on the continuous development of the product.
When we engage in a project, we do not just bring in our technical capabilities on the table but we do also bring our 18 years of experience in development and marketing of the product in multiple industries.
According to above proposal, we recommend the following team structure to be deployed for the project for next 12 months:
- Sunny Jindal - CTO/Chief Technical Architect
- Rohit Kumar - UI/UX Designer
- Ashish Upadhyay - Project Manager
- DevOps/Platform Engineer
- Security Expert
- Sr. PHP Laravel Developer
- Sr. PHP Laravel Developer
- Front-End Developer (Vue.JS/React.JS)
- Full Stack Developer (Laravel + Vue.JS/React.JS)