Engineering runs a LunaVision Hackathon

Lunathon 2022

Lineate’s culture is built upon providing our engineering teams the Freedom to Develop- develop cool software, develop skills and careers -, and a part of this is training and exploration of what it means to build great software. LunaVision is the technical approach we take to building quick, clean, future-proof applications.

Our Director of Solution Architecture, Eugene Wechsler,  ran a Lunathon Hackathon, with teams competing to build a Proof-of-Concept that illustrates this vision.

The Hackathon allowed our engineers to create fast and useful prototypes while realizing the benefits of Serverless technology. [What is a Hackathon? This is a programming competition with the goal of creating a real working system in a very limited amount of time.] 

Each team was given a difficult task: to develop an idea that would help our clients, improve internal processes / increase awareness of the work of distributed teams. We have provided each contributor with an AWS account and access to a git repository. Due to multiple time zones, from New York to Georgia, we had a whole week to work, during which the teams also worked on their work projects. During this time, they needed to fully develop and implement ideas and present a working application.

The Rules

The POC must use:

  • Serverless Backend implementation (Lambda functions / ECS containers / RDS). 
  • Any programming languages, but extra points for Go
  • Serverless APIs (API Gateway / AppSync)
  • React is recommended if a frontend is involved
Evaluation Criteria
  1. Working software in Production
  2. Readiness level for real usage
  3. Level of “Serverlessness” of the approach
  4. Idea implementation fits Lineate needs
The Teams & Elevator Pitches:
Team 1: Red Raven - Elevator Pitch: LineCraft

We will make a corporate quest system that will allow people to test themselves by completing complex and exciting tasks, compete with other participants, and receive well-deserved rewards and recognition from employees of the entire company.

Team 2:  Blue - Elevator Pitch: Lineate Home

A Home-sharing app for quick property rental: There are many sites for renting real estate Vrbo, Airbnb and others. However, all of them imply advance booking of real estate and subsequent rental of real estate through communication with the landlord. Our application, using smart home technology, will allow you to rent a property on the fly without any extra effort and contacts, like renting a car in car sharing. Real estate objects have a fairly large set of characteristics, which is constantly changing. Their display requires a lot of flexibility from the system. Our application will aggregate data from different resources (real estate agencies), flexibly display them on the map and allow you to start renting real estate in one click. Our application will help Lineate employees quickly rent property anywhere in Russia, and then in the world, which will allow them to work efficiently from absolutely any location and provide easy rental housing closer to their colleagues or clients!

Team 3: A-Team - Elevator Pitch: Project Heaven

Few people in the company know the details of active projects, why they are interesting, what technologies are used. It is planned to launch the Project Fair site, where employees will be able to share information about their projects, interesting technical solutions. So that this knowledge does not gather dust in the backyard of google drive, we came up with an application that will aggregate information about projects, happiness metrics, team compositions, technologies, reports with reports, and much more.

Team 4: Two Pizza Team - Elevator Pitch: Project Cat

Sometimes I need to know which projects Lineate is working on. Oh, that one is interesting, I would like to talk to its team lead about the thing they are building. Where do I find it? 

/pcat list # or /pcat ls

  1. 33Across: Staff Augmentation
  2. AdMarketplace: Data processing and adtech reporting dashboard
  3. Gladeo: Program Finder
  4. Insticator: Embedded team
  5. Sovrn: Commerce

/pcat cat 5 # or /pcat cat 33Across: Staff Augmentation

  • Project Name: 33Across: Staff Augmentation
  • TeamLead: @GMaltsev
  • Unit: 1
  • Unit: @pkaramishev
  • Roadmap: <Link>

The Results

The teams did a very good job and demonstrated working applications that met the criteria. The judges were most impressed with the work of the Hackathon winners - the  Linecraft team. The guys became the happy owners of electric roller skates (Do you know what it is?!)

In the project presentations, we were pleased to see that the teams were able to successfully use the proposed technologies and overcome all the difficulties associated with learning and working with new technologies. Let's see what was used and why it was great.

The entire backend was implemented as a serverless API or AppSync GraphQL backed by lambda functions. Services have been described as code using SAM and Cloudformation. The main advantage that has been obtained with this approach is the rapid creation of staging environments and the complete automation of deployment. As reported, many were able to set the pace to multiple deployments per day and focus on the core production side of projects without much overhead. Also, the teams didn't have much difficulty with AWS permissions, even though our team was very strict about permissions when preparing these sandboxes.

Serverless and Infrastructure as Code

Serverless + IaaC diagram

This is not the first time we've seen a lot of interest in this tech stack, and while GoLang isn't a clear part of our tech vision, we'd like teams to use it if they want to.

One of the teams that chose it for their lambda implementations shared the opinion that it is very easy to understand and start using, although they had problems choosing the right GraphQL framework.

GraphQL APIs

GraphQL API digram

Two teams used GraphQL and its advantages of "talking" in a domain language between the front-end and back-end. We got positive feedback from one of the teams about flexibility, which made the work more efficient (than using a more classic RESTful approach). As for my project, PCat, we connected it to API Gateway (because slack requires REST endpoints), but later realized how GraphQL could be useful in the future for presenting information about our complex projects.

golang



Golang Architecture diagram

Eugene was thrilled that the Hackathon went so well. The teams liked to work together, they liked to implement a new vision in their work. We received a huge response from the audience and requests to organize similar events again.

For information about how we train teams on Serverless, check out our in-depth how-to guide.

Check out the Serverless How-to Guide