About GO2 Markets
Founded in 2013, GO2 Markets emerged on the renewable energy scene with a visionary goal: To bring efficiency, transparency, and passion to environmental markets. We connect buyers and sellers globally to facilitate trading of multiple commoditized environmental products, including Energy Efficiency Certificates, Renewable Energy, Biogas, Carbon Emission Reduction and power purchase agreements. Each clients reasons for exploring renewable energy are unique so our team of experts takes a determined approach to developing custom solutions tailored to each client's goals, and budget. We become an extension to your team on your journey towards sustainability. (source: https://go2-markets.com/company )
Intro
I've joined GO2 Markets 2019. I had the responsibility to digitalize the back office processes and create tools to be used by the internal departments of the company.
Few months later we shifted gears and decided to build a product for our clients. We've got the ambitious mission to digitalize the renewable energy market. In around a month we've got our first MVP product ready. Clients were happy. Unfortunately, due to the how the market works, clients were unwilling to change their work habits. So, we didn't have enough support to deliver something, that someone would use.
Again, we've shifted gears and now we are working on something else, that would bring the political and economical drive into a customer product.
Tech Stack
Go, Python, Perl, Bash, JavaScript, SQL, HTML, CSS, Node.js, Svelte/Sapper, React, PostgreSQL, MariaDB, Redis, Docker, Nomad, Consul, Fabio, dnsmasq, NGINX, Apache, Fluentd, AWS, Terraform, Ansible, GitLab, Zabbix, Matomo
Team(s)
I'm the sole software developer in the company, working along with the founder, UX/UI designer, back office, business intelligence, traders and marketing.
System architecture
The system architecture consists of microservices, responsible for only one task, i.e. document uploads, email notifications, chart drawing etc... They are independent, providing API and have own database.
There are two PostgreSQL database instances, one primary and one secondary (as replica), divided by name spaces for each service/ domain.
Communication is done through HTTP requests and Web Sockets.
On the customer side, we have the company website and the main application. They communicate with the backend through API gateway service, proxying the incoming requests to the corresponding services.
All the services run in docker containers, orchestrated by Hashicorp's Nomad.
Monitoring is done with Zabbix and log aggregation is provided by fluentd.
The whole infrastructure is running on AWS, maintained as Infrastructure-as-Code with the help of terraform and ansible.
Release Process
There's configured a GitLab pipeline for every project. On update of the master branch, the pipeline is triggered and the new version is deployed.