Co & Co

During my studies in Edinburgh I had the opportunity to collaborate with a young startup called Co&Co. The idea of connecting student body with opportunities and a platform to support multidisciplinary work appealed to me. Then we decided to build it.

I was in charge of the architecture, product and project management and I also mentored and coached members of the team.

Requirements

At a high level the main features I could identify were:

Technology

One of the biggest challenges at the beginning of the project was the technology selection. I didn’t want to force or bias this decision by trends in the web stack or what the cool kids are doing. I tried to be pragmatic in the sense of the business domain requirements and I also considered broader aspects like the team capabilities (1 graduate junior developer and a 4th year graphic design student).

I had previous experience with Angular and I felt really comfortable working with it, however I tried Angular 2 and some design decisions from the Angular team make me doubt so much about the future of the framework. I also considered React, which looked very strong and there was a lot of community support but I didn’t have any experience. After running a couple of proof of concepts and learned Redux and Redux Form, I knew it was the way to go.

On the other hand, the backend and database selection would play an important role in the development of the project. To be honest I wanted to avoid going with ASP.NET Core, as my background with .NET technologies was extensive I wanted to try different technologies. Then, I ran some proof of concepts with Node.js, PostgreQL and Sequelize. But I need to admit that the Sequelize migrations didn’t work as much good as Entity framework and also the strongly typed C# characteristics make me thing that many errors would be avoided by selecting a typed language. On the other hand, the PostgreQL tools for development were not very good, I couldn’t find something better than SSMS.

The final decision was React + ASP.NET Core + SQL Server.

Infrastructure

Architecture

Lessons learned

Team is first

You won’t scape TDD

Conteinerize