Peter Elger talks with Sven Johann about AI as a service - commodity web services offered by large cloud providers, which make it very easy to use AI in your application just by using an API. They start the discussion with the typical AI use cases companies in finance, retail and so on have and which of those are already as a commodity available and which are not. They then discuss how those APIs are used, from very simple API calls like text-to-speech to slightly more complicated ones like chat bots or recommendation engines. They continue with understanding how you come up with AI requirements and how to (regression) test your AI service, which is often different than doing the same with non-AI code. They clarify how much AI you need to know to use those services, the cost models of them and how to get your AI to production. The conversation then moves to lower level AI services like AWS SageMaker or Google Tensorflow and how you combine them to create novel pieces of AI relatively quickly. They close the conversation with when to use specific packaged AI solutions and when to create your own AI to push the envelope.
In this episode of the CaSE podcast, Lucas talks to Lars Hupel of Typelevel-fame about algebraic design. Lars starts to explain how the expression problem views the difference between the functional and Object Oriented style of programming. He then explains the concept of an algebra – from coupling trains to CRDTs. This leads to a discussion on comprehensive and iterative thinking styles and how different styles of testing and proving work. Finally, they bring it all back to type systems.
In this Conversation about Software Engineering, Stefan Tilkov talks with Ryan Singer about Shape Up. Ryan works on the product strategy for Basecamp. Over time the company started growing, and they needed to step up how they managed their product development work. In his book Shape Up and this podcast, Ryan shares the methodology Basecamp uses nowadays.
In this episode, Stefan Tilkov talks with Felienne Hermans, associate Professor at Leiden University in the Netherlands heading the Programming Education Research Lab. They talk about programming education with a focus on people learning their first programming skills and how the current approach in schools and university is flawed. Felienne explains the concept of deliberate practice and code vocalization and answers simple questions like "What's the best programming language for education?"
In this episode, Sven Johann hosts Philippe Kruchten, the author of the Managing Technical Debt book. They talk about the research leading to the book and the practical implications the book and the research offer. They start the conversation with discussing terms: technical debt, interest, principal and then start with technical debt on the code level, e.g. code smells, tests and refactoring followed by static analysis and the prioritization of the findings. They then move to technical debt on the architectural level and go through the possibilities on estimating cost and value on those improvement and how to sell it to the business stakeholders. This is followed by explaining technical debt on the infrastructure level and how great code can become technical debt by time passing by (technological gap, software aging). After that the conversation moves towards solving the problem tactically and strategically.
In this episode, Sven Johann hosts Sam Newman, the author of the first Microservices book, to talk about security in the world of Microservices. They discuss why and where it is different to security in a monolithic architecture and why developers must care. They start with automatically rolling out passwords, credentials and API keys in a secure way and continue with patching containers and secure base images. They then continue with automatically update (transitive) dependencies if they have vulnerabilities. They close the conversation with discussing authorisation and authentication using gateways, proxies and service meshes.
In this episode, Stefan Tilkov talks to author and microservices expert Richard Rodger about his approach to microservices, which focuses on small services that exchange messages, are built using a “generalize first” approach, and rely on content-based routing to allow for dynamic evolution of the resulting system.
In this episode, Stefan Tilkov hosts well-known distributed systems expert Steve Vinoski to talk about lessons learned in 30+ years of software engineering. In their conversation, they cover topics such as what to learn and what to avoid, how to deal with zealous and disillusioned developers, the relation of engineering to other disciplines, ethics and patents, careers and coding, publishing and presenting and the benefits of doing maintenance.
Steve Vinoski has spent most of his software development career working in the areas of middleware and distributed computing systems, using C++ and Erlang. He is also a long-time author, having written or co-authored over 100 published articles and papers covering middleware, distributed systems, and web development, as well as a couple books and dozens of columns. Steve has also given hundreds of conference and workshop presentations and tutorials on middleware, distributed systems, web development, and programming languages, and has served as chair or program committee member for many dozens of conferences and workshops.
In this conversation about software engineering, Gustaf Nilsson Kotte, web architect at IKEA, talks to host Stefan Tilkov about ways to build large web sites and applications with multiple teams. Topics covered include team organization and Conway’s law, horizontal vs. vertical splits, and options and tools for server-side and client-side integration.