Software Engineering - Winder.AI Blog

Industrial insight and articles from Winder.AI, focusing on the topic Software Engineering


A Guide To Auth0 Apps on Cloudflare: V8 Runtime Adoption

A Guide To Auth0 Apps on Cloudflare: V8 Runtime Adoption

Wed Jul 12, 2023, by Phil Winder, in Cloud Native, Software Engineering

This guide explores developing Auth0 applications on Cloudflare Pages, focusing on the transition from Node.JS to the V8 runtime and its impact on JavaScript frameworks like Next.JS.

Explain, Enhance and Enrich Your Data with Bacalhau Amplify

Explain, Enhance and Enrich Your Data with Bacalhau Amplify

Mon Jun 19, 2023, by Phil Winder, in Case Study, AI Product Development, Talk, Software Engineering

Bacalhau is a project started under Protocol Labs, but has now spun out into Expanso, Inc. Expanso is a leading Web3 innovator specializing in developing next generation decentralized commodity services. This case study, which includes a video presentation, describes the proceeds of this collaboration. The Bacalhau team asked Winder.AI to help them develop a new AI product designed to perform data engineering at web-scale, backed by Web3 technologies.

Do you like DAGs? Implementing a Graph Executor for Bacalhau

Do you like DAGs? Implementing a Graph Executor for Bacalhau

Tue Jan 24, 2023, by Enrico Rotundo, in MLOps, Software Engineering, Talk, Case Study

Winder.AI helped Protocol Labs, a technology company in the crypto space, to help develop Bacalhau, a novel decentralised computational platform that focuses on the AI lifecycle. This case study describes some of our work to develop this project but for more information view the Bacalhau website.

GitOps for Machine Learning Projects

GitOps for Machine Learning Projects

Fri Mar 11, 2022, by Phil Winder, in MLOps, Software Engineering

Not so long ago, developers used clunky consoles to provision infrastructure and applications. It wasn’t long before someone realized it was better to automate such a process via scripts and APIs. But it wasn’t until Hashicorp showed that APIs were not enough. Their insight was to declare a canonical representation of the infrastructure. You can then reconcile this declaration against the live view of the infrastructure. In 2015-16 we helped WeaveWorks develop their cloud monitoring platform.

Developing a Real-Life Project

Fri Jun 12, 2020, by Phil Winder, in Software Engineering

I’m often asked questions in the vain of “how did you figure that out?”. Other times, and I’m less of a fan of these, I get questions like “you estimated X, why did it take 2*X?”, which I respond with a definition of the word estimate. Both of these types of questions are about the research and development process. Non-developers, and especially non-engineers, are often never exposed to the process of research and development.

Local Jenkins Development Environment on Minikube on OSX

Mon Mar 11, 2019, by Phil Winder, in Software Engineering, Cloud Native

Developing Jenkinsfile pipelines is hard. I think my world record for the number of attempts to get a working Jenkinsfile is around 20. When you have to continually push and run your pipeline on a managed Jenkins instance, the feedback cycle is long. And the primary bottleneck to developer productivity is the length of the feedback cycle.

How to Test Terraform Infrastructure Code

Wed Aug 22, 2018, by Phil Winder, in Software Engineering, Cloud Native

Infrastructure as code has become a paradigm, but infrastructure scripts are often written and run only once. This works for simplistic infrastructure requirements (e.g. k8s deployments). But when there is a requirement for more varied infrastructure or greater resiliency then testing infrastructure code becomes a requirement. This blog post introduces a current project that has found tools and patterns to deal with this problem.

Research-Driven Development: Improve the Software You Love While Staying Productive

Research-Driven Development: Improve the Software You Love While Staying Productive

Mon Oct 16, 2017, in Software Engineering, Talk

Slides Abstract Have you ever wondered which parts of your job you love or hate? Chances are that like most developers you love learning and new problems to solve. You hate monotony and bureaucracy. You’ve probably put strategies in place to mitigate the things you don’t like. An anarchic development process like Agile, to reduce the amount of time in meetings. But have you ever thought about the way in which you approach learning and problem solving?

How to use Javascript Promises to lazily update data

Fri Apr 7, 2017, in Software Engineering

Last week I was working on a simple implementation updating a shopping cart for a site, the frontend was written in html/javascript. The brief - when the quantity of an item in the cart was modified the client could press an update cart button which would update the cart database, after which it was necessary to recalculate the total values of the order and refresh the page with the new totals.

Surprise at CPU Hogging in Golang

Tue Jan 3, 2017, by phil-winder, in Software Engineering

In one of my applications, for various reasons, we now have a batch like process and a HTTP based REST application running inside the same binary. Today I came up against an issue where HTTP latencies were around 10 seconds when the batch process was running.

After some debugging, the reason for this is that although the two are running in separate Go routines, the batch process is not allowing the scheduler to schedule the HTTP request until the batch process has finished.