Background
Profile

Troels Kaldau

Software Developer with a focus on end-to-end mobile applications

Experience
Projects
Skills
Header Image

MyEpi System Migration

Project for MyEpi

TL;DR

At MyEpi, I led the migration of the company's system from an external software bureau to an in-house setup. This included transferring GitHub repositories, rewriting CI/CD pipelines, migrating the MongoDB database, and configuring new resources on Azure with support from the Microsoft Founders Hub. I also set up supporting services like Twilio, Sentry, and SendGrid. The migration provided a complete overview of the system, enhanced my understanding of deployment processes, and prepared me to navigate cloud providers.

MyEpi is a MedTech startup founded in 2021 by Jakob Junker. The company aimed to create an application to help people affected by epilepsy manage their condition.

MyEpi website (outdated)

MyEpi website (outdated)

When I joined the company, development and operations were managed by an external software bureau. With my technical expertise, the startup decided to bring these responsibilities in-house to gain full control over operations and assets.

I began by gaining a complete overview of the system components. This included the core elements like the database, backend, and deployed applications, as well as supporting services such as Twilio for call handling and Sentry for error tracking. I also worked on transferring GitHub projects to a new organization and setting up CI/CD pipelines for the new repositories.

The final task list included:

  • Create a GitHub Organization
  • Transfer repositories
  • Extract and set up GitHub submodules
  • Migrate MongoDB database
  • Set up Azure company profile and connect to Microsoft Founders Hub
  • Set up CI/CD to deploy on Azure
  • Set up a new Sentry profile and project
  • Set up a new SendGrid account for SMTP handling
  • Set up a cron job for notification reminders
  • Deploy the new solution and switch the domain endpoint

Migrating the GitHub projects was more complex than anticipated. The external bureau had used submodules that needed extraction and reconfiguration in the new organization. Additionally, the CI/CD pipelines, originally tailored to the bureau's multi-project workflow, had to be simplified for the in-house workflow.

Migrating the MongoDB database also presented challenges, as MongoDB Atlas does not allow ownership transfers between organizations. The migration was completed during a brief system downtime, ensuring a smooth switch to the new database.

Microsoft Hub website (December 2024)

Microsoft Hub website (December 2024)

The startup had applied for the Microsoft Founders Hub, which provided up to $150,000 in Azure credits. A new Azure account was created and linked to the Founders Hub to utilize these credits. Resources were then configured to support the new system, and the CI/CD pipeline was set up for Azure deployment.

Supporting services like Sentry, Twilio, and SendGrid were reconfigured with minor updates to configuration files and environment variables to ensure compatibility with the new setup.

After all components were in place, the new system was deployed, and the domain endpoint was switched. The old system remained active for a few days to confirm no data loss during the migration, after which the bureau was informed their services were no longer required.

Migrating MyEpi's system provided me with a comprehensive understanding of its components and dependencies. It also enhanced my skills in system deployment and cloud provider navigation. While different cloud providers vary in specifics, the fundamental principles of gathering system information and configuring resources are universal, making me confident in adapting to new providers quickly.

Also Read:

/assets/high-res/myepi_bg.webp

Position

CTO

Led all technical development at MyEpi, from design to deployment

/assets/high-res/server_performance.webp

Project

gRPC Performance Analysis

Optimized a real-time system using gRPC, achieving low latency and high scalability for 500+ concurrent clients during my bachelor's thesis