Welcome to the Tech Blog
My name is Miguel Alvarado; I’m Lumiata’s new CTO. I joined Lumiata on October 1st, only a little over 35 days ago. It has only been just over a month and Lumiata already feels like a second home.
This is my first blog post, and with this post, I would like to introduce the tech side of the Lumiata blog. From this post on, our data science (machine learning) and engineering teams will be posting every 2 to 3 weeks on various topics related to the work we’re doing. Things are very action packed here at Lumiata. Some of the things we’re doing are very challenging and interesting. We’re hoping to engage with the community at many different levels by regularly presenting what goes on here. The goal is to inform and inspire, as well as being informed and getting inspired ourselves.
Without further ado, welcome to Lumiata’s Tech Blog! Hopefully, we will be seeing you here periodically, checking out what is going on in our worlds of applied machine learning and engineering.
Moving on to my blog post topic - “CTO’s First 30 Days.” This is the first part of a three-part series. I will be posting again after 60 and 90 days. The series will attempt to depict my experience in a way that is hopefully informative to others going through similar experiences.
Before diving deep into my first 30 days, I would like to describe why I joined Lumiata, to set better context around my entire experience. In short, I wanted to be part of a technology organization that had big ambitions and was trying to change the world for the better. Prior to Lumiata, I had been in entertainment for some time, and while every single experience I had was interesting, challenging and exciting, I wanted to be part of something that was attempting to change fundamental aspects of our society. I also wanted to be part of something that was building software where Big Data and Machine Learning were at the heart of the product.
I've long thought that two of the most important pillars of society are education and healthcare. Recently, I realized that I wanted to be at a company helping to advance the needs within those pillars. Lumiata's mission to “make healthcare smarter” resonated incredibly well with my ambitions. Often, companies with big missions like that have short term goals that are scattered and unrealistic—that was not the case with Lumiata. I found that Dilawar Syed (CEO) had done a great job in the last 6 months to focus the company. Further, the mid-term goals were attainable while still pursuing the long-term ambitions that could change health care in fundamental ways.
Lumiata's initial goal is to provide risk and cost predictions for patients and populations to help optimize major health plans. Between reading academic papers on the topics that Lumiata shared with me and learning about the projects that Lumiata has been working on over the last few months, the team gave me very strong evidence that there is something special here. They showed me that there is a true problem area to pursue, but also that Lumiata has already been laying the groundwork in terms of providing robust Predictive Analytics solutions, built with Machine Learning.
What I saw was an organization that had found a very specific set of problems to solve, and had a proven way to do so with Machine Learning. I saw an organization ready to build software that would “industrialize” the proven predictive analytics capabilities it already had found a market-fit for. The Machine Learning knowhow was there; it was now a matter of applying industry software development “know-how” to scale it and industrialize it. This latter part is something that I felt I could personally help with.
This seemed like an ideal opportunity for me. An opportunity where I could combine software, big data and machine learning “know-how,” for a space that represents one of the core pillars in any society, that space being healthcare. Not to mention that the company already has a particular edge that customers are willing to pay for. That is ultimately why I joined Lumiata, and now my mission is that of the company - "make healthcare smarter."
The First 30 Days
There are two groups that report up to me, and I have only two direct reports that lead these groups. On one side, I have Nicolas Tilmans running software, data engineering and infrastructure. On the other side, I have Rohun Kshirsagar running all-things data science and machine learning. I like the fact that the reporting structure is clean and simple, and under these two gentlemen, the organization is completely flat.
Even before my first day at Lumiata, I started thinking about “what are the most important things for a CTO?” I wanted to form a mental model that would guide my initial endeavors. I knew that the first 90 days would be all about learning my context, especially in the area of healthcare, but I also knew that some important decisions would have to be made, so I was looking for a framework to guide my thinking.
I concluded that the 3 most important things for a CTO are:
Even though these are only 3 areas of focus, they’re rather comprehensive and really include everything that a CTO should be thinking about. Culture is all about people, and potential issues around people. This area includes aspects like hiring, morale, relationships and interactions between teams, coaching needs, conversations about low performers (if any), etc. In a way, it can be summarized as all-things people and their behaviors. I am a firm believer that people are the most important asset that any company has, so this fact can make culture potentially be the highest priority item to think about within the first 30-90 days.
Technology is all about tech strategy and how it maps to product strategy. It includes coding standards, what ML frameworks and techniques are being used, how to go about technical design, best practices, metrics to measure the quality of technology being produced, buy vs build conversations, IP building, DevOps practices, architecture, security and privacy, compliance, technology vision, etc. These are the areas that first come to mind when one thinks about a CTO - all things technology. The problem is that sometimes technology is the only area that is considered and the people or operations parts suffer.
Operations are all about the day-to-day, the ways in which things are getting done, logistics, and processes. This includes thinking about how to capture requirements, how to document things, how to implement agile, processes around security, team rituals such as stand-ups, retrospectives, delivering feedback to customers, etc.
It’s clear how these things are very much related to one another, but it helps to think about them separately as three distinct areas of focus. Since these 3 constructs were going to be the core structure for my frame of reference, I asked my two direct reports to use these same 3 when we conduct our weekly 1:1’s. This has started to give us a similar frame of reference as a starting point for conversation.
Because culture and people are so high up there in my personal value system, the first week at Lumiata, I decided to have 1:1’s with everyone - data scientists, engineers, and also people outside of my technology organization. The goal of these meetings was to learn more about them and Lumiata. As an added bonus, I thought I would also get a good read for what the morale is like. I wanted to get enough material to educate myself, but also to find improvement opportunities.
What did I learn in that first week?
First of all, it took me over a week to talk to everyone. I scheduled meetings very tight next to each other so that I could get this done in the shortest amount of time possible, and it was very energy consuming.
One of the most important things I got from the meetings is that the morale is very high, everyone is incredibly smart, highly educated (many PhDs), and incredibly passionate about what we’re doing. Everyone really wants to make a dent in the world of healthcare. I did not hear unproductive complaints, nobody talked negatively about anybody that works currently at Lumiata, and everyone had a legitimate willingness to making things better. I was pleasantly surprised by how positive everyone was. I say that I was surprised, just because the status quo is that most organizations have issues here and there, especially when it comes to morale, and I did not find any red or even orange flags!
I did find that there is a lot of room for “better,” and these were my biggest takeaways:
1. Lumiata’s world (healthcare) is complex. So, better documentation is needed.
2. The ML side could inherit some aspects from the software world while keeping its highly experimental nature.
3. Too much time is spent with datacenter matters. Yes, Lumiata is not in a cloud provider (yet).
4. I got reminded that Security and Privacy are hard if you’re in healthcare, and we can’t miss a beat.
5. For every project, there is a heavy “integration” step at the end of it, bringing together the effort of many scientists and engineers.
6. We could use more test automation, and there are recent advances here that we can adopt.
7. There are times where there are data bugs, not just code bugs.
8. It is hard to understand the lineage from data sources to models to predictions.
9. Inconsistency with development process and people sometimes not knowing what is going on and when to expect things.
10. Lead time is currently very long.
1. Use Confluence as the tech wiki, the entry point for all documentation, and I gave that some initial documentation structure.
2. Literally everything should be documented.
3. One week sprints for all - data science and engineering.
4. Everything should be tracked in the same way for all teams in JIRA.
5. Hiring is a top priority for all.
Easy decisions, right? Now on to "not so easy things". This includes the following: what to do about the datacenter, how to deal with security in a scalable fashion without eating up tons of resources, how to better the QA automation world, and how to improve lead time. Again, the key is not to overthink things. It's also important to get out of the "thinking" phase and quickly into the "doing" phase. You learn much more by doing than just thinking about it.
I decided to start a major refactor of our environment codenamed Project Carabela, after the “conquistadors” that took the Carabelas (ships) to go find new lands. We are starting immediately with a focus on these areas:
* CI/CD, Continuous Delivery will be the fabric for everything we do, whether it is changing a model or some Spark code. Everything will be driven from a Jenkins pipeline.
* Security can be augmented with the help of a 3rd party. Lumiata puts a lot of effort and time in making sure that security is buttoned up year after year. With help we can scale these efforts as we grow.
* Adopt Great Expectations framework as part of the QA automation toolset. Add the practice of "data testing" in addition to code testing.
* Re-design the main data pipelines so that there is a visible and deterministic approach to identifying lineage from raw customer data to predictions.
* Move to AWS!
(While there is more in the POC, these are the relevant areas for this post.)
The rest of my 30 days have gone into figuring out the details for this POC which should give us the basis for the new world that we’re moving to. CI/CD, easier to manage and less time-consuming security, data testing, lineage and being in AWS should help us scale things as we move forward in our mission of "making healthcare smarter."
How to measure success?
We are a data-driven company, so we're implementing metrics to measure the success of the POC. We're using the following:
* % of components that have CI/CD pipelines deploying to production in AWS
* Lead Time - from code completion to deploy to production
One can say that this POC includes some bold things, especially after only being here just over 30 days. I believe that important decisions can’t wait, and perhaps it’s the most important message in this blog post. My experience has shown to not postpone big decisions; the sooner you make them, the more time you have to switch gears if anything around the decision needs to be adjusted.
I would conduct these past 30 days in exactly the same way, if I had to do it over. To recap, the most important things in my 30 days have been as follows:
1. Establish a common frame of reference between me and my direct reports.
2. Talk to people to learn about the organization and my environment.
3. Don't over-think things, and start moving.
4. When there is a lot of uncertainty, and important decisions need to be made, kick off a POC to pave the ground. After all, you learn more by doing it than by just thinking about it.
5. People don’t like to document, but doing it pays dividends. Always push for it.
This was my first 30 days! Stay tuned for 60 and 90 days.
Lastly, to really go after our mission of “making healthcare smarter”, we need more engineers. We need very strong, seasoned engineers that have interest in helping us build a world class, machine learning platform for the healthcare industry. If you think you’ve got the chops, and what we’re doing resonates with you, I invite you to visit the careers section of our website.
Chief Technology Officer, Lumiata