Topic: Software Development Team RFP

Camp: Agreement / 15K Design Sprint or Discovery / Consensus Design / Talentelgia Proposal

Camp Statement
Go live Time :

Canonizer Proposal By Talentelgia Technologies Pvt. Limited


About Team

We at Talentelgia Technologies emphasize on offering a high degree of product-user friendliness through an optimistic approach towards our work and our clients. Empowering customers since 2012, Talentelgia is one of the leading offshore IT development company that executes web development, CMS customization, ERPs, mobile applications, e-commerce and digital marketing services.
Our company endeavors to promote a business philosophy which deals with assuring the highest quality products, client satisfaction, timely delivery of solutions and the best quality/price ratio found in the industry.
United by our commitment to innovation and excellence, Talentelgia Technologies has expanded its services in AI/ML, data modelling, business and data intelligence, market analysis, Fin-tech, AR/VR, IoT etc and have developed and delivered turn key business solutions to its overseas customers.
Talentelgia Technologies is a group of IT enthusiasts addressing the critical needs of its global customers in every phase of software development lifecycle. Our custom automated business software solutions help the clients to easily manage their business processes. The business analyst team conducts a thorough research/analysis on customers business, existing marketing competition, target audience behaviour etc and then move towards the next step.
Once the business analysis is done, we act as business and IT consultants for our customers by preparing detailed CSD (client specification document) and SRS (software requirement specification) documents detailing all their business requirements and technology recommendations to develop their business software.
We have unique expertise in developing customized business automation software in different business domains such as healthcare, e-commerce, CRM, SAAS, e-learning, fin-tech, business directories, eBanking, events marketing & management etc. We gain competitive advantage from these distinctive capabilities by delivering custom ERP software solutions.
Talentelgia Technologies is a company which intends to be in front of the clients’ needs as their technical business partner and consultants. We always look up at the things from customers perspective and offer them full stack software development services by assisting them in every aspect of software development life cycle.

Executive Summary


We have reviewed your current platform and it is type of content generation tool, where user can create any topic/camp. Other user can be a part of that camp and create sub camps with their views on same. So under same camp, we can have multiple sub camps and other user can vote to the sub camps that they feels the content is more legitimate or meaningful. Based on the submit the vote, camps get prioritize in the list with the score. So user can understand easily what is user prospect on added content and understand the legitimacy of content.
Application is developed in Laravel and now you are looking for team, who can take over the project and contribute to make it highly scalable, user friendly, and implement proper coding and architecture to support large user base. Our process will start based on reverse engineering concept where we will first understand your business needs and accordingly evaluate your application architecture and will suggest you the points on how to improve, scale it or rebuild it. Our proposition will include to fix the current architecture, rebuild certain portions of it for better performance OR rebuilding of the overall architecture from scratch (if you are open for it) and implementation of additional features to help you meet your future business requirement.
Overview of key features included in current application-

  • User registration and login
  • Social Logins (Google/Fb/LinkedIn/Twitter/GitHub)
  • Social login and authentication
  • Browse topics
  • Create new topic/camp
  • Manage/edit camps
  • Create sub topics/camps
  • Manage and Add news feeds
  • Join or support camp
participate in camp forum
  • View blogs
  • Search within canonizer

Queries Responses


How would you architect a canonizer to be massively scalable?


It needs to be able to automatically grow, when needed, to handle millions of simultaneous users, then scale back to save costs when load is absent.
As your application is already is using AWS EC2 for hosting, we can use the same with better ram/processor along with EC2 container service and Lambda functions for load distribution and management, so increase in traffic can be redirected in case if high usage or, if any one of system fails
· AWS Lambda function auto scales the RAM as per the requirement of the particular function.
· Storage-As application will have requirement for media storage. We can use S3 for storage where all static media content can be served directly from S3 buckets for fast processing.
· We can also use SNS and SQS service to manage the notification for running Lambda functions. So, whenever any function request is received, it is stored in SQS and next SNS service is used to send notification at backend to run the Lambda functions for the same.
· Implement the realistic load testing to understand the system response on high traffic and load
· Implementing auto-scaling so that application can respond to dynamic traffic usage
· Set up monitoring and alerts to identify and track the issue as they occur. So, fixes can be applied in quick manner
· Back up or replicate data across regions or providers and automate backups to have latest data for any data recovery
· Securing and authenticating the communications across these regions as the traffic will traverse the open Internet.
· Set up database mirroring, master/slave configurations, and/or priming to ensure data integrity and minimum downtime.
· Using the dynamic DNS and static IPs so that components of your application’s infrastructure always have the right context.


I have also drafted suggested tech architecture using Laravel as backend technology framework -

https://canonizer.com/files/tech_architecture_2.jpg

What type of team management or prioritization tools are normally used, if any?


We use agile approach to execute the large-scale project and follow below listed tools for easy project management and collaboration.
· Communication Management - Slack for communication between distributed team network, that can easily integrate with 3rd party tools such as dropbox and Google drive for document sharing.

· Task Management tools - Jira/Asana/Slack - Daily tasks of each sprint are defined on these platforms to collaborate, where you can also follow the daily development and make your comments and notes

· Code Management - So all developer can collaborate for code management, see all their comments, create all the code branches, and then merge them together into sprint releases.

· Application performance monitoring tools - Amazon CloudWatch for Application Monitoring and AppDynamics Application Performance Management

· Project Wikis - Atlassian’s Confluence to keep/manage all the use cases and test cases in same place

· API Documentation - Swagger for API documentation and automating the API related processes

What experience do you have setting up and maintaining systems that are 100% continuous delivery enabled, including automated tests that prove 100% of functionality still works with each modification made to the code, along with automatic deployment of such fully tested changes


We follow DevOps approach for software development cycle for successful execution which consists of below mentioned 5 steps:

1. Continuous Development - This phase involves planning and coding application and when we start writing the code, it referred to as coding phase. To commit the code, I have used various version control tools such as GIT/SVN and JIRA

2. Continuous Testing - In-order to release the code I usually perform unit/functional testing to ensure everything is working fine. Tool - Selenium/Junit

3. Continuous Integration – This phase helps to integrate tools with configuration management for deployment. Tools – Jenkins/GitlabCI

4. Continuous Deployment – this phase helps in establishing and maintaining consistency in an application be it functional requirements and performance. Tools – Jenkins/Gitlab

5. Continuous Monitoring - Monitoring is as important of DevOps life cycle as while developing the application there will always be a possibility of bugs which could remain undetected during the testing phase. Tools - AWS CloudWatch and Stack Driver

Provide any other ideas of how you could contribute or help improve Canonizer and it’s goals.


Here are some optimizations we can look into to improve the overall performance of apps-
1.We can check overall application performance of Web application from browsers by checking page load time and requests response time.

2.We can monitor the requests taking response time longer than expected.

3.We can check for the exceptions and fix them.

4.Tracking the database queries and stored procedures and optimize them.

5.Logs monitoring for requests and responses however keeping the logs minimum

6.we can check where request data can be cache and where cache is maintained

7.Applications 3rd party dependencies and their performances.

8.Check for memory leaks.

9.Checking for long running loops or threads.

10.Checking for coding practices followed i.e., null values and use of try Parse.

11.Check for the infrastructure provide to run the application.

12. Check for minified version of CSS and jQuery libraries.

13 use of CDN for images, fonts or other scripting and styling files.

14. Making UI more user friendly and responsive for multiple browsers and devices

What is your philosophy on code reviews by team members, or strategies such as team or pair coding?


Yes, we follow best practices for code review to achieve the same we follow defined procedure. We don’t exactly follow the pair code, but we have specific team member we handle the code review. So before the code is ready for review, developer make sure to clear the below check list –
- No code compilation warning and it passes static analysis

- Perform all unit test, integration test and system test

- Perform the code cleanup and remove any unwanted code

- Code is properly commented and include the notes for new implementation

- If some changes are made, it should outline the change and reason for change

Once the code is ready for review and code reviewer perform his analysis on following parameters -

- Error handling and logics

- APIs are well documented

- Proper and consistent indentation

- Structured (or modular) programming techniques is followed

- Variable have mnemonic or meaningful names that convey to a casual observer

- Program statements Are limited to one per line

- Meaningful error Messages

- Reasonably Sized Functions and Methods are used

- Authorization and authentication handled properly

- Cross-site scripting, SQL injection,

- input sanitization and validation

Do you have any examples of times when you went beyond what was being asked of you by your immediate supervisor to further the goals of the company or humanity as a whole?


As an individual contributor, I have always believed in creating second line leaders, motivating people to deliver better quality and acquire a better skill set with the passage of time.

To me, it is more important to regularly raise the standard and the quality level of mine as well my team's services.

I never restrict myself to follow the bookish examples or predefined approaches. I am a people-oriented person and always strive to make them do better by leading them with examples.

Please see "I" denotes "Talentelgia Technologies" here.

Talentelgia has always given a platform to its people to learn and earn and build a multi fold skill set to play challenging roles in various capacities as required on-site or within the organisation.
We have put an immense focus on regular learning, skills improvement and adopting an overall improved quality process.
Our uniqueness is that we have unconditionally invested in the skills enhancement of our team members and have inspired them to take on better and challenging roles in the company for our overseas clients.

Team Structure


1. Minish Chopra – Project Manager

Key Roles -


Perform all project management processes i.e., initiate, plan, execute, monitor, control and support complete processes e.g., scope, cost, time, issue, risk, resource, communication, quality and stakeholder management

2. Reena Nalwa - Sr. Software Engineer / Team Leader

Key Roles –


Implementing GIT flow process, including branch merges and deployment.

Implement CI/CD work-flow using Jenkins

Writing code, peer code review, documenting system environments and takes necessaries action as per tech changes.

3. Pranav Kumar – UI/UX designer (On Need Basis)


Key Roles -


Communicate with both technical and non-technical individuals to produce site map, user flows, wireframes, page layouts and UI specification deliverables for hand-off to technology and QA.

4 . Two Full stack Laravel developer


Key Roles –

Writing code, peer code review, documenting system environments, 


Installing debugging tools, use of MVVC framework, creating document, supporting the testers with deployment to testing/UAT/Demo environments,

5. Sr. Frontend Developer (React/Vue/Angular)


Key Role –


Work in coordination with designer and lead developer to build, deploying, and maintain apps with CSS3, JavaScript, AngularJS, ReactJS, Redux, HTML5, Bootstrap, , AJAX and JSON.

6. Raman Singh - Sr. Server Administrator


Key Role –


Handle complete servers and configuration. Having complete AWS scaling and process integration. Security checks and various layer integration for any security breaches.

7. Quality Analyst


Key Roles -

Reviewing business requirement documents and software requirement documents. Write test plans, defining test scenarios, developing and maintaining test scripts, analysing bugs, and tracking bugs till closure

8. Amaltas Singh – Business Analyst


Key Roles -


Acted as a liaison between the Stakeholders and Developers, Understanding the scope and creating initial requirement document/proposals.
Quality assurance process


Being a development house, it is our responsibility to handover properly tested software applications passed through various testing parameters.

Usually, we perform the below mentioned testing while developing and before delivering the applications to the clients –


1. Unit testing by programmers 2. Responsiveness testing by designers and QA 3. Regression testing by QA 4. Security testing by QA 5. Load testing by QA 6. User acceptance testing by QA


Application deployed to your live hosting server would be passed through all the above-mentioned testing parameters.

Planned System Design Changes After Review

Our team have reviewed complete system and we found that we must have to design front end in React JS or Angular to have more light front end and more user friendly. And we have some user friendly design suggestions too which will make it more user friendly and social too.
Thanks
Team Talentelgia

Support Tree for "Talentelgia Proposal" Camp

Total Support for This Camp (including sub-camps):
5.25

Current Topic Record

Topic Name : Software Development Team RFP
Namespace : /organizations/canonizer/

Current Camp Record

Camp Name : Talentelgia Proposal
Keywords :
Camp About URL :
Camp About Nick Name : No nickname associated