Job Opportunities for Recent Graduates at our Freenome Research Platform

Freenome combines molecular biology and machine learning to create tools that empower everyone to prevent, detect, and treat their disease. We are growing fast and we are hiring in many areas; and I have several openings for Recent Grads in my group.

Our group builds the lower layers for the Research Platform used by all our scientists. Our focus is on the compute, data, automation and reliability aspects of the platform. We use Python, multiple GCP services, k8s, workflows (go flyte!) and other modern frameworks and tools. We collaborate daily with engineers that are building bioengineering and machine learning tools used to ingest and process data and run multiple types of experiments

You do not need to know molecular biology – I knew nothing when I arrived – but you will learn a lot.  You will also learn how a modern MLOps is put together. This is a very special opportunity to make a difference and to develop your technical skills.

We have a great technology, our Multiomics platform, a great multi-cultural team, last time I counted over 31 languages at Freenome, great collaborators, partners and investors, see our News Page, and our mission is truly unbeatable: let’s solve cancer together!

We are looking for somebody with a BS or higher in Computer Science, Data Engineering, or related field or equivalent training, fellowship and/or work experience. The majority of our work is based on Python so that is strongly recommended. You will work in an agile development cycle, interacting with multiple groups; your written and verbal skills will help you accomplish your tasks. We emphasize collaboration, communication and compromise and leverage our collective skills to achieve our goal.

If you are interested in learning about this opportunity, start by checking if you know somebody at Freenome that graduated at your school and talk with them. If you think there may be a fit, you can ask them to refer you at the internal job site. Or ping me if interested (LinkedIn or mail); we know graduations are now and good candidates will have multiple opportunities, so we want to move quickly.

And yes, we are open to remote work, though only in the US at the moment.

Change is Good – 11 years after Sun Microsystems

Change is Good!

The acquisition of Sun Microsystems by Oracle Corp closed 11 years ago, on Jan 27th, 2010, 9 months after it was first announced.

I had been at Sun for many years and I really liked what I was doing but, in hindsight, the acquisition forced me to accept change, and that was good.  I stayed at Oracle for a few months, and then left for BlackBerry (then RIM) where I joined other ex-Sun people, learned new things and shared some of what I had learned with new colleagues in a different community. 

I believe that embracing change, and exchanging communities, is a key asset in our industry.  We learn new things through experimentation and observation, and then reshuffle and try again in a new environment.  And, collectively, we move forward.

I reported on the beginning of the Sun exodus a year after the acquisition: people and OSS projects. The process has continued, though I have only tracked the movement through my direct friends.  On a personal level, after BlackBerry I joined Progress, and then CloudBees.

I’m now at Freenome.   I joined for three main reasons:

  • Cancer sucks and I believe I can help Freenome in its mission.
  • I can learn new things: Biology, ML, Workflows, Python, Continuous Improvement in a Regulated Industry, and many other topics
  • The company culture is outstanding

The change to Freenome is arguably the biggest change so far for me, from hiTech to bioTech. This change enables many opportunities for learning and teaching across these two industries, and I will write about that in the future but, in the meantime…

Change may sometimes be scary but, change is good!  My lesson is to embrace it and keep growing…   

And ping me if you are considering a move to BioTech.  Particularly if Freenome has any appeal to you.

CloudBees – Time to move on!

A delayed news update …

I left CloudBees last month. It was a great journey. We started with a basic concept, a very small team and somewhat limited experience with modern SaaS. We ended with two multi-featured products (DevOptics and SDM), on AWS and GCP, in a multi-region team, releasing in a CI/CD workflow using a very modern stack. We all learned a lot about technology and processes.

And great people! Smart, kind, team players, with many accents and cultures distributed all over. In the US we had people in the West (CA, OR, WA) and East Coasts (PA, MA, NC, FL) – and Texas, let’s not forget Texas! Outside the US, we had people in Australia (yep, 6 hours behind me) Ireland, Scotland, and England, Spain, France, Austria, Switzerland, (that’s CET for you, 9 hours ahead of me), and briefly Croatia (that’s 10 hours ahead!) – I became fairly good at Time-Zone math 🙂 And I learned about Irish and Australian sense of humor…

Thanks to everybody that shared this journey with me; do stay in touch.

CloudBees was great but it was time for me to move on.

I took a short break between jobs but I start at my new job tomorrow. More about it tomorrow!

Modeling Value Streams using DevOptics Free Plan

Hot off the press: you can now model your value stream and track your deployment frequency using the Free Plan for CloudBees DevOptics. We released this new functionality as part of the ramp-up to next week’s DevOps World | Jenkins World San Francisco. There are two main new aspects: an improved, and free, value stream modeler, and extending the availability of deployment frequency available to the Free plan.


With the stream modeler you can capture how software flows through your system (or you can design how you want it to flow) by creating and connecting Gates. Then, if your flow is based on jobs running on Jenkins or CloudBees Core CI/CD masters, you can connect these gates to the jobs using the DevOptics Plugin and leverage the computational aspects of CloudBees DevOptics.

The connected masters need to be configured to a DevOptics account, either in a Free plan or in a Premium plan. Both plans provide CD platform monitoring (Run Insights) – the Free plan only provides 7 days of statistics while Premium extends that to 90 days. The Free plan now also provides Deployment Frequency metric for all gates, albeit also only for 7 days. The Premium plan adds two more Job-based metrics: Change Failure Rate and Mean Time to Recovery as well as Mean Lead Time. Mean Lead Time is based on Value propagation in the form of commits and tickets through your Value Stream, which is a key feature of DevOptics Premium.

You can get more details about all this from the CloudBees DevOptics User Guide, and you can try it out from devoptics.cloudbees.com!


Using the Value Stream modeler is straight-forward. Setting up the plugin to enable Deployment Frequency is pretty easy too but below I spell out the steps, starting right after my earlier post: Upgrading to the latest DevOptics


After connecting the plugin go to the Settings creen in DevOptics This is how it looks if you have configured only have Run Insights section of the Plugin:

And this is how it looks after connecting also the Value Streams section:

Now create your value stream:

Here is a very simple one-gate value stream

If we leave the gate unconfigured, it will look as this (note the wrench icon):

But, since we want to track Deployment Frequencies, we will now edit and configure the gate against one of the jobs in a master where a plugin has been installed. This is the configuration popup:

Save and you will see that the wrench goes away:

At this point we are ready! We just need to run some jobs on the master and data will flow, so…


We go to our Jenkins and run some jobs…


Now if we go back to the DevOptics app and look at the Value Streams screen we will see something like this:

On the Run Insights side, the graphs will initially look as below – note that the grey bars are gone and there is some empty space for the most immediate time interval:

But, if we wait a bit for the data to be propagated, we will see:

which is exactly what we expected.

So, there you go! Enjoy!

Day 1 building a SaaS

Here is my list of things to do ASAP when building a SaaS product (like DevOptics). What is yours?

Deployment Environments

Get a DEV (inside the firewall), STAGE (outside the firewall) and PROD (outside) set up.

Continuous Deployment

Arrange for your software flow so it will go from Repo commit to PROD automatically.

  • Implement zero-down time deployments from day 1, using blue-green, or k8s cut-overs

Feature Flags

Add Feature Flags (like Rollout) on Day One.  Stay in the trunk. Don’t keep code out of PROD.

Front-End Infrastructure

Set your front-end infrastructure for speed and decouple from back-end

  • We like GraphQL; others work
  • Arrange for Mock APIs
  • Set lightweight Front/Back separation
  • We like Cypress 

Instrument your System for Ops

Instrument on Day One using something like DataDog APM.  Reuse existing SaaS Services, don’t build your own.

Operate in Self-Contained Teams

A team should be able to build the back-end and the front-end.  Minimize interactions between teams. Get things to PROD.  PM and UX must be part of your team.

Keep Value Flowing

Don’t hog Value / Code in Open PRs.  Push functionality out, even with a Feature Flag.  Get Feedback. 

Iterate on Processes

That’s the core of “Agile”; operate with Agility and iterate

Add Connection with Customer

Use a SaaS service from Day One. There are multiple options out there.

Track Usage

Instrument your SaaS so you can track usage, front-end and back-end. Use something like Segment, Looker, Interana.

Upgrade your DevOptics – July 2019 Edition

DevOps World | Jenkins World SF is around the corner, so time for an update post to add to the collection of posts on DevOptics … et al.

Back in September 2018 I posted instructions on how to install your Jenkins distribution from scratch, and then how to install the DevOptics Plugins.  Let’s assume you had done that, so, picking up from there…

The first step would be to install the latest version of Jenkins.   Since I already had one, I just accepted the request from within Jenkins and installed the new version.  That got me from 2.121.3 to

Next was to upgrade the DevOptics Plugin

 By now I was running a fairly old version, I jumped from 1.1349 to 1.1739

The upgrade went pretty smoothly, and I restarted.  Then I went to look at the Connectivity status of the DevOptics Plugin.  Here, the latest Plugin is trying something different: it is asking me if I want to enable the Value Stream functionality.  Here is the screenshot:

The Value Stream functionality depends on additional plugins.  I can continue as-is, without installing the extra dependencies, or I can install the recommended plugins.  I chose the latter, and then I reinstalled.

I knew that my DevOptics subscription had changed recently, so, partly as an exercise, I disconnected the plugin and then reconnected.  This is the popup we get on disconnect

And this is the message we get on reconnect:

Cool.  Now I am back to where I was, except that now the new dependencies have been installed and my DevOptics plugin is fully connected.

At this point we are cooking and the Plugin should be connected to the back-end. Stay tuned for the next post in this series.

CloudBees DevOptics at DevOps World | Jenkins World 2018 (from CloudBees Blog)

This is an indirect link to the official post.

Last month I attended our annual DevOps World | Jenkins World 2018 in San Francisco. The event has gotten bigger every year, and – spoiler alert! – next year the conference will be at the San Francisco Moscone Center.

CloudBees DevOptics was an integral part of the event and this post will highlight new updates and features to the product. But first, I’ll give you a recap of what happened in San Francisco…

The rest of this HERE

It’s Friday Night – Do You Know What Your Code is Doing?

(this is a reprint from the post at Blogs.CloudBees.com from Sept 6th, 2017)

Marc Andreesen wrote back in 2011 that Software is Eating the World, and nowadays business execs everywhere, from GE to Ford to ABB, all are saying that their companies are really Software Companies.

SoftwareIsEatingTheWorld-2

Hold that thought…

Now look at a typical process for creating, testing, and releasing Software.  What you see is a multiplicity of individuals and groups collaborating to coordinate how ideas are converted into code that is tested, integrated, deployed, measured, and evolved, in faster and faster cycles.  And companies – all companies – are investing heavily to improve these processes to gain a competitive advantage, or just to remain competitive!

Jenkins

Next, peek at these Software Processes and you see automation and improved information flow and coordination as the key enablers.  And our friend Jenkins is one of a handful of tools that are Everywhere (in all companies) and Everywhere (in all places inside a company).

My employer, CloudBees, is the home for Enterprise Jenkins.  CloudBees Jenkins Enterprise and CloudBees Jenkins Team address running Jenkins in your Enterprise…

CB-Jenkins-leftCB-Jenkins-right

But!

What is missing is how to connect together all these automation engines, and other agents in these Software Processes, so you can gain insight on and improve upon your Software Process…

So, today, CloudBees is announcing CloudBees DevOptics!

DevOptics Logo

CloudBees DevOptics connects all the islands of software development and provides you with a global view of your software process.   We, of course, connect to all your CloudBees Jenkins instances, but we will also connect to Open Source Jenkins instances; and more.

DO-Placeholder

The screenshot above shows a very simple Software Process involving 3 Jenkins instances, used to create two Components (Plugins A and B) and then a combined Artifact that integrates those two components.

DevOptics collects the information from these 3 instances – they may be anywhere in your organization – and makes sense of the changes that are flowing through them.   The screenshot shows the tickets that have gone through the system – in this case filtered to the last 14 days, and shows where those changes are within these 3 “Gates”.  Some changes are still in the Components, others have gone through the integration – or perhaps are being tested right now.

As you can see, DevOptics can show you details about these changes.  We connect back to the defect tracking system – JIRA in this case – to get the current data on those tickets.  We also provide, but is not shown above, a connection back to the code repository (GitHub in this case), and, of course, to the automation engine itself, the Jenkins job.

In future blogs I will talk more about DevOptics.  In the meantime, you can check out today’s keynote announcement (video) and also the booth demo we are doing at JenkinsWorld (video).

VIDEO Screenshot HERE

Today is our announcement; we will launch later in the year.  Go and contact our friendly CloudBees Sales Team to engage with us. DevOptics is a SaaS product, so we will iterate quickly to add features and to accommodate feedback and new customer needs.

And remember, all Companies are Software Companies!  Regardless of the industry your company is in, you can benefit from CloudBees DevOptics! 🙂

Yes, we are taking over the world.  Go Team!

 

Jenkins World 2017

Its been a long run since the first Jenkins User Conference, back in October 2011, at the Marines’ Memorial Hotel and ClubJUC2011

The 2017 edition, now called Jenkins World, is at the end of this month, now at the much bigger SF Marriott Marquis Hotel, at 780 Mission Street.

sfodt_main01_r

Ping me if you are around, attending, or just want to chat.  At this point I’m planning to be there for the actual conference, on Wed and Thu; whether I’ll be there Mon or Tue, workshop days, will depend on the usual Gods of Software 🙂

See you around!

My Favorites from CES 2017

I spent a couple of days at CES 2017 last week.  Two days is tight for CES and I missed a few things that were in my to-visit list but it was still totally worth the trip.  A selection of my photos are in Flickr, but here are some highlights:

Most Guts – Prosthesis

IMG_9517 2.jpgThis is an exoskeleton designed for racing.  It has four mechanical limbs controlled by the racer within, in mostly prone position, one per leg and arm (I uploaded a video of the movement).  The project is now part of Furrion Robotics; the vision of the designer (Jonathan Tippet) is a racing league.  The current version was completed just before CES 2017 and still does not have the actuators on it but here is a 1/3 scale version of the left arm actuator:

IMG_9523.JPG

It’s very impressive and feels properly nutty… in photos and even more in real life.  I created an album just for it.

Also check out the original web site, the Indegogo project, and the Gizmag/New Atlas article.

Geekiest Demo – Qualcomm Drive Data Platform

Qualcomm had a very impressive demo of their Drive Data Platform.  They use a Snapdragon 820Am with a camera, a fast (Cat 12) modem, and a neural network app using the Snapdragon Neural Processing Engine.   Here is the (simple) camera setup:

IMG_9564.jpg

DDP uses the camera and SNPE to recognize the objects around the car in real-time, especially buildings and the such that bounce the GPS signals and limit the accuracy of the GPS.  Then DPP can filter out all but the direct signals from the satellite and it can determine the location of the car very accurately and quickly.   Here is a screenshot showing all the buildings that are being detected in real-time by DPP.

IMG_9562.jpg

The (very accurate) location can then be used, again with computer vision, to determine the location of other elements in the field of  vision of the camera, like the lanes in the freeway.  This information can be shared with the map system.  And can be crowdsourced!

Repeat all this, and you can get very accurate maps very quickly.  I asked how large a sample they would need to do this and the presenter indicated that a large manufacturer would be able to do this by itself.   Think about the implications for the mapping ecosystem!

Here is the Qualcomm Blog Post on the DDP.  I’m sorry I didn’t take a video of the whole demo, but it was very impressive.  I think Qualcomm is doing a bunch of things right.

AI at CES

The main reason I went to CES this year was to check out all the work on AI / ML / Neural Networks.  I believe that in a couple of years we all will be using these things routinely in our apps.  Some of it will be at-the-edge, some will be on the cloud.  The DDP is an example of this.  The Snapdragon Neural Platform Engine (SNPE) was being demoed by itself elsewhere in the Qualcomm booth and it was very impressive.  Its designed so it can leverage the CPU, the GPU and the DSP on the Snapdragon, very neat and fast. Very interesting times ahead.

Coolest Area – Eureka Park

The first floor of the SandsExpo contains the Eureka Park.  I think this year, CES did a great job with it.  It had areas for different types of startups: early-stage, mid-stage, University-backed,  different non-US locations, Indiegogo, etc.  It was very busy, with some very interesting ideas and some not-so, chaotic and fun.  Quite different to the more organized floors elsewhere at CES.  Here is the map:

IMG_9586.JPG

The area had a bunch of things.  Something that caught my attention was the BioMindR – they leverage wireless signals and machine learning to continuously sensor hydration, glucose and fluid levels without contacts. It reminded me, at a very different level, of the work at MIT that is behind Emerald.

IMG_9600.jpg

There were many other interesting booths.  I particularly enjoyed talking with the Sensel folks but there were many more.  The Beon camera was also fun – I’m not convinced as a wearable in the wrist, but there should be a good fit for it somewhere.

Et Cetera…

I’ll leave you with some more pictures:

Can you figure out how does this work?  Click on the image to see the video clip.  The hint is: the demo was in the Nidec booth, they specialize on motors, bearings, robotic transporters, etc, etc.  Their motors are in theAutel Robotics Drones (very nice, they announced a deal with FLIR on dual thermal/visual cameras), and in many others.

742804DD-E8D6-45F3-AA39-85F0D3DF3A1B.png

And, from the very large and visited Xiaomi Mi booth, to show that they are serious, Mr. Hugo Barra:

IMG_9488.jpg

Xiaomi was testing the waters on them coming to the US.  The prices were amazing.  I would not buy one of their phones but they had plenty of other things I’d consider purchasing, especially this electric foldable bicycle – listed at the booth for $430!

IMG_9486.JPG

Ah, and the LG 4K OLED monitors were excellent.  I’m not a monitor guy but they were very very impressive!

Bluetooth 5.0 is beginning to show up and so is Thread.  Nordic’s nRF52840 is “ready” for both standards.  Its hard for me to predict the traction for Thread, but I expect we will see Bluetooth 5.0 everywhere soon.

Worth The Trip

Totally worth the trip to Las Vegas.  As in previous trips, the best thing are always the conversations with the booth guys.  Special thanks to the people from Qualcomm, Intel, Pikazo, Nordic, Beon, Nidec, Shenzhen Minew, Prosthesis, AppMyHome, Sensel, Orangie, RetailNext, Autel, ChargePoint and many more.

And check the Flickr album if you want to see more picts and additional commentaries.