Once you're past the R&D phase, you have working deep neural nets, and you need to run them somewhere. If you want to avoid headaches with dependencies, you probably chose to make docker images out of your neural nets, with Tensorflow or equivalent + your code + your neural net weights. Problem is, if you … Continue reading Docker Registry Distribution in a Deep Learning Pipeline
Let's face it: nowadays big cloud providers have freed many companies from hardware. With cloud instances and object storage, CTOs don't have to worry anymore about hardware failures and redundancies. But the likes of Amazon, Azure etc did not stop there. Most providers also provide plenty of extra services (container orchestration, hosted database, "serverless" features … Continue reading Tech Independence: the Case for Excellence
Given a set of specs (specifications), an engineer usually tries to come up with the optimal architecture for those specs. As we all know, specs tend to change. The true understanding of a problem usually comes after you've started working on it. Like Mike Tyson used to say, everyone has a plan, until they get … Continue reading Good vs Bad Legacy Code
Over the years, I've used Jenkins, Concourse and a few other CI software. Recently, when the multistage dockerfile feature was released, it dawned on me that I used CI software for mainly 3 things: watching github repos, having a web UI to monitor builds, and be able to define pipelines. The last one is the … Continue reading Multistage Dockerfiles: do we still need CI Software?
It is generally considered a best practice to use dockerized microservices in your architecture, in order to decouple concerns where possible, make testing easier, and avoid ending up with monolithic software. I was doing that until recently, my team and I were making microservices everywhere in our startup, which were basically node/expressJS services that exposed … Continue reading Serverless without New Software
Using a source control system to manage your code is maybe the most important rule in software development, for a simple reason: when everything is versioned, it makes it easier to track contributions from multiple people, and it also makes it easy to roll back to a previous state. Over the past few years, more … Continue reading Infrastructure as Code, Made Simple
When you have multiple internal services in your company, some of which your coworkers need to access, using a SSO mechanism is good practice, so that people don't need to manage multiple passwords. One of the most common SSO mechanism is Oauth, for example if your company uses Google Apps. In our infrastructure in my … Continue reading Protecting your Internal Services with Nginx and Oauth2