Around March 2017 I started my very first job at Evodeck Software, a software development start-up, as a junior developer. I’d had a couple of curricular internships before, with smaller durations, but never felt like I was actually part of the company I was interning for. At Evodeck I was part of the company’s takeoff along with a few other colleagues. Together we had to start shaping the company’s working process and identity, and I can personally say it has been a very rewarding experience.
Starting off we had to find the best ways to communicate within the team, organize ourselves and the development process. The more experienced team members had an idea of how to approach these issues but each case is different, and we wanted something that worked well for us, and that took many iterations. Coordinating between local and remote developers, three very different languages (Portuguese, German and English), iterating on which tools to use and which worked best, defining git workflows, all while projects were starting to pop-up and start off, gave its share of troubles but trough frequent retrospectives and a lot of internal communication, everything worked out.
Communication is tricky and weird on a day to day basis let alone in a new job. I had to learn to better express myself and to leave things clear especially when there is a language barrier between the people the message is reaching. We opted to use Slack as our main messaging platform and Skype and Hangouts for voice communication. Coordinating between the three languages and remote communication was an issue when we first started, sometimes written content might be misinterpreted, even a translated joke might have a total different interpretation. We had a couple of meetings to understand what could go better in communication and after getting to know each other and each culture associated to a language we eventually reached a comfortable spot.
Building a company isn’t easy, it takes hard work and great spirit of cooperation from everyone involved. To achieve this we have to learn to work well as team, this isn’t always easy but having a synced team can be easier if the members band well together. As a way to encourage this, team members participate when possible in the recruitment of new candidates, company lunches are planned and after work beers also happen. For me the greatest challenge initially was to sync with the rest of the development team, since I was the least experienced member it was, sometimes, hard to follow the thought process of the rest of the team. Over time this became less of an issue due to better communication and to the team getting to know each other.
Nobody knows everything, and as this was my first job I found that out pretty soon. The main technology used in the company is React and coming from mostly school and personal projects I had only ever created projects with baseline HTML, CSS and a bit of jQuery, learning a new technology always takes time and doing it while learning how to work was an extra challenge. Not only that, for better product quality it was decided that Unit Testing was a must, something I had never done before and it was hard to understand at first but here the learning process was smooth. Team members were always available and ready to help whenever questions arose, meetings to discuss bigger problems could always be arranged and mistakes were not followed by a blaming session, but instead by an open talk to discuss what went wrong, what could have gone better and how to solve the issue at hand.
Deciding on a git workflow also took some iterations, there are many to choose from and there wasn’t one that fit perfectly. We ended up trying a couple and finally setting up for a variation of git Feature Branch workflow.