We believe in Trust, Quality, Responsblility and Teamwork

Virtual escapade of the team!

During our latest team-building meeting, we decided to experiment with VR technology. We all put on our magical glasses and, in an instant, we were transported to an extraordinary world full of limitless possibilities. We discovered the power of teamwork in real-life situations, like fighting zombies :wink:. With cleverness and collective intelligence, we managed to survive the relentless zombie horde and emerged victorious from this virtual battle. What will the next team integration bring? Stay tuned and join us!

Remote work at The Workin Group

At The Workin Group (TWG), working remotely is an essential tool, and brings a lot of success and a positive impact on those who work with us, first and foremost, remote work saves us time and we can fully focus on our work – rested, not tired from commuting. It gives us time to do something for ourselves after work, almost immediately after completing tasks – more space to relax or spend moments with family.

We work with experts, engaged in working with the latest technologies, and they often want to create their workspace on their own, so no one dictates what equipment they should work on. Some came to the office bringing their mouse or keyboard, at the home office the office is customized only for their own needs. You also don’t have to worry about fighting noise interfering with your work, as you would with open space.

Working remotely also makes it easier to travel and work. Asking our specialist, Gustaw, who decided to work with TWG after 8 years in the office, and he cited this as one of the important reasons. “I like to go out and explore new cities, finishing work at 4 pm and simply closing my laptop is much easier for me to do that.”

In addition to the increased comfort of life, it’s also worth noting how communication between co-workers improves – they handle specific shuffles efficiently and quickly, catching each other on the appropriate communicator for that. We support this communication and once a month, we meet online with the whole company to talk about what’s going on, and what news is ahead of us and answer any questions we have. For those willing, we also meet once in a while in Warsaw to spend time together on some entertainment.

At TWG, we care about getting your task done, whether with a break to walk the dog or visit the doctor is irrelevant. What matters is respect and mutual trust.

This is how we do it

Java & Spring for modern containerized microservices in the backend

If you start to think about building modern middleware there are a lot of decisions that you need to take from the first moment.

Starting from the architecture if you feel that you need to go with microservices to be ready for containerization / clouds / horizontal scaling then you immediately wonder how to organize communication or manage transactions in such distributed environment or what kind of API expose (Restful / GraphQL / gRPC) and how to protect it.
The next important decision is a technology stack to use which will allow you to focus maximally on the business domain and not on implementing repetitive elements required from modern platforms.

In TWG we like to build backends based on Java & Spring with Full Reactive Stack including:

  1. Web reactive – Spring WebFlux
  2. MongoDB reactive driver
  3. Reactor

Additional in such distributed setup we are usually introducing:

  1. Distributed, correlated logs and tracing – Micrometer Tracing (former Spring-Sleuth), combined with Zipkin or Jaeger.
  2. Integration with many different logging systems: LOKI, AWS Cloud Watch, ELK Stack.
  3. Metrics exposure and monitoringprometheus

• for basic statistics (uptime, start time, JVM statistics – memory, JVM statistics – GC)
• for REST API (inbound / outbound HTTP requests)
• for Spring data repositories (MongoDB) & mongoDB driver commands
Consumed by: PrometheusVictoria Metrics or Datadog
Grafana as visualization and analytics solution

  • Sophisticated security supporting oAuth2 / OpenID Connect often combined with keycloak as oAuth server (to not build by our own AAA and user management and use proven, easily extendable solution in java which is additional benefit as complete backend can be Done in a single language)
  • Support for event driven systems / Spring AMQP and Spring for Apache Kafka
  • Support for externalized configuration with Spring Cloud config  and different backends as configuration storage (git, vault etc)
  • Support for GraphQL as yet another presentation layer
  • API Gateways, to expose solid API and hide internal distributed infrastructure, with standard gateways capabilities like: rate limiting, circuit breaker etc, based on spring components or kubernetes ingress controllers like Traefik
  • Automatic REST API documentation generation in OpenAPI Standard – Swagger Specification successor openapis.orgspringdoc.org
  • Easy containerization thanks intelligent spring-boot concept and big players involvements, providing hardened base images like Amazon Corretto

Pros

  1. Production-grade, scalable and reliable distributed platforms build in a very fast way
  2. Happy developers doing great things 🙂

Cons

Complicated ecosystem

Statement

Have you already practiced a similar approach?