Below are some samples of my work, that I'm able to disclose, as a software engineer at Lemonade. Lemonade is an insurtech startup selling renters and homeowners insurance in the US and Europe, as well as pet and life insurance in the US.
Majority of my work was done on our internal backoffice system, but here are some projects I worked on for our customer-facing product that I can share:
Tools: React.js, Redux
"Lemonade Goes Global" landing page
UI design: Gal Shir, Frontend: Eden Adler
"Lemonade API" landing page
UI design: Gal Shir, Frontend: Ofer Vugman, Eden Adler
As a "secret project" I created ASCII art out of our Lemonade logo and put it as a comment in our code, so that if a developer inspects and opens the developer console in the browser, they'd see this message:
As a DevOps engineer I helped setup our first data lake, warehouse, and pipeline. I also automated and scaled our infrastructure. Here's an example of a project I worked on:
Tools: AWS, Docker, Kubernetes, Node.js, Ruby on Rails, Slack bot, Terraform, Snowflake
Dynamically Scaling Environments
When the engineering team was small for the first few years, we had a finite number of "staging" or test environments for us to test out our features before they go into production. As the team grew, it became increasingly hard and expensive to manage all of these static environments (sometimes not all were in use, other times we didn't have enough).
As a DevOps engineer, I set up our Slack bot and infrastructure to support the dynamic scaling of environments. Whenever a feature was ready for testing, the Slack bot would automatically spin up an environment. The environment was labeled to match the ticket number of the feature so that the engineer, product, designers, and quality assurance would all be aligned on how to access and test the feature. As a result, instead of having only 13 available environments, we are now able to support an infinite number of testing environments.
As a Backend engineer I worked on our API used by many business development partners, added important features and functionality to our U.S. homeowners and renters product, and supported our efforts towards breaking apart our monolith architecture. Here's a few examples of my work:
Tools: Ruby on Rails, Slack bot, Docker
As a backend engineer, I implemented the logic of the swimming pool liability add-on for policies. This was a complex feature since, behind-the-scenes, our policies are built with a swimming pool exclusion, so I had to implement all of the logic for this feature backward (when the user adds swimming pool coverage, in the backend I had to program this as removing the exclusion).
Unindexed query alerter
We encountered several instances where engineers deployed features that included unindexed queries, which hogged our databases' resources and caused downtime for Lemonade's web and mobile app. Sometimes these inefficient queries would be discovered and fixed during the code review stage, but sometimes they slipped through the cracks.
After accidentally causing a short downtime because of this issue, I decided to find a way to catch these issues before they reach production. I built a script that runs alongside our pre-deploy testing phase, scans through the queries made to the database, and determines if any new problematic queries were detected. If found, it would comment on the exact place in the code for the developer to identify and fix. The next phase will be to make this alter system block features from being deployed if an issue is encountered.