Sep 07, 2023
No image
AICrowd: Taking care of YCombinator alumnus code
Ongoing

AICrowd: Taking care of YCombinator alumnus code

$25,000+
7-12 months
Switzerland
1
view project
Service categories
Service Lines
Software Development
IT Services
Web Development
Domain focus
Education
Other
Programming language
Ruby
Frameworks
Ruby on Rails

Challenge

The client came to us with a ready-made product - a platform for data science experts who solve real-world problems. The platform was already live, but the code had to be tidied up - there was a lot of refactoring and code reviewing to be done. Our task was to remove technical bugs and create architecture that will suit better quality code. We had to implement multiple amendments, e.g., related to cross-site scripting - a classic JS attack technique. There was a lot of work because for a long time, the project was developed by only one person from the conceptual phase to implementation. And although the team grew to three people, as it is not difficult to guess, refactoring had a lower priority than implementing new functions and that is why the client came to us.

Solution

After reviewing the code, we established an operating plan. We chose the classic agile sprint method in cycles of two weeks and Ruby on Rails for the technology. We quickly found that there was a lot of dead code in the repository that was vulnerable. We removed these fragments and implemented safe solutions so the project was better for review. The platform has been in operation for several years now, so most of the decisions on architecture and technology have long since been made. As part of the improvements, we changed the JS framework to StimulusJS, with Sidekiq and Redis responsible for background jobs. We used Heroku for hosting.

Results

We managed to significantly improve the quality of the code in the repository and eliminate most bugs. After changes and introduction of the architecture, the platform is more stable and uses less resources. We added a communication module, thanks to which organizers of the challenges can write directly to their participants, while before they had to ask AICrowd if they could send them an email address of a participant. The refactoring improved the structure of the existing code, got rid of dead parts and will allow for faster and more effective implementation of changes in the future. We also improved the code review process using static code analysis. Comments are now automatically added to the repository.