The Hugo Tech Stack
At Hugo, our tech stack emphasizes simplicity, transparency, and ease of use above all else.
First, it is important to understand that a strict adherence to specific technologies is not a sustainable method of building a great company. At the same time, an offhandedness to technical choices is extremely destructive, especially to early stage companies (imagine trying to grok the end-to-end of a product using 6+ languages — I have been there).
At Hugo, we will always be evaluating, evolving, and improving our stack of technologies and technical solutions; but, for the moment, we maintain a fairly clear vision of what tools will help us achieve the best outcomes for our community and facilitate the best engineering experience for our employees.
I divided each major technical component into its own post for thoroughness. In some instances, topics that are related have still been broken up to allow a more thorough exploration of our reasoning around the choices we have made.
Our Stack and Technologies (in-depth)
- Language: JavaScript
- Framework(s): Node & Express
- State: Couchbase
Other Technologies
We use many other technologies at Hugo and I will dedicate future posts to fleshing out our diligence process and considerations around the various frameworks, technologies, and applications we deploy. Here are a few to mention:
DigitalOcean
Our primary cloud provider is DigitalOcean. We initially chose DigitalOcean because we started as a company of one engineer (myself) and DigitalOcean has done an amazing job of creating a simple, intuitive experience with well written guides. Additionally, DigitalOcean is extremely responsive to needs, issues, and tickets, a vital requirement for an early stage startup.
In the future, we will be moving our infrastructure across multiple cloud providers to guarantee no single point of failure can affect our users.
Docker/DockerSwarm
All of our micro-services, infrastructure services, database instances, etc. run within containers. Dave (our amazing developer operations engineer) could probably write a book on what we have learned since moving to this configuration; but, I will summarize the primary outcomes:
- High availability (load balancing across many automatically managed instances)
- Security (many layers of walls separating any single intrusion vector)
- Ease of deployment (rolling deployments)
- No single point of failure
Kafka
Kafka is a technology that Dave and I have had prior experience with. At Hugo, we use Kafka to capture events that are handled by our stream processing infrastructure to perform what I will term “incidental” interactions (such as messaging a user when they have left their car insurance on for too long).
Jenkins
We continuously deploy software. As such, we needed a secure means of continuous integration to both guarantee quality of deployment AND execute our deployments. Additionally, we use Jenkins for scheduled jobs.
Git/GitHub/ZenHub
Git has been a core requirement for software engineering for what feels like a very long time. At Hugo, we have a very specific workflow to guarantee that bugs, tasks, and features are all being executed at a high level of quality without negatively affecting our employees. Expect a future blog post about process at Hugo and how we balance work, life, and the needs of our community.
ELK
The ElasticSearch/LogStash/Kibana stack has proven itself time and time again. At Hugo, we love ELK. ELK enables us to quickly sift through the large volumes of information our micro-services constantly report and identify issues, bugs, and bottlenecks quickly and with specificity.
Conclusion
At Hugo, we use a lot of different technologies to achieve our goal of serving our community by building the best car insurance out there.
This list is, for obvious reasons, not exhaustive. We use many libraries, frameworks, operating systems, and technologies to create a high availability product with as high a quality of work/life balance as can be achieved.
Want to know more? Feel free to reach out to me.
And, as always:
We’re hiring! Come work with us.