Mastering Serverless Architecture with Mike Jones, VP of Eng at MedaSync

Episode 17: Mastering Serverless Architecture with Mike Jones, VP of Eng at Medasync

Hosts: Fahad Shoukat and Andrew Wolfe

TSP Logo.png

Today's Guest: Mike Jones; VP of Engineering at MedaSync.

Mike brings nearly 10 years of software development experience to MedaSync. He oversees the development of the MedaSync platform and works with other engineering team members to program and launch new features.

MedaSync is the managed care software solution for skilled nursing facilities that helps to improve revenue integrity, increase efficiency, better control costs, and analyze business performance. Using MedaSync, operators strengthen their businesses and improve their patient care experience.


Show Notes

Who is Mike Jones? (1:22)

Socrates Analytics, OnShift, and MedaSync. Python, Django, REACT, SQL, etc shops.

Ryan Edgerly recruited Mike to work on the MedaSync software for skilled nursing facilities (SNFs).

-SNFs need better ways to collect accurate levels of reimbursements.

Why serverless technology? (3:25)

What problems are you solving with serverless tech?

-ETL. Extract, Transform, Load (data processing model) Tons of ETL. Running data feeds from other databases and sources of information multiple times daily.

-Scale is really important and maintaining the ability to scale quickly and efficiently.

-Event-driven monitoring capabilities provided by serverless.

-Need bursts of computing power to get technical work done. Functions as a service (like AWS Lambda) are critical for making this work. Not paying for idle time.

ETL Pipeline for MedaSync (6:00)

-Ability to schedule events and kick off "on-event" workflows.

-Kubernetes and ECS auto-scaling also work to accomplish this but require more know-how and wrangling to deploy and realize the benefits.

-Lambdas to process jobs, databases for results, all described in JSON or YAML and we can run these whenever we need, easily.

How to decide on containers/serverless/etc? (8:00)

What should enterprise CTOs and teams think about re: serverless?

-Don't panic. Kubernetes and containers are still very viable.

-Strengths and weaknesses.

-Can't use Lambda to listen to certain types of queues such as FIFO queues. And MedaSync needs to listen to these. So they use a container solution for this type of job: ECS.

-Also, anything that has OS dependencies. Can't beceause of runtime limitations with Lambda (5 minutes).

-FaaS do have latencies to spin up. Bloomberg and other fast types of executing businesses need to use other solutions because of the latency involved in spinning up compute with Lambda.

The dirty work is almost always database management (13:18)

NewSQL discussion.

-It's really important to weigh out the tradeoffs involved in new tech.

-ACID-compliance; way to keep SQL databases intact.

-Classic undergrad example: shared bank account and two people need to withdraw $$ at the exact same time. Transactions are necessary in relational databases. Not as much of a concern with NoSQL DBs.

-DynamoDB is an example of a NoSQL DB that is fast, efficient, and doesn't have throttling on writes in the same way many other systems do. It's also fully-managed. So nice. Scales beautifully too.

-Still need to work on the schema of data especially in the context of medical applications. NoSQL doesn't mean that you don't need schema definition.

The pitfalls of "fully-managed" (20:31)

Where do you want to do things in Dynamo that Amazon won't allow?

-Be thoughtful up-front!

-Don't go too fast and throw good design out the door.

-However, serverless does allow a ton more flexibility and tolerance here in terms of making sure that you can make adjustments as you go.

Hedging reliance on serverless (22:43)

What does fail-over look like? Dealing with outages and managing multiple application server providers.

-Biggest priority is the data itself. Backups and replication (especially georeplication)

-One fallback is point-in-time recovery. This is a DynamoDB service.

-Can never escape the full-reliance on the service provider. In Bezos we trust!

-Are providers too big to fail?

Vendor lock-in with serverless (25:57)

It's really hard to port code 1-for-1 from one provider to another.

There are some primitives provided by all vendors but it's still highly customized.

-Looks like AWS may easiest vendor to use in terms of porting code etc.

-MedaSync evaluated Azure and wasn't satisfied with it.

-Can't really change the fact that it's actually super hard to switch vendors.

-For startups: focus on the business problems you're trying to solve vs. portable code.

Zero tolerance for drudgery (30:01)

-For example, many steps for someone to deploy code or set up a DB etc.

-From the business side, the more time we can free up for the business to creatively anticipate and address problems, the better we can serve the customer.

-Engineering team is three developers in total including Mike. MedaSync wasn't previously serverless and they pivoted. Had a positive impact on engineering culture.

-This pivot very much required buy-in from the executive level as well.

The place of artificial intelligence in this conversation (32:37)

This is important!

-Using natural language processing (NLP) to find business efficiencies and savings.

-Huge opportunities around machine learning (ML). Especially Comprehend and AWS ML.

-AWS has easily-accessible, fully-managed tools that require the user to feed information correctly and then see the results.

Tips for serverless success (34:22)

-Coupling infrastructure and code is important. Defining cloud resources correctly and rebustly is very important.

-The code should describe in detail the resources necessary to deploy and run the code.

-Testability. Test test test. Write code in an isolated and decoupled way. There's no substitute for well-factored code.

-Serverless testing frameworks are going to become much more necessary. Demand is increasing a ton; will need supply to catch up to this. Cucumber- does it still work? What frameworks will become outdated or obsolete or invalid altogether?

Exciting things on the serverless horizon (37:27)

Mike's really excited to see how this whole architecture scales up as more and more customers come online.

-Excited not to have the problems with containers and other monolithic technologies.

-More adoption from larger enterprises. But that's going to be a huge challenge for these scaled up business. Switching to anything is difficult for these organizations given their complexity and existing codebases.

-How do you start? Pick a small problem to solve in isolation, run some experiments, get some wins, and go from there.

-New paradigms are opening up everywhere, frontend, backend, microservices, AI, etc.

-Cloud has been great for everybody.