Now you can Instantly Chat with Efren!
About Me
Versatile software developer with broad-based experience working for both start-ups and well-established businesses....
Show MoreSkills
Portfolio Projects
Description
Babbel wants to enable other businesses to offer our B2C product to their customers, this will allow other businesses to partner with Babbel and offer language learning to their customers. The project has the challenges of supporting the self onboarding of new customer withoht any intervention from our partners. Unique links will be sent to customers, allowing them to onboard into babbel, this memberhips will have a fixed time interval and will auto extend unless there is a request to cancel.
This new part of the product needs to support houndredsof thousands of requests at first, and then millions
Show More Show LessContribute
I created a plan to split the services, executed this plan and also did the final data migration myself
Description
When I joined babbel, they needed to split their B2B functionality out of the B2C codebase, this was done before for convenience, but as the company want to expand it's B2B business, this is not ideal.
I created a plan to do this migration, including where and how we would split the services, how the new service would be and how the final switch will be done, with zero down time for our customers.
Show More Show LessContribute
I did the research, created a plan to split the authentication and account management services into a single service
Description
I created a plan to migrate the authentication and account management services into their own service. Because all our different VPN clients used this API we needed to do it in a way that would be transparent for the clients and we didn't need to release any new versions of them. I decided to use API Gateway for this, keep a single client facing api, while having mutiple services underneath. Also because of the high demand on these services, I decided to use Json Web Token to reduce the number of service to service calls and improve our customer experience.
Show More Show LessContribute
Create a single Data Store with all the data from our customers and create a REST api to access it
Description
To create this API we first needed to consolidate the data of all our customer into a single data store. Our clients had the same DB structure but we had one DB per Client. I create a tool to read and transform and write the data to MongoDB, which was selected as our No SQL DB. After the consolidation was over, I created a REST API to access the data.
The frontend was develop in React by another team, but as the project advanced, we discovered performance issues. Our queries were complex, mutiple conditions and geo location, it became obvious that Mongo DB couldn't hanlde this. I proposed using Elastic Search and after some tunning of the indexes, our most complex search decreased from aroud 30 secs to 300 ms
Show More Show Less