The Recipe for Overcoming the Burden of Technology Innovation
This week we chatted with Sebastien Goasguen, the senior director of cloud technologies at Bitnami, to see how we developers can overcome today’s challenges. He is the author of the book “Docker Cookbook“ and offers 130 ‘recipes’ for developers, operators, and IT professionals on how to work with Docker. See what he is cooking here with us.
Tell us a little bit about yourself.
I am the Senior Director of Cloud technologies at Bitnami, I joined them when they acquired my startup: Skippbox. I lead all our Kubernetes and containers efforts. Prior to that I worked a lot on Apache CloudStack and spend a long time in academia. Bottom line I like cutting edge technologies and I like developing prototypes, trying out new ideas and trying to push the industry forward.
How did you get started in programming?
Oh wow, that’s a flashback. My father bought a IBM PC AT back in 1984 or so, I was around 10. I keep looking at those big binders wondering what they were. Then I realize they were manuals for BASIC. So I taught myself BASIC by reading the binders, at the beginning just animations, printing things on screen, making them move, balls bouncing etc. Then more involved stuff. It’s all on 5-¼ floppy drives somewhere 🙂
What are some of the languages you use today and why?
Mostly I use Python. My Ph-D was in EE and I wrote Fortran 77 and 90. I never really worked with Java and used to teach Network computing and ethical hacking using Python. I like the rapid prototyping aspect of it. Once you become familiar with the language you can just start a shell and let your brain wonder. It makes it easy to demo things and try new concepts.
What type of applications do you develop?
These days I don’t develop anymore. I am more of an Architect and I act as a product owner in our DevOps teams. If I write anything it is Python, Dockerfiles and Kubernetes manifest.
What’s your biggest passion these days related to programming?
I am in love with the Kubernetes API but that is very much related to my work. If I had more time as a hobbyist I would do things with GNU radio. That’s my background, so I would program emitters/receivers to do various little hacks maybe focusing on the Bluetooth and NFC space.
What still sucks and shouldn’t be in programming?
Besides that I think we should be able to program just by telling a machine what to do…well dependency management is a real pain. It seems that everybody is switching to Golang these days but dependency management is difficult, programming while off-line might be tough if you try to update things. It always feels like you are downloading way too many dependencies that you do not control. I think we are encouraging bad practice these days, by depending on an ever-growing list of libraries whose provenance and maintenance is sometimes questionable.
What are some of the most important skills developers can have?
If I am not a developer, I am an Ops person. But these days I would say that young developers need to understand the development workflow using git. Mastering git is a survival skill. Then understanding that what they do might break things for other people, that they are not working in a vacuum and that any change they make may have impacts they don’t expect. So knowing how to set up a minimum CI pipeline, add integration tests and automated releases is key. I would have every young developer first do this in any project they start. And then get in the habit of releasing often, and developing functionality in a very iterative manner. Perfection is impossible, deliver value (functionality) every step of the way, make sure you test your software to avoid breaking functionality.
How did you learn about Typemock and what was your first reaction?
At the DevopsDays Tel-Aviv. My first reaction was that you needed to add support for Golang and Python asap :).
Who or what inspires you in the technical world?
These days I think the Cloud providers are quite fascinating. AWS and Google are just turning up new services all the time. The advances in machine learning are quite amazing and the availability of those services is really empowering. We are getting close to a time, when the SDK or libraries of your code are purely cloud services.
When you need a quick recess at work to regain focus, what do you do?
I go run, I like to run trails, so I try to find a track off the beaten path, sometimes you get a “runner’s high” it is great to reload and get new ideas.
What’s your horror/war story from the coding trenches?
I have to go back 20 years almost. But I used to do a lot of high-performance computing, and to get anything done you would have to wait
hours if not days for your code to get scheduled on the supercomputers. Debugging was horrific because you had to wait so long for a run. It happened to me that I waited three days to get my job scheduled and some stupid typo made the job fail on start.
What’s the best advice you’ve ever received or what advice would you give your younger self?
I would master version control. Then learn Bash in and out, then learn a scripting language (e.g Python) before diving into a more strongly typed language.
Then one advice that has stuck with me has been: for a complex problem use a simple solution (technique), for a simple problem try to come up with a complex technique. Meaning developing a complex technique/algorithm while working on a complex problem/setup just makes it hard 🙂