Software Engineering Radio - The Podcast for Professional Software Developers

Software Engineering Radio is a podcast targeted at the professional software developer. The goal is to be a lasting educational resource, not a newscast. Every 10 days, a new episode is published that covers all topics software engineering. Episodes are either tutorials on a specific topic, or an interview with a well-known character from the software engineering world. All SE Radio episodes are original content — we do not record conferences or talks given in other venues. Each episode compris...more


  • Episode 392: Stephen Wolfram on Mathematica

    Dec 13 2019

    Stephen Wolfram, creator of Mathematica and Wolfram Alpha discusses the wolfram language, the language behind both projects. Host Adam Gordon Bell spoke with Stephen Wolfram about computing, computational essays, building a language, notebook based computing, and teaching children how to code. Stephen discusses the origin story of Mathematica and why it is so unique and […]

  • Episode 391: Jeremy Howard on Deep Learning and fast.ai

    Dec 05 2019

    Jeremy Howard from fast.ai explains deep learning from concept to implementation. With transfer learning, individuals and small organizations can quickly get to work on machine learning problems using the open source fastai library and desktop graphics hardware. Jeremy and host Nate Black discuss neural network architecture and deep learning models, using pre-trained models from a […]

  • SE-Radio Episode 390: Sam Procter on Security in Software Design

    Nov 26 2019

    Sam Procter a researcher at the Software Engineering Institute of Carnegie Mellon University discusses Security in Software design. Justin Beyer spoke with Procter about Architecture Design Languages, specifically Architecture Analysis and Design Language (AADL) about what it is, how it can be used for security and privacy. Specifically, he discussed AADL, the tooling that is […]

  • Episode 389: Ryan Singer on Basecamp’s Software Development Process

    Nov 19 2019

    Ryan Singer, head of strategy at Basecamp, discusses the “Shape Up” method of software development with host Nate Black. Scrum pushes too many strategic decisions down on development teams, without giving them enough time to do meaningful work. Instead, Basecamp uses an up-front mix of strategy and design called “shaping”. Basecamp sees backlogs as a […]

  • Episode 388: Bob Kepford on Decoupled Content Management Systems

    Nov 12 2019

    Bob Kepford of Mediacurrent discusses Decoupled Content Management Systems. From their inception, content management systems (CMS) have been built in a monolithic fashion. Lately, however, some CMS practitioners have begun migrating to a decoupled approach. As with any change in approach, there are trade-offs to consider, and a decoupled CMS is not a solution for […]

  • Episode 387: Abhinav Asthana on Designing and Testing APIs

    Nov 07 2019

    Abhinav Asthana, a founding partner and CEO of the API development tool Postman, discusses API design and testing, where to start, which types of APIs to offer, what tools you can use, what features to expose, and which is his favorite API to reference. Host Gavin Henry spoke with Asthana about gRPC, GraphQL, RESTful, JSON, API […]

  • Episode 386: Spencer Dixon on Building Low Latency Applications with WebRTC

    Oct 30 2019

    Spencer Dixon of Tuple discusses building a pair programming application using WebRTC. Host Jeremy Jung spoke with Spencer about what WebRTC is; its uses cases; resources for learning; its limitations; capturing video and audio from an OS; choosing a video codec; connecting clients by traversing NATs, challenges of working with WebRTC in a native application […]

  • Episode 385: Evan Gilman and Doug Barth on Zero-Trust Networks

    Oct 22 2019

    Evan Gilman and Doug Barth, authors of Zero-Trust Networks: building secure systems in untrusted networks discuss zero-trust networks.  The discussion covers: the perimeter network architecture; the threat model in modern networks; the meaning of “trust in the network”; why we should not trust our networks (it’s probably already owned); the concept of zero trust in […]

  • Episode 384: Boris Cherny on TypeScript

    Oct 16 2019

    Boris Cherny, author of Programming TypeScript, speaks with Nate Black explaining how TypeScript can scale Javascript projects to larger teams, larger code bases, and across devices. TypeScript is a “gradually typed” language, which allows you to add compile time verification to a JavaScript project bit by bit. TypeScript aims to be practical by catching common […]

  • Episode 383: Neil Madden On Securing Your API

    Oct 10 2019

    Neil Madden, author of the API Security in Action book and Security Director of ForgeRock, discusses the key technical features of securing an API. Host Gavin Henry spoke with Madden about API versus Web App security, choice of authentication tokens, the various security models you can follow, NIST-800-92, ISO27001, STRIDE, CIA Triad, audit log best […]

  • Episode 382: Michael Chan on Learning ReactJS

    Sep 26 2019

    Michael Chan of the React Podcast discusses React, a front end JavaScript framework.  Host Jeremy Jung spoke with Chan about what React is, when to introduce it, and how to learn it without being overwhelmed.  Michael explains how JSX combines JavaScript and HTML-like markup to build components and how it decides how to automatically manipulate […]

  • Episode 381: Josh Long on Spring Boot

    Sep 23 2019

    Josh Long, developer advocate at Pivotal, discusses Spring Boot with host Simon Crossley, and the features that it provides to efficiently develop production ready enterprise web applications. With 18 years of experience the Spring Framework is certainly mature, and Spring Boot is an attempt to package many of the standard patterns of enterprise development to […]

  • Episode 380: Margaret Burnett on Gender, Cognitive Styles and Usability Bugs

    Sep 10 2019

    Margaret Burnett of Oregon State University spoke with SE Radio’s Felienne about GenderMag, a way to assess the inclusivity of software. This episode explores ‘inclusivity bugs’ — issues that might impede software’s usability — discussing the different cognitive styles people can have, and how to make sure that the software we create is usable for […]

  • Episode 379: Claire Le Goues on Automated Program Repair

    Sep 03 2019

    Claire Le Goues, Associate Professor at Carnegie Mellon University discusses her area of research: automated program repair – the ability of programs to fix bugs in other programs.   Host Felienne spoke with Le Goues about how these techniques work. The techniques include: applying ‘sensible’ edits (moving blocks of code, adding null checks automatically) and then […]

  • Episode 378: Joshua Davies on Attacking and Securing PKI

    Aug 28 2019

    Joshua Davies, author of Implementing SSL / TLS Using Cryptography and PKI discussed SSL/TLS, public-key infrastructure, certificate authorities, and vulnerabilities in the security infrastructure.  Robert Blumen spoke with Davies about the history of SSL/TLS; TLS 1.3; symmetric and asymmetric cryptography; the TLS handshake; the Diffie-Helman key exchange; the HTTPS protocol; verification of domain ownership; man-in-the-middle […]

  • Episode 377: Heidi Howard on Distributed Consensus

    Aug 21 2019

    Heidi Howard, a researcher in the field of distributed systems, discusses distributed consensus.  Heidi explains when we need it, when we don’t need and the algorithms we use to achieve it.  Adam Gordon Bell spoke with Heidi about the history of distributed consensus, paxos and variations on it, such as raft and flexible paxos, performance and […]

  • Episode 376: Justin Richer On API Security with OAuth 2

    Aug 13 2019

    Justin Richer, lead author of the OAuth2 In Action book and editor of OAuth extensions RFC 7591, 7592, and 7662, discusses the key technical features of the OAuth 2.0, the industry-standard protocol for authorization and what makes this the best choice for authorizing access to API resources. Host Gavin Henry spoke with Richer about browser […]

  • Episode 375: Gabriel Gonzalez on Configuration

    Aug 07 2019

    Gabriel Gonzalez, the creator of Dhall, the non-repetitive alternative to YAML on why configuration is important and how we can make it better. Adam Gordon Bell spoke Gonzalez about Dhall, yaml, total functional programming and dealing with configuration at scale.  Topics covered include problems dealing with configuration in a large organization, removing duplication from configuration, […]

  • Episode 374: Marcus Blankenship on Motivating Programmers

    Jul 24 2019

    Marcus Blankenship discusses programmer motivation (and de-motivation), which is key to job satisfaction, performance, and turnover.  Travis Kimmel spoke with Blankenship about why engineering motivation matters, the unique motivation needs of engineers, mentoring and coaching for motivation, 1:1s, and self-motivation.   Related Links Marcus Blankenship’s website Habits that Ruin Your Technical team Related SE-Radio Episodes […]

  • Episode 373: Joel Spolsky on Startups: Growth, and Valuation

    Jul 18 2019

    Joel Spolsky (“Joel on Software”), founder and CEO of Stack Overflow, discusses lessons of building successful software companies. Host Nate Black spoke with Joel about the venture funded “land grab” situations vs. “bootstrapping with profitability”. How do venture capitalists think and how can you make fundraising easier? What’s the strategy to keep as much ownership […]

  • Episode 372: Aaron Patterson on the Ruby Runtime

    Jul 12 2019

    Aaron Patterson of GitHub discusses the Ruby language and its runtime.  Host Jeremy Jung spoke with Aaron about the Ruby language and how it works.  They discuss the language virtual machine, concurrency, garbage collection, and JIT compilation.  If you’ve ever wondered what’s happening under the hood of a programming language, this is a great introduction. […]

  • Episode 371: Howard Chu On the Lightning Memory-Mapped Database (LMDB)

    Jun 25 2019

    Howard Chu, CTO of Symas Corp and chief architect of the OpenLDAP project, discusses the key technical features of the Lightning Memory-mapped Database (LMDB) that make it one of the fastest, most efficient, and safest embedded data stores in the world. Host Gavin Henry spoke with Chu about B+tree data structures, multi-version concurrency control, memory-mapped […]

  • Episode 370: Chris Richardson on Microservice Patterns

    Jun 18 2019

    Chris Richardson of microservices.io and author of the book Microservices Patterns discuss microservices patterns which constitute a set of best practices and building-block solutions to problems inherent in building applications out of small coordinated services. Host Robert Blumen spoke with Richardson about the evolution of microservices, community adoption of best practices, patterns for inter-service communication […]

  • Episode 369: Derek Collison on Messaging Systems and NATS

    Jun 11 2019

    Derek Collison of Synadia discusses messaging systems and the open source project NATS. Host Jeremy Jung spoke with Collison about different messaging patterns such as request reply, publish subscribe, and queuing.  They discuss how introducing a messaging system can solve problems like routing, load balancing, and security to simplify ops. They also go into how […]

  • Episode 368: Bryan Helmig on Managing Distributed Teams

    May 31 2019

    Bryan Helmig, CTO and Co-Founder of Zapier, discusses managing distributed software teams. Marcus Blankenship spoke with Helmig about how to create a productive remote culture, collaboration patterns and tools, the challenges of time zones, special challenges that managers face, and the extra importance of clear communication on remote teams.   Related Links Zapier Guest twitter: […]

  • Episode 367: Diomidis Spinellis on Debugging

    May 21 2019

    Felienne talks to Diomidis Spinellis about debugging.  The discussion covers: defining “debugging” which can mean using a debugger or the process of finding and removing bugs; how is it done best; variation across different programming languages or paradigms; debugging different types of applications; tools for debugging: print-statements, version-control systems, operating system tools. Assessing debugging skills […]

  • 366: Test Automation

    May 16 2019

    Arnon Axelrod speaks with SE Radio’s Simon Crossley about test automation, a large complex subject that most listeners will have at least some familiarity with. Axelrod has worked in software engineering and test automation in several high-tech companies, including Microsoft and NCR Corporation, where he established a test automation infrastructure that was used by over […]

  • 365: Thorsten Ball on Building an Interpreter

    May 07 2019

    Thorsten Ball, author of Writing an interpreter in Go as well as its sequel Writing a Compiler in Go. Adam Gordon Bell spoke with Ball about building an interpreter. Topics covered include the differences between an interpreter and a compiler, what languages are most commonly used for writing interpreters, the advantages and disadvantages of go, […]

  • 364: Peter Zaitsev on Choosing the Right Open Source Database

    Apr 30 2019

    Peter Zaitsev of Percona discusses with host Nate Black how to choose the right open source database and why you may need multiple databases. Topics include: vendor lock-in and the role of cloud database services, the value of experience, judging what use cases databases are bad at, why there is no free lunch when it […]

  • 363: Jonathan Boccara on Understanding Legacy Code

    Apr 16 2019

    Jonathan Boccara, author of The Legacy Code Programmer’s Toolbox discusses understanding and working with legacy code. Working with legacy code is a key skill of professional software development that is often neglected. Host Adam Gordon Bell spoke with Boccara about reading legacy code, developing the right attitude for approaching legacy code and several techniques for […]

  • SE-Radio Episode 362: Simon Riggs on Advanced Features of PostgreSQL

    Apr 10 2019

    Simon Riggs, founder and CTO of 2nd Quadrant, discusses the advanced features of the Postgres database, that allow developers to focus on applications whilst the database does the heavy lifting of handling large and diverse quantities of data. Host Simon Crossley spoke with Riggs about advanced SQL, indexes, extensibility and scale; using window functions to […]

  • SE-Radio Episode 361: Daniel Berg on Istio Service Mesh

    Mar 27 2019

    Daniel Berg, who is a distinguished Engineer at IBM cloud unit, talks about Istio service mesh and how it lets developers deploy services into the cloud in a secure, efficient fashion by removing the burden of devops from the core service logic. Host Nishant Suneja begins the show with discussion about the need for a […]

  • SE-Radio Episode 360: Pete Koomen on A/B Testing

    Mar 13 2019

    Pete Koomen, Co-founder and CTO at Optimizely discusses A/B testing. Edaena Salinas spoke with Pete about how A/B testing is used in software products, and how A/B tests can be written. Pete explained the components of A/B testing and lessons learned from running over 200,000 A/B tests. Related Links A/B testing (Wikipedia) A/B Testing: The […]

  • SE-Radio Episode 359: Engineering Maturity with Jean-Denis Greze

    Mar 07 2019

    Jean-Denis Greze of Plaid discusses Engineering Maturity and its importance in maintaining velocity while growing an engineering team grows.  Where engineering managers have not experienced rapid growth, related problems can grow out of hand. Host Nate Black spoke with Jean-Denis about his framework for understanding a team’s current maturity level; how to create a roadmap […]

  • SE-Radio Episode 358: Probabilistic Data Structure for Big Data Problems

    Feb 27 2019

    Andrii Gakhov, author of the book Probabilistic Data Structures and Algorithms for Big Data Applications talks about probabilistic data structures and their application to the big data domain. Host Robert Blumen spoke with Dr. Gakhov about how probabilistic data structures differ from their exact counterparts; hash functions – cryptographic and non-cryptographic; space versus accuracy tradeoffs; […]

  • SE-Radio Episode 357: Adam Barr on Code Quality

    Feb 20 2019

    Adam Barr, author of Why Smart Engineers Write Bad Code talks about code quality.  Felienne spoke with Barr about how developers learn to program on their own while they are in high-school; how that influences their thinking about code quality; what code quality is, how is can (or cannot) be measured and whether some programming […]

  • SE-Radio Episode 356: Tim Coulter on Smart Contracts

    Feb 14 2019

    Tim Coulter, the founder of Truffle (Ethereum DApp development framework) discusses the Truffle framework for Ethereum SmartContracts and Decentralized App development. Kishore Bhatia spoke with Tim Coulter about Ethereum Decentralized Apps (DApps) and Truffle as a DApp development, deployment and testing framework. The interview also covers Tim’s journey creating the Truffle framework with a deep-dive […]

  • SE-Radio Episode 355: Randy Shoup Scaling Technology and Organization

    Feb 08 2019

    WeWork’s VPE, Randy Shoup, discusses how to scale technology and organization together. Host Travis Kimmel spoke with Randy (formerly VPE at Stitch Fix and CTO at KIXEYE) about the culture, process, and technology changes necessary to scale an organization without experiencing attrition. They discuss how rapidly growing companies can leverage best practices from DevOps, how […]

  • SE-Radio Episode 354: Avi Kivity on ScyllaDB

    Feb 01 2019

    Avi Kivity of Scylladb deep dives into the internals of Scylladb and what makes it a high performant version of Cassandra, a distributed key-value datastore. Host Nishant Suneja spoke with Avi about how Scylla’s shared nothing architecture helps it in “scaling up” on every single node in the cluster. The discussion further goes into Scylla’s […]

  • SE-Radio Episode 353: Max Neunhoffer on Multi-model databases and ArangoDB

    Jan 25 2019

    Max Neunhoffer of ArangoDB discusses about multi-model databases in general, and open source ArangoDB, in specific, with show host Nishant Suneja. The discussion starts with comparing multi-model databases with polyglot persistence style modeling, and what are the advantages of one over the other. The discussion further delves into exploring the internals of ArangoDB, a multi […]

  • SE-Radio Episode 352: Johnathan Nightingale on Scaling Engineering Management

    Jan 16 2019

    Johnathan Nightingale talks with SE Radio host Travis Kimmel about scaling engineering management. Their conversation covers: how and when to hire engineering managers; how to onboard, train and plan for their growth; compensations reviews and promotions; advice for new managers, and what to expect at different management levels. Related links Johnathan and Melissa Nightingale’s and […]

  • Episode 351 – Bernd Rücker on Orchestrating Microservices with Workflow Management

    Jan 10 2019

    Bernd Rücker, who has contributed to multiple open source workflow management projects, discusses orchestrating microservices with workflow management.  As distributed systems evolve into a family of microservices that must handle long-running stateful processes with time-dependent actions, events, multiple paths through the system, and complex rollbacks, the workflow management model provides a way to ensure clear […]

  • SE-Radio Episode 350: Vivek Ravisankar on HackerRank

    Dec 19 2018

    Vivek Ravisankar, the CEO and founder of HackerRank discusses automated coding skills assessments and the HackerRank platform. SE Radio host Kishore Bhatia spoke with him about: HackerRank as a platform for learning, practicing and assessing coding skills; how this platform is helping in skills assessments and coding interviews – both for developers and employers. The […]

  • SE-Radio Episode 349: Gary Rennie on Phoenix

    Dec 12 2018

    Gary Rennie, a core contributor to Phoenix and Plug, discusses the Phoenix, a web framework for the Elixir programming language. Host Nate Black talks with Gary about why companies use Phoenix and what they use it for, how to write a Phoenix application, how the subsystems of Phoenix work together, and how to troubleshoot performance […]

  • SE-Radio Episode 348: Riccardo Terrell on Concurrency

    Dec 05 2018

    Riccardo Terrell, author of Concurrency in .NET: Modern Patterns of Concurrent and Parallel Programming, discusses concurrency, an important topic in the era of multicores in any machine. SE Radio host Felienne spoke with Terrell about concurrency, parallelism, and immutability. They discussed the impact of programming languages and paradigms on concurrent programming and explored common issues […]

  • SE-Radio Episode 347: Daniel Corbett on Load Balancing and HAProxy

    Nov 28 2018

    Daniel Corbett of HAProxy discusses how load balancers such as HAProxy are used to improve application scalability, reliability, and security. Host Jeremy Jung spoke with Corbett to explain the concept of load and how a load balancer can distribute it across application servers; the open systems interconnection (OSI) model and how it relates to load […]

  • SE-Radio Episode 346: Stephan Ewen on Streaming Architecture

    Nov 14 2018

    Stephen Ewen, one of the original creator of Apache Flink discusses streaming architecture. Streaming architecture has become more important because it enables real-time computation on big data. Edaena Salinas spoke with Stephen Ewen about the comparison between batch processing and stream processing. Stephen explained the architecture components and the types of applications that can be […]

  • SE-Radio Episode 345: Tyler McMullen on Content Delivery Networks (CDNs)

    Nov 07 2018

    Tyler McMullen of Fastly discusses using Content Delivery Networks to improve application speed, reliability, and security. Host Jeremy Jung speaks with McMullen about what CDNs are and how developers can take advantage of them. They discuss how a CDN consists of thousands of edge servers in datacenters around the world; how these servers cache and […]

  • SE-Radio Episode 344: Pat Helland on Web Scale

    Oct 31 2018

    Pat Helland talks about building systems at web scale that are prepared to handle failure. Pat has been working on databases, transactions and distributed systems since 1978.  Host Edaena Salinas spoke with Helland about the components of a system including physical hardware and data centers; the role of humans in a production system;  automation by […]

  • SE-Radio Episode 343: John Crain on Ethereum and Smart Contracts

    Oct 26 2018

    John Crain, founder of Pixura, discusses some applications of the blockchain technology: Ethereum, smart contracts, solidity, and their application to rare collectible assets. Kishore Bhatia spoke with Crain about: a perspective on how blockchain, distributed computing and cryptographic proof of work have evolved towards a decentralized computing and execution model with Ethereum, drivers for this […]

  • Episode 342 – István Lam on Privacy by Design with GDPR

    Oct 18 2018

    István Lam of Tresorit talks with host Kim Carter about GDPR (the EU General Data Protection Regulation, which has been described as “the most important change in data privacy regulation in 20 years”). The discussion covers terminology, planning, implementation, users’ access and their rights regarding their personal data, managing personally identifiable information (PII) across organizations, […]

  • SE Radio Episode 341: Michael Hausenblas on Container Networking

    Oct 10 2018

    Michael Hausenblas talks with host Kim Carter about topics covered in Michael’s ebook Container Networking, such as single vs. multi-host container networking, orchestration, Kubernetes, service discovery, and many more. Michael and Kim also discuss the roles that IPTables plays, how the allocation of IP addresses is handled, along with the assignment of ports. Overlay networks […]

  • SE-Radio Episode 340: Lara Hogan and Deepa Subramaniam on Revitalizing a Cross-Functional Product Organization

    Oct 03 2018

    Travis Kimmel talks with Lara Hogan and Deepa Subramaniam about evidence-based tactics that leaders can use to increase clarity and build healthier, high-performing organizations. Their conversation covers: diagnosing and treating problems that are slowing product, design, and engineering teams; “organization smells”; clarifying roles and responsibilities; improving documentation; facilitating better meetings; improving inter and intra-team dynamics. […]

  • SE-Radio Episode 339: Jafar Soltani on Continuous Delivery for Multiplayer Games

    Sep 26 2018

    Jafar Soltani of Rare (Microsoft Studios) discusses Continuous Delivery in mobile games and how it can increase quality, reduce crunch, and deliver games faster. Host Nate Black speaks with guest Jafar Soltani about the unique challenges of AAA games and why these challenges have prevented game companies from implementing continuous delivery. Topics include: the architectural […]

  • SE-Radio Episode 338: Brent Laster on the Jenkins 2 Build Server

    Sep 19 2018

    Brent Laster, author of Jenkins 2: Up and Running talks about build pipelines, on Jenkins 2 a build server that can be used to implement continuous integration and deployment and is more devops-friendly that Jenkins 1. Host Robert Blumen talks to Brent about continuous integration and continuous delivery (CI/CD), the role of the build server […]

  • SE-Radio Episode 337: Ben Sigelman on Distributed Tracing

    Sep 11 2018

    Ben Sigelman CEO of LightStep and co-author of the OpenTracing standard discusses distributed tracing, a form of event-driven observability useful in debugging distributed systems, understanding latency outlyers, and delivering “white box” analytics.  Host Robert Blumen spoke with Sigelman about the basics of tracing, why it is harder in a distributed system, the concept of tracing […]

  • SE-Radio 336: Saša Jurić on Elixir

    Aug 28 2018

    Saša Jurić, author of Elixir in Action, talks about the Elixir programming language, language gaining in popularity. Topics include: Host Nate Black talks with Juric about: Elixir’s relationship to the Erlang virtual machine (BEAM); the advantages of the Erlang ecosystem; the “sweet spot” for Elixir programs; why a new language was needed for the Erlang […]

  • SE-Radio Episode 335: Maria Gorlatova on Edge Computing

    Aug 21 2018

    Edaena Salinas talks with Maria Gorlatova about Edge Computing. Topics include: the internet of things, edge computing, edge computing experiments and applications, the architecture of edge computing. Maria explained the process of data collection and the type of data that is collected in IoT systems. The discussion continued with a walkthrough example for running a […]

  • SE-Radio Episode 334: David Calavera on Zero-downtime Migrations and Rollbacks with Kubernetes

    Aug 14 2018

    Jeremy Jung talks with David Calavera about zero-downtime migrations and rollbacks with Kubernetes. In this episode we define migrations, rollbacks, and discuss how Netlify was able to migrate to Kubernetes and roll back off of it multiple times without impacting their users. David explains how developers can run old and new systems simultaneously, the importance […]

  • SE-Radio Episode 333: Marian Petre and André van der Hoek on Software Design

    Aug 07 2018

    Felienne interviews Marian Petre & André van der Hoek on their book Software Design Decoded: 66 Ways Experts Think. We talk about the software design process, which Petre & van der Hoek en discuss about in their book too. While there are a lot of books about software design, their books address designers rather than […]

  • SE-Radio Episode 332: John Doran on Fixing a Broken Development Process

    Jul 31 2018

    Jeremy Jung talks with John Doran about fixing a broken development process.  In this episode we discuss how a project that started as a desktop application transitioned to becoming a SAAS business that serves thousands of businesses.  John tells the story of a business that found commercial success but struggled with outages, a lack of […]

  • SE-Radio Episode 331: Kevin Goldsmith on Architecture and Organizational Design

    Jul 24 2018

    Travis Kimmel talks with Kevin Goldsmith about the correspondence between organizational design and software architecture. Their conversation covers: what Conway’s Law is; Kevin’s experiences in different organizational structures (e.g., Avvo, Spotify, Adobe, and Microsoft) and how those structures influenced the software architecture; what the “Reverse Conway Maneuver” is and how organizations can leverage it; how […]

  • SE-Radio Episode 330: Natalie Silvanovich on Attack Surface Reduction

    Jul 17 2018

    Natalie Silvanovich from Google Project Zero talks with Kim Carter about what attack surface is in regards to software, how to identify risks and reduce the attack surface of the software you as a Software Engineer are creating. Natalie found over 100 0 day security defects in flash in her first year at Google, and […]

  • SE-Radio Episode 329: Andreas Stefik on Accessibility for the Visually Impaired

    Jun 26 2018

    Andreas Stefik talks with SE Radio’s Felienne about how blind and visually impaired people use the computer, most commonly with a screen reader. They discuss how screen readers work and what programmers can do to make software more accessible for this group of users. The episode starts with the basics, like adding alt tags, giving […]

  • SE-Radio Episode 328: Bruce Momjian on the Postgres Query Planner

    Jun 19 2018

    Bruce Momjian, a longtime Postgres developer, educator and consultant joins Robert Blumen for a discussion of the SQL query planner in the Postgres relational database. Topics covered include what is a query? How queries are evaluated by the server; the phases of query evaluation; SQL as a declarative language; why declarative query evaluation is simpler […]

  • SE-Radio Episode 327: Glynn Bird on Developer Productivity with Open Source

    Jun 12 2018

    Nate Black interviews Glynn Bird on how to maximize productivity and learning by consuming and producing open source software. Topics discussed include: the impact of open source software on the development process, why open source contributions are important for your career development and getting a job, how GitHub is the new resume or CV, how […]

  • SE-Radio Episode 326: Dmitry Jemerov and Svetlana Isakova on the Kotlin Programming Language

    Jun 05 2018

    Dmitry Jemerov and Svetlana Isakova speak to Matthew Farwell about the Kotlin programming language. They cover what the goals of Kotlin are, why Kotlin was created, what the target use cases are for Kotlin, syntax differences between Java & Kotlin, differences in classes and interfaces between Java & Kotlin, pattern matching in Kotlin, Kotlin’s type […]

  • SE-Radio-Episode-325: Tammy Butow on Chaos Engineering

    May 29 2018

    Edaena Salinas talks with Tammy Butow about Chaos Engineering. Topics include: the factors that caused Chaos Engineering to emerge, the different types of chaos that can be introduced to a system, how to structure experiments. Some of the chaos engineering experiments that were discussed are: DNS related attacks, black hole attacks and database attacks. Tammy […]

  • SE-Radio Episode 324: Marc Hoffmann on Code Test Coverage Analysis and Tools

    May 22 2018

    Diomidis Spinellis talks with Marc Hoffmann on code test coverage and the tools that can analyze it. Knowing the percentage of code that is covered by tests, can help developers assess the quality of their test cases and help them add missing tests and thereby find and remove software faults. Marc is a key developer […]

  • SE-Radio Episode 323: Lin Clark on WebAssembly

    May 08 2018

    Lin Clark speaks to Matthew Farwell about WebAssembly. The show covers: what WebAssembly is; what are the goals and use cases for WebAssembly; why you want to use it; how to interact with the browser, how it changes your development process; security, the future of web assembly.   Related Links WebAssembly WebAssembly Demo Reading more […]

  • SE-Radio Episode 322: Bill Venners on Property Based Tests

    May 01 2018

    Bill Venners speaks to Matthew Farwell about Property Based Tests. The show covers: what a property based test is, how it differs from example based testing; why you would want to use them; use cases for property based tests; when you shouldn’t use property based tests; how property based testing impacts a team’s development process; […]

  • SE-Radio Episode 321: Péter Budai on End to End Encryption

    Apr 10 2018

    Head of Cryptography Engineering at Tresorit, Péter Budai talks with Kim Carter about End to End Encryption (E2EE), backdoors, the scenarios where E2EE can be and should be used. IM, Voice over IP, Email scenarios, as well as interservice communication scenarios such as securing data in use with full memory encryption, CPU-based key storage, enclaves, […]

  • SE-Radio Episode 320: Nate Taggart on Serverless Paradigm

    Mar 27 2018

    Kishore Bhatia discusses with Nate Taggart about Serverless. Topics include: understanding the motivations for this computing model, deep dive learning about Serverless architecture, development frameworks and tools. Learn from Nate’s experience with Serverless paradigm developing Operations tools at Stackery and find out various approaches, challenges and best practices for architecting and building Serverless applications. Related […]

  • SE-Radio Episode 319: Nicole Hubbard on Migrating from VMs to Kubernetes

    Mar 13 2018

    Edaena Salinas talks with Nicole Hubbard about migrating a VM infrastructure to Kubernetes. The discussion begins with an overview of the VM infrastructure at WP Engine. Next, they discussed the characteristics that indicated it was time to consider migrating to a container based infrastructure using Kubernetes. Containers are different than VMs. There are pros and […]

  • SE Radio Episode 318: Veronika Cheplygina on Image Recognition

    Feb 20 2018

    Felienne interviews Veronika Cheplygina about image recognition. The discussion covers: what exactly constitutes image recognition, including categorizing and segmentation problems; fields where image recognition are currently being applied, including medicine, self-driving cars and security, and future applications. The host and guest also cover how to obtain enough and good datasets, and some of the common […]

  • SE-Radio Episode 317: Travis Kimmel on Measuring Software Engineering Productivity

    Feb 06 2018

    Kishore Bhatia talks with Travis Kimmel on software engineering measuring, communicating and improving engineering productivity, and challenging the widespread belief that engineering is an art. Their conversation covers: measuring engineering impact; key performance indicators (KPIs); development metrics; challenges in building a delivery pipeline with metrics; implementing feedback loops; the key metrics that most engineering teams […]

  • SE-Radio Episode 316: Nicolai Parlog on Java 9

    Jan 30 2018

    Nate Black talks with Nicolai Parlog about Java 9. Topics include: a timeline of Java features; new patterns enabled by Java 8 lambdas, default interface implementations and how they enable code evolution; how Java 9 takes this further with private default methods; an introduction to Java modules: the Java Platform Module System (JPMS); “launch time” […]

  • SE-Radio Episode 315: Jeroen Janssens on Tools for Data Science

    Jan 23 2018

    Felienne interviews Jeroen Janssens on Data Science. They examine what data science is exactly, particularly exploring how it differs from machine learning and statistics. The episode further considers what skills people need to be great data scientists – skills that are related but not always equal to the skills that programming and software engineering require. […]

  • SE-Radio Episode 314: Scott Piper on Cloud Security

    Jan 16 2018

    Founder of Summit Route / creator of FLAWS, Scott Piper talks with Kim Carter about Cloud Security. Covering the often misunderstood Shared Responsibility Model. Kim and Scott discuss how our assets have changed, and what the risks and countermeasures are with the exodus to the Cloud. A selection of techniques are discussed on how we […]

  • SE-Radio Episode 313: Conor Delanbanque on Hiring and Retaining DevOps

    Dec 19 2017

    Kishore Bhatia talks with Conor Delanbanque about DevOps Hiring, building and retaining top talent in the DevOps space. Topics include DevOps as a special Engineering skill, building DevOps mindset and culture, challenges in hiring and retaining top talent and building teams and best practices for DevOps engineers and employers hiring for these skills. Related Links […]

  • SE-Radio Episode 312: Sachin Gadre on the Internet of Things

    Dec 12 2017

    Edaena Salinas talks with Sachin Gadre about the internet of things (IoT). What is IoT? What is the architecture of an IoT application? Sachin walks through a series of example to show how IoT applications are used and how they are built. Topics include: internet of things, data sources, and security.   Related Links The […]

  • SE-Radio Episode 311: Armon Dadgar on Secrets Management

    Dec 05 2017

    Armon Dadgar speaks to Matthew Farwell about Secrets Management. The show covers: what a secret is; the difference between secrets and sensitive data; what is secrets management; the different types of secrets; key management; auditing of secrets; implementing secrets management.   Related Links Vault Project Kerwhiz Armon Dadgar HashiCorp SE-Radio Episode 290: Diogo Mónica on […]

  • SE-Radio Episode 310: Kirk Pepperdine on Performance Optimization

    Nov 28 2017

    Kirk Pepperdine talks with IEEE Software editor in chief Diomidis Spinellis about performance optimization. Topics include development practices, tools, as well as the role of software architecture, programming languages, algorithms, and hardware advances. Topics include: how a performance diagnostic model containing the system’s components can help us understand what each component is responsible for and […]

  • SE-Radio Episode 309: Zane Lackey on Application Security

    Nov 14 2017

    Founder of Signal Sciences Zane Lackey talks with Kim Carter about Application Security around what our top threats are today, culture, threat modelling, and visibility, and how we can improve our security stature as Software Engineers.   Related Links Web Application Security: Threats, Countermeasures, and Pitfalls Network Security with Haroon Meer Docker Security with Diogo […]

  • SE-Radio Episode 308: Gregor Hohpe on It Architecture and IT Transformation

    Nov 08 2017

    Bryan Reinero talks with Gregor Hohpe  about IT Transformation, the process by which organizations adapt and reorganize themselves in response to the way our industry has evolved. Gregor discusses the role of the Enterprise Architect as a leader in the process of  IT Transformation by assessing pressures affecting engineering teams, available technologies, and  business goals […]

  • SE-Radio Episode 307: Harsh Sinha on Product Management

    Oct 31 2017

    Bryan Reinero talks with Harsh Sinha, VP of  Engineering at TransferWise, about Product Management.  Product Management deals with the planning, delivery and marketing of a software product. The discussion covers how those functions are achieved, and how product management interfaces with engineering; how product requirements are derived from customer needs; how teams build product based […]

  • SE-Radio Episode 306: Ron Lichty on Managing Programmers

    Oct 17 2017

    Ron Lichty talks with SE-Radio’s Nate Black about managing programmers. Topics include: why programming management is hard, what makes a good programming manager, the costs of micromanagement, self-organizing teams, team dynamics and motivation, and product team performance.   Related links Ron Lichty’s blog Ron Lichty Consulting Managing the Unmanageable “If we’re Agile, why do we […]

  • SE-Radio Episode 305: Charlie Berger on Predictive Applications

    Oct 10 2017

    Charlie Berger talks with SE Radio’s Edaena Salinas about predictive applications. What are predictive applications? How are they built? What’s the role of machine learning in predictive applications? The interview explores implementing machine learning algorithms natively in the database, different machine learning algorithms, and how they’re applied. Topics include: machine learning, databases, data architecture, predictive […]

  • SE-Radio Episode 304: Evgeny Shadchnev on Code Schools

    Sep 26 2017

    Evgeny Shadchnev talks with Felienne about code schools, programs that prepare people to become software developers in a few months. This episode explores the idea of code schools. Can we really teach programming in a few months rather than years in university? Who teaches in those programs? Who attends them? What are their business models, and […]

  • SE-Radio Episode 303: Zachary Burt on Freelancing as a Career Option

    Sep 19 2017

    Zachary Burt discusses freelancing as a career option with SE Radio’s Felienne. How does freelancing differ from employment? How should we handle personal marketing and sales? How do you find a work-life balance when you’re self-employed? The interview also covers practical tips such as deciding on an hourly rate and managing demanding customers. Related Links […]

  • SE-Radio Episode 302: Haroon Meer on Network Security

    Sep 12 2017

    Founder of Thinkst, Haroon Meer talks with Kim Carter about network security. Topics include how attackers are gaining footholds into our networks, moving laterally, infilling malware and exfilling our precious data; why we care; and clear advice on what we software engineers can do about it. Areas of information security are merging, network security is […]

  • SE-Radio Episode 301: Jason Hand on Handling Outages

    Aug 29 2017

    Bryan Reinero talks with Jason Hand about handling outages and responding to failures. The episode explores basic problem-solving strategies and diagnostic techniques, organizing teams to address incidents efficiently, communicating with stakeholders, learning from incidents, and managing stress.   Related Links Episode 284 – John Allspaw on System Failures: Preventing, Responding, and Learning From Episode 225 […]

  • SE-Radio Episode 300: Jonathan Stark on Mobile App Development

    Aug 15 2017

    Nate Black interviews Jonathan Stark on Mobile App development. Topics include: platforms for mobile development, making decisions about how to develop mobile apps, how to deploy mobile apps, native apps vs. progressive web apps, React Native, and the future of mobile applications. Jonathan shares his expert knowledge about the evolution of the mobile ecosystem and […]

  • SE-Radio Episode 299: Edson Tirelli on Rules Engines

    Aug 08 2017

    Robert Blumen talks to JBoss Drools project lead Edson Tirelli about Rules Engines. The show covers: the nature of business rules; rules and facts; rules and actions; the importance or rules to a business; the structure of a business rule; how many is “a lot” of rules?; communication about rules between the business and software […]

  • SE-Radio Episode 298: Moshe Vardi on P versus NP

    Jul 25 2017

    Felienne talks with Moshe Vardi about P versus NP. Why is this problem so central to computer science? Are we close to solving it?  Is it necessary to solve it? Progress toward computing hard problems efficiently with SAT solvers.  How SAT solvers work,; applications of SAT like formal verification.   Related Links TU Eindhoven P […]

  • SE-Radio Episode 297: Kieren James-Lubin on Blockchain

    Jul 18 2017

    Kishore Bhatia talks with Kieren James-Lubin about Blockchains. Topics include Blockchains, Cryptocurrency, Bitcoin, Distributed Ledger, Decentralized Apps, Ethereum, Smart Contract development with Solidity, ICO’s and Tokens.   Related Links   IEEE search for blockchains Blockchain TED Talk Ethereum Solidity Smart Contracts Truffle for testing Smart Contracts Guest Twitter: https://twitter.com/kjameslubin Guest Email: kieren@blockapps.net

  • SE-Radio Episode 296: Type Driven Development with Edwin Brady

    Jul 11 2017

    Edwin Brady speaks to Matthew Farwell about Type Driven Development and the Idris Programming language. The show covers: what a type is; static vs dynamic types in programming languages; dependent types; the Idris programming language; why Idris was created. Type safe printf modelling state in Idris modelling protocols in Idris modelling concurrency in Idris type driven development and how it changes the development process. Related […]

  • SE-Radio Episode 295: Michael Feathers on Legacy Code

    Jun 27 2017

    Felienne talks with Michael Feathers about Legacy Code. When is something legacy? Is working on legacy different from working on greenfield code? Do developers need different skills and techniques? Testing legacy code. How to test a legacy system? When do we have enough tests to feel safe to start coding? Techniques to make legacy systems […]

  • SE-Radio Episode 294: Asaf Yigal on Machine Learning in Log Analysis

    Jun 20 2017

    Asaf Yigal talks with SE Radio’s Edaena Salinas about machine learning in log analysis. The discussion starts with an overview of the structure of logs and what information they can contain. Asaf discusses what the log analysis process looks like without machine learning — and the role of humans in this – before moving on […]

  • SE-Radio Episode 293: Yakov Fain on Angular

    Jun 06 2017

    Yakov Fain talks with SE Radio’s Matthew Farwell about the Angular web development framework. The show covers the philosophy behind Angular; who would want to use the platform; how an Angular application is composed, including how to handle form submission and validation; why Typescript was chosen for Angular; how Angular uses reactive programming (RxJS, in […]

  • SE-Radio Episode 292: Philipp Krenn on Elasticsearch

    May 30 2017

    Phillipp Krenn talks with SE Radio’s Jeff Meyerson about Elasticsearch, a scalable search index. The conversation begins with a discussion of search, how it compares to database queries, and what an inverted index is. Phillipp introduces Wikipedia as an example that runs throughout the episode because Wikipedia uses Elasticsearch to power its full-text search. A […]

  • SE-Radio Episode 291: Morgan Wilde on LLVM

    May 16 2017

    Morgan Wilde talks with SE Radio’s Jeff Meyerson about the LLVM compiler toolchain. They begin with a discussion of how a compiler works and how compiled code executes against different processor architectures. Using the JVM as a model for interoperability, they move on to how LLVM is a system that optimizes an intermediate representation (IR), […]

  • SE-Radio Episode 290: Diogo Mónica on Docker Security

    May 09 2017

    Docker Security Team lead Diogo Mónica talks with SE Radio’s Kim Carter about Docker Security aspects. Simple Application Security, which hasn’t changed much over the past 15 years, is still considered the most effective way to improve security around Docker containers and infrastructure. The discussion explores characteristics such as Immutability, the copy-on-write filesystem, as well […]

  • SE-Radio Episode 289: James Turnbull on Declarative Programming with Terraform

    Apr 25 2017

    James Turnbull rejoins the show with Robert Blumen for a conversation mostly about Terraform, as well as a bit about Puppet. Terraform is a declarative programming tool for automating infrastructure resource creation; it targets resource providers, such as Amazon AWS, Microsoft Azure, Digital Ocean, and other cloud and SAAS back ends. The discussion explores the […]

  • SE-Radio Episode 288: Francois Raynaud on DevSecOps

    Apr 18 2017

    Francois Raynaud and Kim Carter discuss what’s wrong with the traditional delivery approach and why we need to change. They explore the dangers of retrofitting security to the end of projects, how to combine development, operations, and security people into the same development teams and why, along with cost-benefit analysis. Francois and Kim discuss the […]

  • SE-Radio Episode 287: Success Skills for Architects with Neil Ford

    Apr 11 2017

    Neal Ford of ThoughtWorks chats with SE Radio’s Kim Carter about the skills required to be a successful software architect, how to create and maintain them, and how to transition from other roles, such as software engineering. Neal discusses that the required skills can be learned, you do not have to be born with special […]

  • SE-Radio Episode 286: Katie Malone Intro to Machine Learning

    Mar 28 2017

    Edaena Salinas talks with Katie Malone about Machine Learning. Katie Malone is a Data Scientist in the Research and Development department at Civis Analytics. She has a PhD in Physics from Stanford University, with a background specifically in particle physics. She is an instructor of the Intro to Machine Learning online course from Udacity and […]

  • SE-Radio Episode 285: James Cowling on Dropbox’s Distributed Storage System

    Mar 14 2017

    James Cowling of Dropbox (architect of their distributed storage system), speaks to Robert Blumen about their move from Amazon’s S3 to their own infrastructure; The show covers: the size, scope and scale of Dropbox’s data management; their experience on Amazon’s S3; why S3 over time did not meet their needs; how the decision was made […]

  • SE-Radio Episode 284: John Allspaw on System Failures: Preventing, Responding, and Learning From

    Mar 07 2017

    John Allspaw CTO of Etsy speaks with Robert Blumen about systemic failures and outages; how are systems defended against outages?; why do they fail anyway?; why are failures not entirely preventable?; why do outages involve multiple failures?; the time that Etsy identified it’s own office as a potential source of fraud; the human as part […]

  • SE-Radio Episode 283: Alexander Tarlinder on Developer Testing

    Feb 28 2017

    Felienne talks with Alexander Tarlinder on Developer Testing. Topics include Developer Testing, Agile Testing, Programming by Contract, Specification Based Testing, Venue: KTH, Stockholm Related Links Alexander on Twitter https://twitter.com/alexander_tar Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin and Janet Gregory https://www.amazon.com/Agile-Testing-Practical-Guide-Testers/dp/0321534468 Clean Code https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmansh...more

  • SE-Radio Episode 282: Donny Nadolny on Debugging Distributed Systems

    Feb 14 2017

    Donny Nadolny of PagerDuty joins Robert Blumen to tell the story of debugging an issue that PagerDuty encountered when they set up a Zookeeper cluster that spanned across two geographically separated datacenters in different regions.  The debugging process took them through multiple levels of the stack starting with their application, the implementation of the Zookeeper […]

  • SE-Radio Episode 281: James Whittaker on Career Strategy

    Feb 07 2017

    Edaena Salinas talks with James Whittaker about Career Strategy in the technology field. James is a Distinguished Technical Evangelist at Microsoft. Throughout his career, he specialized in Software Testing, Security, and Storytelling. He is the author of “How Google Tests Software” and the viral blog post “Why I left Google”. Topics include: Career Management, the […]

  • SE-Radio Episode 280: Gerald Weinberg on Bugs Errors and Software Quality

    Jan 24 2017

    Marcus Blankenship talks with Gerald Weinberg about software errors, the fallacy of perfection, how languages and process can reduce errors, and the attitude great programmers have about their work.  Gerald’s new book, Errors: Bugs, Boo-boos, and Blunders, focuses on why programmers make errors, how teams can improve their software, and how management should think of […]

  • SE-Radio Episode 279: Florian Gilcher on Rust

    Jan 10 2017

    Eberhard talks with Florian Gilcher about the programming language Rust. Rust originates from Mozilla research. Its focus is on system programming and it is often used to replace C or C++. Topics include the concepts behind Rust; concurrent and safe programming; advanced and unique features like ownership and borrowing; the rust type system (which supports […]

  • SE-Radio Episode 278: Peter Hilton on Naming

    Dec 20 2016

    Felienne talks with Peter Hilton on how to name things. The discussion covers: why naming is much harder than we think, why naming matters in programming and program comprehension, how to create good names, and recognize bad names, and how to improve your naming skills. Venue: Felienne’s residence, Rotterdam Related Links To camelcase or under_score by […]

  • SE-Radio Episode 277: Gil Tene on Tail Latency

    Dec 14 2016

    Gil Tene joins Robert Blumen for a discussion of tail latency. What is latency? What is “tail latency”? Why are the upper percentiles of latency more relevant to humans? How is human interaction with an application influenced by tail latency? What are the economics of tail latency? What are the origins of tail latency within […]

  • SE-Radio Episode 276: Björn Rabenstein on Site Reliability Engineering

    Dec 06 2016

    Björn Rabenstein discusses the field of Site Reliability Engineering (SRE) with host Robert Blumen. The term SRE has recently emerged to mean Google’s approach to DevOps. The publication of Google’s book on SRE has brought many of their practices into more public discussion. The interview covers: what is distinct about SRE versus devops; the SRE […]

  • SE-Radio Episode 275: Josh Doody on Salary Negotiation for Software Engineers

    Nov 22 2016

    Marcus Blankenship talks with Josh Doody about salary negotiation. Topics include a framework for thinking about salary negotiations, how you can know what you’re worth, the employers view of salary negotiation, and missed negotiation opportunities. Also discussed are common fears about negotiating and how to overcome them, common mistakes during negotiations, and how negotiation makes […]

  • SE-Radio Episode 274: Sam Aaron on Sonic Pi

    Nov 08 2016

    Felienne talks with Sam Aaron on Sonic Pi. Topics include how to design a programming language with a broad audience, what features enable a language to be powerful and fun for children to play with, what the role of programming and programming education is in the world in general and the world of music in […]

  • SE-Radio Episode 273: Steve McConnell on Software Estimation

    Nov 01 2016

    Sven Johann talks with Steve McConnell about Software Estimation. Topics include when and why businesses need estimates and when they don’t need them; turning estimates into a plan and validating progress on the plan; why software estimates are always full of uncertainties, what these uncertainties are and how to deal with them. They continue with: […]

  • SE-Radio Episode 272: Frances Perry on Apache Beam

    Oct 25 2016

    Jeff Meyerson talks with Frances Perry about Apache Beam, a unified batch and stream processing model. Topics include a history of batch and stream processing, from MapReduce to the Lambda Architecture to the more recent Dataflow model, originally defined in a Google paper. Dataflow overcomes the problem of event time skew by using watermarks and […]

  • SE-Radio Episode 271: Idit Levine on Unikernels

    Oct 11 2016

    Jeff Meyerson talks to Idit Levine about Unikernels and unik, a project for compiling unikernels. The Linux kernel contains features that may be unnecessary to many application developers–particularly if those developers are deploying to the cloud. Unikernels allow programmers to specify the minimum features of an operating system we need to deploy our applications. Topics […]

  • SE-Radio Episode 270: Brian Brazil on Prometheus Monitoring

    Oct 04 2016

    Jeff Meyerson talks with Brian Brazil about monitoring with Prometheus, an open source tool for monitoring distributed applications. Brian is the founder of Robust Perception, a company offering Prometheus engineering and consulting. The high level goal of Prometheus is to allow developers to focus on services rather than individual instances of a given service. Prometheus […]

  • SE-Radio Episode 269: Phillip Carter on F#

    Sep 27 2016

    Eberhard Wolff talks with Phillip Carter about F#.  A multi-paradigm programming language that supports object-oriented, imperative, and functional programming, F# can be used for a broad variety of applications. It’s an especially good fit for parallel programming and DSLs. Type interference allows F# code to be type safe even if no types are declared in […]

  • SE-Radio Episode 268: Kief Morris on Infrastructure as Code

    Sep 13 2016

    Kief Morris, cloud specialist at ThoughtWorks and author of the recent book Infrastructure as Code, talks to Sven Johann about why this concept is becoming increasingly important due to cloud computing. They discuss best practices for writing infrastructure code, including why you should treat your servers as cattle, not pets, as well as how to […]

  • SE-Radio Episode 267: Jürgen Höller on Reactive Spring and Spring 5.0

    Sep 06 2016

    Eberhard Wolff talks with Jürgen Höller about Reactive Spring. Reactive programming is a hot topic, but adoption has been slow in the enterprise. Spring 5 incorporates Reactor and the RxJava API to help Java developers build scalable high-performance web applications. The discussion explores architectural challenges, transactions, porting existing applications, and increased code complexity. Venue: GOTOcon Amsterdam […]

  • SE-Radio Episode 266: Charles Nutter on the JVM as a Language Platform

    Aug 16 2016

    Charles Nutter talks to Charles Anderson about the JRuby language and the JVM as a platform for implementing programming languages. They discuss JRuby and its implementation on the JVM as an example of a language other than Java on the JVM. Venue: Skype Related Links Charles Nutter on Twitter: https://twitter.com/headius Charles Nutter on GitHub: https://github.com/headius JRuby […]

  • SE-Radio Episode 265: Pat Kua on Becoming a Tech Lead

    Aug 09 2016

    Johannes Thönes talks to Patrick Kua about the role of a technical lead and how people become tech leads. The show covers the definition of a tech lead, the responsibilities of the role and the challenges of becoming a tech lead. Venue: Internet   Related Links Episode 228: Software Architecture Sketches with Simon Brown Article: A […]

  • SE-Radio Episode 264: James Phillips on Service Discovery

    Aug 02 2016

    Charles Anderson talks with James Phillips about service discovery and Consul, an open-source service discovery tool. The discussion begins by defining what service discovery is, what data is stored in a service discovery tool, and some scenarios in which it’s used. Then they dive into some details about the components of a service discovery tool […]

  • SE-Radio Episode 263: Camille Fournier on Real-World Distributed Systems

    Jul 25 2016

    Stefan Tilkov talks to Camille Fournier about the challenges developers face when building distributed systems. Topics include the definition of a distributed system, whether developers can avoid building them at all, and what changes occur once they choose to. They also talk about the role distributed consensus tools such as Apache Zookeeper play, and whether […]

  • SE Radio Episode 262: Software Quality with Bill Curtis

    Jul 12 2016

    Sven Johann talks with Bill Curtis about Software Quality. They start with what software quality is and then discuss examples of systems which failed to achieve the quality goals (e.g. ObamaCare) and it’s consequences. They then go on with the role of architecture in the overall quality of the system and how to achieve it […]

  • SE-Radio Episode 261: David Heinemeier Hansson on the State of Rails, Monoliths, and More

    Jun 28 2016

    David Heinemeier Hansson, creator of the Ruby on Rails framework and a partner at the software development company Basecamp, talks to Stefan Tilkov about the state of Ruby on Rails and its suitability for long-term development. He addresses some of its common criticisms, such as perceived usefulness for only simple problems, claimed lack of scalability, […]

  • SE-Radio Episode 260: Haoyuan Li on Alluxio

    Jun 14 2016

    Jeff Meyerson talks to Haoyuan Li about Alluxio, a memory-centric distributed storage system. The cost of memory and disk capacity are both decreasing every year–but only the throughput of memory is increasing exponentially. This trend is driving opportunity in the space of big data processing. Alluxio is an open source, memory-centric, distributed, and reliable storage […]

  • SE-Radio Episode 259: John Purrier on OpenStack

    Jun 07 2016

    John Purrier talks with Jeff Meyerson about OpenStack, an open-source cloud operating system for managing compute resources. They explore infrastructure-as-a-service, platform-as-a-service, virtualization, containers, and the future of systems development and management. Cloud service providers like Amazon, Google, and Microsoft provide both infrastructure-as-a-service and platform-as-a-service. Infrastructure-as-a-service gives developers access to virtual machines, servers, and network infrast...more

  • SE-Radio Episode 258: Cody Voellinger on Recruiting Software Engineers

    May 24 2016

    Robert Blumen talks with Cody Voellinger, the founder of a recruiting firm that specializes in filling software engineer roles for San Francisco-area startups, about how jobs are created and how companies and engineers get matched up. Their discussion covers the entire job search process, from job descriptions to salary negotiations. They look at the job […]

  • SE-Radio Episode 257: Michael Nygard on Clojure in Practice

    May 17 2016

    Michael Nygard of “Release It!” fame talks with Stefan Tilkov about his experience using the Clojure programming language. Topics include the tool chain and development process, the Clojure learning curve, and on-boarding new developers. Michael explains the similarities and differences compared to typical OO languages when implementing domain logic, and uses both game development and […]

  • SE-Radio Episode 256: Jay Fields on Working Effectively with Unit Tests

    May 03 2016

    Stefan Tilkov talks with Jay Fields, author of the book Working Effectively with Unit Tests, about unit testing in practice. Topics include how to write good unit tests, what mistakes to avoid, and different categories of unit tests. Jay explains the value of unit tests and why you might want to delete them if you […]

  • SE-Radio Episode 255: Monica Beckwith on Java Garbage Collection

    Apr 26 2016

    Monica Beckwith joins Robert Blumen for a discussion of java garbage collection. What is garbage collection? GC algorithms; history of GC in the java language; fragmentation and compaction; generational strategies; causes of pauses; impact of pauses on application performance; tuning GC; GC on multi-core and large memory machines; should production servers be implemented in non-GC […]

  • SE-Radio Episode 254: Mike Barker on the LMAX Architecture

    Apr 12 2016

    Mike Barker talks with Sven Johann about the architecture of the LMAX system. LMAX is a low-latency, high-throughput trading platform. Their discussion begins with what LMAX does; the origins of LMAX; and extreme performance requirements faced by LMAX. They then delve into systems that LMAX communicates with; LMAX users; the two main components of the […]

  • SE-Radio Episode 253: Fred George on Developer Anarchy

    Mar 24 2016

    Fred George talks with Eberhard about “Developer Anarchy” – a development approach Fred has been using very successfully in different organizations. Developer Anarchy is a manager-less process. All team members write code. There are no stories. Instead developers figure out how to reach specific business goals. Besides writing code some team members have additional responsibilities: […]

  • SE-Radio Episode 252: Christopher Meiklejohn on CRDTs

    Mar 15 2016

    Robert Blumen talks to Christopher Meiklejohn about conflict-free replicated data types (CRDTs). The discussion covers forms of consistency in distributed systems; conflicts and conflict resolution algorithms; consistency and concurrency; the discovery of CRDTs; state-based and operations-based CRDTs; examples of some well-known CRDTs, including counters and sets; time and space complexity; uses of CRDTs in chat […]

  • SE-Radio Episode 251: Martin Klose on Code Retreats

    Mar 03 2016

    Martin Klose talks with Eberhard Wolff about Coderetreats – events where developers practice techniques like test-driven development or refactoring in a safe environment to develop software craftsmanship. Martin talks about how Coderetreats work and why they are a great way to become a better developer. Also he explains the different types and the Global Day […]

  • SE-Radio Episode 250: Jürgen Laartz and Alexander Budzier on Why Large IT Projects Fail

    Feb 22 2016

    Alex Budzier of the Oxford Saïd Business School and Jürgen Laartz of McKinsey Berlin join Robert Blumen to discuss their research on large IT project failures. The show covers: What is a “large” project? What is the definition of failure? Cognitive biases and project failures. Are some attributes of projects predictive of failure? The catastrophic […]

  • SE Radio Episode 249: Vaughn Vernon on Reactive Programming with the Actor Model

    Feb 11 2016

    In this episode, SE Radio Host Stefan Tilkov talks to Vaughn Vernon about the topic of his most recent book, Reactive Messaging Patterns with the Actor Model. Vaughn explains the concepts and history of reactive programming, the actor model and its consequences, actors and their relation to object orientation, a typical approach for designing a […]

  • SE-Radio Episode 248: Axel Rauschmayer on JavaScript and ECMAScript 6

    Jan 28 2016

    Johannes Thönes talks to author and speaker Axel Rauschmayer about JavaScript and ECMAScript 6. They first talk about JavaScript’s origin and history. They discuss the standardization of ECMAScript and the version history. Then, they dive into the key concept of JavaScript as a language and explain the new features coming into the language with the […]

  • SE-Radio Episode 247: Andrew Phillips on DevOps

    Jan 20 2016

    Sven Johann talks with Andrew Phillips about DevOps. First, they try to define it. Then, they discuss its roots in agile operations, its relationship to lean development and continuous delivery, its goals, and how to get started. They proceed to system thinking and what “You build it, you run it” means for a system when […]

  • SE-Radio Episode 246: John Wilkes on Borg and Kubernetes

    Jan 07 2016

    John Wilkes from Google talks with Charles Anderson about managing large clusters of machines. The discussion starts with Borg, Google’s internal cluster management program. John discusses what Borg does and what it provides to programmers and system administrators. He also describes Kubernetes, an open-source cluster management system recently developed by Google using lessons learned from […]

  • SE Radio Episode 245: John Sonmez on Marketing Yourself and Managing Your Career

    Dec 28 2015

    Charles Anderson talks to John Sonmez, the author of Soft Skills—“the software developer’s life manual.” They start out discussing the book and what it covers, which is pretty much everything in a developer’s life outside of code. The book contains seven sections; they discuss two of them: “Career” and “Marketing Yourself.” John discusses the value […]

  • SE-Radio Episode 244: Gernot Starke on Architecture Documentation using arc42

    Dec 16 2015

    Gernot Starke talks about arc42: an open-source set of templates he developed to document software architecture based on his practical experience with real projects. Also Gernot and host Eberhard then discuss how documenting architecture fits into agile processes and how to find the right amount of documentation for a system. They walk through the different […]

  • SE-Radio Episode 243: RethinkDB with Slava Akhmechet

    Dec 02 2015

    Slava Akhmechet and Jeff Meyerson discuss RethinkDB, an open source database for the real-time Web. RethinkDB pushes data to the application rather than requiring the application to poll the database for updates. The discussion begins with the question of why databases need to be rethought–why is it better to build JSON-pushing into the database layer […]

  • SE-Radio Episode 242: Dave Thomas on Innovating Legacy Systems

    Nov 13 2015

    Sven Johann talks with Dave Thomas about innovating legacy systems. Dave clarifies first why legacy systems are both valuable and problematic. Next, they discuss bad systemic and good incremental approaches for innovation of legacy systems; why you shouldn’t rewrite an old system but rather focus on tactical changes to reduce cost or increase productivity within […]

  • SE-Radio Episode 241: Kyle Kingsbury on Consensus in Distributed Systems

    Nov 03 2015

    Kyle Kingsbury, known as Aphyr on Twitter and for his blog by the same name, talks to Stefan Tilkov about consensus in distributed systems and about his experience in testing systems to see how they behave in case of failures. In addition to discussing some of the theoretical foundations, such as the CAP theorem, isolation […]

  • SE-Radio Episode 240: The Groovy Language with Cédric Champeau

    Oct 22 2015

    Josh Long talks to Cédric Champeau about the latest and greatest in the Groovy JVM language, how it has evolved over the years, and where it’s going. They start by talking about the existing features in the language, the language’s history and then move on to discuss where the language is going, how Java 8 […]

  • SE-Radio Episode 239: Andrew Clay Shafer on Modern Platform-as-a-Service

    Oct 02 2015

    Josh Long talks to Pivotal’s Andrew Clay Shafer about the state of platforms-as-a-service (PaaS; like Cloud Foundry). They cover how pass relates to the fast-evolving container-ready distributed runtimes such as Lattice, Kubernetes and Mesos. The discussion starts with a look at what PaaS means and moves on to how the technology has evolved, the community […]

  • SE-Radio Episode 238: Linda Rising on the Agile Brain

    Sep 11 2015

    Johannes Thönes talks to Linda Rising, author, speaker and independent consultant, about the Agile Brain. They start by talking about the fixed, talent-oriented mindset and then contrast with the learning-oriented mindset. After establishing the terms, Linda explains how we know which mindset we are in currently and how we can change it for us and others, […]

  • SE-Radio Episode 237: Go Behind the Scenes and Meet the Team

    Sep 10 2015

    Show editor Robert Blumen begins with a history of the show, what he has been doing since he became the show editor a year ago, and where he wants the show to go in the future. The remainder of the show is a series of interviews with all of the active hosts, the founder of the […]

  • SE-Radio Episode 236: Rebecca Parsons on Evolutionary Architecture

    Aug 21 2015

    Johannes Thönes talks to Rebecca Parsons, Chief Technology Officer at ThoughtWorks, about evolutionary architecture. The practice of evolutionary software architecture means making decisions as late as possible (last responsible moment) and setting up cross-functional requirements that the architecture has to meet (architectural fitness function). In the beginning, Parsons and Thönes introduce the term evolutionary architecture and […]

  • SE-Radio Episode 235: Ben Hindman on Apache Mesos

    Aug 17 2015

    Ben Hindman talks to Jeff Meyerson about Apache Mesos, a distributed systems kernel. Mesos abstracts away many of the hassles of managing a distributed system. Hindman starts with a high-level explanation of Mesos, explaining the problems he encountered trying to run multiple instances of Hadoop against a single data set. He then discusses how Twitter uses […]

  • SE-Radio Episode 234: Barry O’Reilly on Lean Enterprise

    Aug 04 2015

    Johannes Thönes talks to Barry O’Reilly, principal consultant at ThoughtWorks, about his recently published book Lean Enterprise. A lean enterprise is a large organization that manages to keep innovating while keeping its existing products in the market. O’Reilly talks about the idea of scientific experiments and the build-measure-learn loop popularized by the lean-startup method. He shares […]

  • SE-Radio Episode 233: Fangjin Yang on OLAP and the Druid Real-Time Analytical Data Store

    Jul 28 2015

    Fangjin Yang, creator of the Druid real-time analytical database, talks with Robert Blumen. They discuss the OLAP (online analytical processing) domain, OLAP concepts (hypercube, dimension, metric, and pivot), types of OLAP queries (roll-up, drill-down, and slicing and dicing), use cases for OLAP by organizations, the OLAP store’s position in the enterprise workflow, what “real time” […]

  • Episode 232: Mark Nottingham on HTTP/2

    Jul 16 2015

    Stefan Tilkov talks to Mark Nottingham, chair of the IETF (Internet Engineering Task Force) HTTP Working Group and Internet standards veteran, about HTTP/2, the new version of the Web’s core protocol. The discussion provides a glimpse behind the process of building standards. Topics covered include the history of HTTP versions, differences among those versions, and […]

  • SE-Radio Episode 231: Joshua Suereth and Matthew Farwell on SBT and Software Builds

    Jul 01 2015

    Joshua Suereth and Matthew Farwell discuss SBT (Simple Build Tool) and their new book SBT in Action. They first look at the factors creating a need for build systems and why they think SBT—a new addition to this area—is a valuable contribution in spite of the vast number of existing build tools. Host Tobias Kaatz, […]

  • Episode 230: Shubhra Kar on NodeJS

    Jun 26 2015

    Shubhra Kar of StrongLoop talks to Jeff Meyerson about Node.js. Node allows for server-side JavaScript. Shubra and Jeff explore why Node is so important from three standpoints: isomorphic JavaScript, the single-threaded-concurrency model, and the “API economy.” Isomorphic JavaScript apps have their own control and viewing logic, but they share the state and specification of the […]

  • Episode 229: Flavio Junqueira on Distributed Coordination with Apache ZooKeeper

    Jun 17 2015

    Flavio Junqueira is the author of Zookeeper: Distributed Process Coordination. Flavio and Jeff Meyerson begin by defining ZooKeeper and talking about what ZooKeeper is and isn’t. ZooKeeper can be thought of as a patch against certain fallacies of distributed computing: that the network is secure, has zero latency, has infinite bandwidth, and so on. With […]

  • Episode 228: Software Architecture Sketches with Simon Brown

    Jun 10 2015

    Simon Brown, author of Software Architecture for Developers, talks with Sven Johann about using simple sketches to visualize, communicate and document software architecture. The show starts with a consideration of why sketches are more useful than UML and then continues with the explanation of the C4 model (context, containers, components and classes) and how it fits […]

  • Episode 227: Eric Brewer: The CAP Theorem, Then and Now

    May 27 2015

    Robert Blumen talks with Eric Brewer, who discovered the CAP (consistency, availability, partition tolerance) theorem. The first part of the show focuses on Brewer’s original thesis presented at the 2000 ACM Symposium on Principles of Distributed Computing (PODC): What set of problems motivated the formulation of CAP? How was it understood at the time? What are […]

  • Episode 226: Eric Evans on Domain-Driven Design at 10 Years

    May 13 2015

    Eberhard Wolff talks with Eric Evans, the founder of domain-driven design (DDD), about its impact after 10 years. DDD consists of domain-modelling patterns; it has established itself as a sound approach for designing systems with complex requirements. The show covers an introduction to DDD, how the community’s understanding of DDD has changed in the last […]

  • Episode 225: Brendan Gregg on Systems Performance

    Apr 27 2015

    Senior performance architect and author of *Systems Performance* Brendan Gregg talks with Robert Blumen about systems performance: how the hardware and OS layers affect application behavior. The discussion covers the scope of systems performance, systems performance in the software life cycle, the role of performance analysis in architecture, methodologies for solving performance problems, dynamic tracing […]

  • Episode 224: Sven Johann and Eberhard Wolff on Technical Debt

    Apr 01 2015

    In this episode, Sven Johann and Eberhard Wolff talk about technical debt and how to handle it. They begin by defining external and internal quality and then talk about technical debt as a metaphor for discussing quality with management. They then consider whether technical debt is bad and how to handle it by using Eric […]

  • Episode 223: Joram Barrez on the Activiti Business Process Management Platform

    Mar 18 2015

    Josh Long talks to Activiti cofounder Joram Barrez about the wide world of (open source) workflow engines, the Activiti BPMN2 engine, and what workflow implies when you’re building process-driven applications and services. Joram was originally a contributor to the jBPM project with jBPM founder Tom Baeyens at Red Hat. He cofounded Activiti in 2010 at […]

  • Episode 222: Nathan Marz on Real-Time Processing with Apache Storm

    Mar 06 2015

    Nathan Marz is the creator of Apache Storm, a real-time streaming application. Storm does for stream processing what Hadoop does for batch processing. The project began when Nathan was working on aggregating Twitter data using a queue-and-worker system he had designed. Many companies use Storm, including Spotify, Yelp, WebMD, and many others. Jeff and Nathan […]

  • Episode 221: Jez Humble on Continuous Delivery

    Feb 24 2015

    Johannes Thönes interviews Jez Humble, senior vice president at Chef, about continuous delivery (CD). They discuss continuous delivery and how it was done at Go, CD, and HP firmware; the benefits of continuous delivery for developers; Conway’s law and cross-functional teams; scary releases and nonscary releases; fix-forward, blue-green deployments, and A/B testing; origins of continuous […]

  • Episode 220: Jon Gifford on Logging and Logging Infrastructure

    Feb 18 2015

    Robert Blumen talks to Jon Gifford of Loggly about logging and logging infrastructure. Topics include logging defined, purposes of logging, uses of logging in understanding the run-time behavior of programs, who produces logs, who consumes logs and for what reasons, software as the consumer of logs, log formats (structured versus free form), log meta-data, logging […]

  • Episode 219: Apache Kafka with Jun Rao

    Feb 09 2015

    Jeff Meyerson talks to Jun Rao, a software engineer and researcher (formerly of LinkedIn). Jun has spent much of his time researching MapReduce, scalable databases, query processing, and other facets of the data warehouse. For the past three years, he has been a committer to the Apache Kafka project. Jeff and Jun first compare streaming […]

  • Episode 218: Udi Dahan on CQRS (Command Query Responsibility Segregation)

    Jan 30 2015

    Guest Udi Dahan talks with host Robert Blumen about the CQRS (command query responsibility segregation) architectural pattern. The discussion begins with a review of the command pattern. Then a high-level overview of CQRS, which consists of a separation of a command processing subsystem that updates a write model from one or more distinct and separate, […]

  • Episode 217: James Turnbull on Docker

    Jan 07 2015

    James Turnbull joins Charles Anderson to discuss Docker, an open source platform for distributed applications for developers and system administrators. Topics include Linux containers and the functions they provide, container images and how they are built, use cases for containers, and the future of containers versus virtual machines. Venue: Internet Related Links James’s home page: […]

  • Episode 216: Adrian Cockcroft on the Modern Cloud-based Platform

    Dec 09 2014

    Adrian Cockcroft discusses the challenges in creating a dynamic, flexible, cloud-based platform with SE Radio host Stefan Tilkov. After briefly discussing the definition of “cloud computing,” Adrian explains the history behind Netflix’s move to the cloud (which he led). After highlighting some of the differences that have developers and architects must face, Adrian talks about […]

  • Episode 215: Gang of Four – 20 Years Later

    Nov 20 2014

    Johannes Thönes talks with Erich Gamma, Ralph Johnson and Richard Helm from the Gang of Four about the 20th anniversary of their book Design Patterns. They discuss the following topics: the definition of a design pattern and each guest’s favorite design pattern; the origins of the book in architecture workshops; the writing of the book […]

  • Episode 214: Grant Ingersoll on his book, Taming Text

    Nov 11 2014

    Grant Ingersoll, founder and CTO of LucidWorks, talks with Tobias Kaatz about his book Taming Text: How to Find, Organize, and Manipulate It. They begin by discussing popular existing systems for the automated understanding of contextual information. One such system, IBM Watson, drew attention for its victory in the “Jeopardy” game show. They proceed to […]

  • Episode 213: James Lewis on Microservices

    Oct 29 2014

    Johannes Thönes talks to James Lewis, principal consultant at ThoughtWorks, about microservices. They discuss microservices’ recent popularity, architectural styles, deployment, size, technical decisions, and consumer-driven contracts. They also compare microservices to service-oriented architecture and wrap up the episode by talking about key figures in the microservice community and standing on the shoulders of giants. Recording […]

  • Episode 212: Randy Shoup on Company Culture

    Oct 22 2014

    Tobias Kaatz talks to former Kixeye CTO Randy Shoup about company culture in the software industry in this sequel to the show on hiring in the software industry (Episode 208). Prior to Kixeye, Randy worked as director of engineering at Google for the Google App Engine and as chief engineer and distinguished architect at eBay. […]

  • Episode 211: Continuous Delivery on Windows with Rachel Laycock and Max Lincoln

    Sep 30 2014

    Johannes talks with Rachel Laycock and Max Lincoln from ThoughtWorks about continuous delivery on Windows. The outline includes: introduction to continuous delivery; continuous integration; DevOps and ChatOps; decisions to be taken when implementing continuous delivery on windows; build tools on windows; packaging and deploy on windows; infrastructure automation and infrastructure as code with chef, puppet […]

  • Episode 210: Stefan Tilkov on Architecture and Micro Services

    Sep 17 2014

    Micro services is an emerging trend in software architecture that focuses on small, lightweight applications as a means to avoid large, unmaintainable, monolithic systems. This approach allows for individual technology stacks for each component and more resilient systems. Micro services uses well-known communication schemes such as REST but also require new technologies for the implementation. […]

  • Episode 209: Josiah Carlson on Redis

    Sep 05 2014

    Josiah Carlson discusses Redis, an in-memory single-threaded data structure server. A Redis mailing list contributor and author, Josiah talks with Robert about the differences between Redis and a key-value store, client-side versus server-side data structures, consistency models, embedding Lua scripts within the server, what you can do with Redis from an application standpoint, native locking […]

  • Episode 208: Randy Shoup on Hiring in the Software Industry

    Aug 26 2014

    With this episode, Software Engineering Radio begins a series of interviews on social/nontechnical aspects of working as a software engineer as Tobias Kaatz talks to Randy Shoup, former CTO at KIXEYE, about hiring in the software industry. Prior to KIXEYE, Randy worked as director of engineering at Google for the Google App Engine and as […]

  • Episode 207: Mitchell Hashimoto on the Vagrant Project

    Jul 28 2014

    Charles Anderson talks to Mitchell Hashimoto about the Vagrant open source project, which can be used to create and configure lightweight, reproducible, and portable development environments. Vagrant aims to make new developers on a project productive within minutes of joining the project instead of spending hours or days setting up the developer’s workstation. The outline […]

  • Episode 206: Ken Collier on Agile Analytics

    Jul 18 2014

    Johannes Thönes talks to Dr. Ken Collier, Director of Agile Analytics at ThoughtWorks about Agile Analytics. The outline includes: descriptive analytics, predictive analytic and prescriptive analytics; artificial intelligence, machine learning, data mining and statistics; collaborative filtering; data science and data scientists; data warehousing and business intelligence; online analytical processing (OLAP), extract transform load (ETL), feature […]

  • Episode 205: Martin Lippert on Eclipse Flux

    Jun 27 2014

    Eberhard Wolff talks with Martin Lippert of Pivotal about the Eclipse Flux project. This projects is in its early stages — and has a very interesting goal: It aims to put software development tools into the cloud. It is a lot more than just an IDE (integrated development environment) in a browser. Instead the IDE […]

  • Episode 204: Anil Madhavapeddy on the Mirage Cloud Operating System and the OCaml Language

    May 30 2014

    Robert talks to Dr. Anil Madhavapeddy of the Cambridge University (UK) Systems research group about the OCaml language and the Mirage cloud operating system, a microkernel written entirely in OCaml. The outline includes: history of the evolution from dedicated servers running a monolithic operating system to virutalized servers based on the Xen hypervisor to micro-kernels; […]

  • Episode 203: Leslie Lamport on Distributed Systems

    Apr 29 2014

    Leslie Lamport won a Turing Award in 2013 for his work in distributed and concurrent systems. He also designed the document preparation tool LaTex. Leslie is employed by Microsoft Research, and has recently been working with TLA+, a language that is useful for specifying concurrent systems from a high level. The interview begins with a […]

  • Episode 202: Andrew Gerrand on Go

    Mar 14 2014

    Andrew Gerrand works on the Go programming language at Google. His conversation with Jeff begins with a history of the language, including the details behind how Go was conceived and how the open source community contributes to it. Andrew explains how Go intends to simplify problems which have been motifs as Google has scaled. The […]

  • Episode 201: Martin Thompson on Mechanical Sympathy

    Feb 19 2014

    Martin Thompson, proprietor of the blog Mechanical Sympathy, founder of the LMAX disruptor open source project, and a consultant and frequent speaker on high performance computing talks with Robert about computer program performance. Martin explains the meaning of the term “mechanical sympathy,” derived from auto racing, and its relevance to program performance: the importance of […]

  • Episode 200: Markus Völter on Language Design and Domain Specific Languages

    Jan 13 2014

    For Episode 200 of Software Engineering Radio, Diomidis Spinellis interviews Markus Völter, the podcast’s founder. Markus works as an independent researcher, consultant, and coach for itemis AG in Stuttgart, Germany. His focus is on software architecture, model-driven software development and domain specific languages as well as on product line engineering. Markus also regularly publishes articles, […]

  • Episode 199: Michael Stonebraker on Current Developments in Databases

    Dec 05 2013

    Recording Venue: Skype Guest: Michael Stonebraker Dr. Michael Stonebraker, one of the leading researchers and technology entrepreneurs in the database space, joins Robert for a discussion of database architecture and the emerging NewSQL family of databases. Dr. Stonebraker opens with his take on how the database market is segmented around a small number of use […]

  • Episode 198: Wil van der Aalst on Workflow Management Systems

    Sep 30 2013

    Recording Venue: WebEx Guest: Wil van der Aalst Robert Blumen interviews Professor Wil van der Aalst of the Technical University of Eindhoven, one of the world’s leading researchers in business process management and workflow systems. Professor van der Aalst leads off with an overview of the main concepts in the field business processes, business process […]

  • Episode 197: Lars Vogel on Android

    Sep 06 2013

    Recording Venue: WebEx Guest: Lars Vogel Lars Vogel, consultant, Eclipse committer, and owner of vogella.com, gives an overview of the Android operating system. His conversation with Jeff begins with a definition of Android and a brief history. Android is an operating system programmed in Java. It can be found on different types of devices such […]

  • Episode 196: Personal Kanban with Jim Benson

    Jul 31 2013

    Recording Venue: WebEx Guest: Jim Benson Jim Benson is CEO of Modus Cooperandi, a collaborative management consultancy in Seattle, Washington. After being steeped in Agile for many years, Jim started working with Kanban and Lean thinking in 2005. In 2008, he started taking this idea further with Personal Kanban, which brings flow based work to the […]

  • Episode 195: Ellen Gottensdiener and Mary Gorman

    Jun 19 2013

    Recording Venue: WebEx Guest: Ellen Gottensdiener and Mary Gorman Ellen Gottensdiener and Mary Gorman of EBG Consulting talk with Neil Maiden about agile projects, requirements practices and their new book entitled Discover to Deliver: Agile Product Planning and Analysis. The conversation begins with an exploration of how agile has changed requirements and project practices over the […]

  • Episode 194: Michael Hunger on Graph Databases

    May 22 2013

    Recording Venue: Skype Guest: Michael Hunger Michael Hunger of Neo Technology, and a developer on the Neo4J database, joins Robert to discuss graph databases. Graph databases fall within the larger category of NoSQL databases but they are not primarily a solution to problems of scale. They differentiate themselves from RDBMS in offering a data model built […]

  • Episode 193: Apache Mahout

    Apr 22 2013

    Recording Venue: Skype Guest: Grant Ingersoll Grant Ingersoll, founder of the Mahout project, talks with Robert about machine learning.   The conversation begins with an introduction to machine learning and the forces driving the adoption of this technique. Grant explains the three main use cases, similarity metrics, supervised versus unsupervised learning, and the use of large data […]

  • Episode 192: Open Source Development: Perspectives From Management Science

    Feb 13 2013

    Recording Venue: Swiss Federal Institute of Technology, Zürich Guest: Georg von Krogh Open source development has had a major impact on both private and public development and use of software. This is an interview with one of the key researchers on open source development, Professor Georg von Krogh of the Swiss Federal Institute of Technology in […]

  • Episode 191: Massively Open Online Courses

    Jan 07 2013

    Recording Venue: Skype Guest: Douglas C. Schmidt In this episode we talk with Douglas C. Schmidt, who is a professor of computer science at Vanderbilt University and a well-respected authority in the fields of patterns and frameworks for concurrent and networked software. In this interview we talk about these topics in the context of massive […]

  • Episode 190: Lean (Software) Development

    Dec 18 2012

    Recording Venue: WebEx Guest: Christof Ebert Christof Ebert, managing director of Vector Consulting Services talks with Frances Paulisch on his insights to how lean applies to product development. The interview centers around five key principles of lean development, namely end-to-end focus on creating value for the customer, eliminating waste, optimizing value streams, empowering people, and […]

  • Episode 189: Eric Lubow on Polyglot Persistence

    Nov 16 2012

    Recording Venue: Skype Guest: Eric Lubow Eric Lubow and Robert discuss polyglot persistence, a term used to describe systems that incorporate multiple specialized persistent stores rather than a single general-purpose database.  Eric provides insights into the forces driving this trend:  including diverse data usage patterns, low latency, and increasing volumes of data.  The emergence of […]

  • Episode 188: Requirements in Agile Projects

    Sep 12 2012

    Recording Venue: Paddington, London Guests: Suzanne Robertson and James Robertson, Atlantic Systems Guild Neil Maiden, Editor of the Requirements column in IEEE Software, talks with Suzanne and James Robertson of the Atlantic Systems Guild about the emergence and impact of agile practices on requirements work. The interview begins with an exploration of how agile practices have […]

  • Episode 187: Grant Ingersoll on the Solr Search Engine

    Jul 18 2012

    Recording Venue: Lucene Revolution 2012 (Boston) Guest: Grant Ingersoll Grant Ingersoll, a committer on the Apache Solr and Lucene, talks with Robert about the  problems of full-text search and why applications are taking control of their own search, and then continues with a dive into the architecture of the Solr search engine. The architecture portion of the […]

  • Episode 186: Martin Fowler and Pramod Sadalage on Agile Database Development

    Jun 01 2012

    Recording Venue: Skype Guest: Martin Fowler and Pramod Sadalage In this episode, we talk with Pramod Sadalage and Martin Fowler about database evolution and agile database development. We discuss the basic challenges for working with a database in an agile development culture and how to include database design and most of all, database evolution, in […]

  • Episode 185: Dwight Merriman on Replication

    Apr 10 2012

    Recording Venue: MongoSF, San Francisco Guest: Dwight Merriman As application data size and throughput have outgrown the processing and storage needs of commodity servers, replication has become an increasingly important strategy. In this episode, Robert talks with Dwight Merriman about database replication. Topics covered include replication basics, master-slave versus master-master, failure and recovery, replication versus […]

  • Episode 184: The Mainframe with Jeff Frey

    Mar 14 2012

    Recording Venue: Phone Guest: Jeff Frey System z, or the Mainframe, holds most of us in awe — the ultimate computing platform, referenced in Hollywood as well as by those who thought they were dealing with “legacy” systems — but what does Mainframe really mean? What does its stack look like? This leading virtualized infrastructure […]

  • Episode 183: SE Radio becomes part of IEEE Software

    Feb 07 2012

    SE Radio will continue producing podcasts under the wings of IEEE Software, a respected magazine published by the IEEE Computer Society.

  • Episode 182: Domain-Specific Languages with Martin Fowler and Rebecca Parsons

    Jan 25 2012

    In this episode, Markus talk with Martin Fowler and Rebecca Parsons about domain-specific languages.

  • Episode 181: Distributed Scrum with Rini van Solingen

    Dec 07 2011

    In this episode we talk with Rini van Solingen about scrum and agile software development in distributed settings.

  • Episode 180: Leading Agile Developers with Jurgen Appelo

    Oct 25 2011

    In this episode Michael interviews Jurgen Appelo on the topic of leading agile developers.

  • Episode 179: Cassandra with Jonathan Ellis

    Oct 08 2011

    Cassandra is a distributed, scalable non-relational data store influenced by the Google BigTable project and many of the distributed systems techniques pioneered by the Amazon Dynamo paper.

  • Episode 178: Akka With Jonas Boner

    Aug 10 2011

    This episode is a conversation with Jonas Boner about Akka.

  • Episode 177: IBM i (OS/400) Operating System with Steve Will

    Jul 06 2011

    Recording Venue: Phone Guest: Steve Will IBM i (formerly known as OS/400) is an advanced object-based operating system by IBM that runs thousands of businesses around the world.  Steve Will, the Chief Architect of IBM i speaks with us about the history, technical features, and underlying architecture discussing the concepts of Single Level Store, integrated […]

  • Episode 176: Quantum Computing with Martin Laforest

    Jun 03 2011

    We talk with Martin Laforest about topics ranging from how quantum computing works, which different models of quantum computing are explored, current and future uses of the approach as well as the current state of the art.

  • Episode 175: Game Development with Andrew Brownsword

    May 06 2011

    We discuss characteristics and performance properties of modern games and outline the challenges for software development.

  • Episode 174: Chip Manufacturing and Waferscanners

    Apr 08 2011

    Guest: Wilbert Albers Host: Markus In this episode we take a look at microchip production, with a special focus on waferscanners. To do this, we talked with Wilbert Albers of ASML, the leading waferscanner manufacturer in the world. In the episode, we talk about the overall chip production process (from silicon sand over wafer cutting […]

  • Episode 173: Feature-Oriented Software Development with Sven Apel – Pt 2

    Mar 19 2011

    Recording Venue: University of Passau Guest: Sven Apel Host: Stefan In this second episode on Feature-Oriented Software Development (FOSD), Sven Apel gives us an overview of programming language and tool support for FOSD. He introduces the Eclipse-based FeatureIDE which covers important phases of the FOSD process, namely domain implementation as well as configuration and generation. […]

  • Episode 172: Feature-Oriented Software Development with Sven Apel – Pt 1

    Feb 19 2011

    Sven Apel explains why developing software in a feature-oriented manner is so vital for us as software engineers and why objects are simply not enough.

  • Episode 171: Scala Update with Martin Odersky

    Feb 02 2011

    This episode is an update on the developments around the Scala language.

  • Episode 170: Large Agile Software Development with Bas Vodde

    Jan 05 2011

    In this episode Michael talks with Bas Vodde about how to apply agile principles to large and distributed development organizations.

  • Episode 169: Memory Grid Architecture with Nati Shalom

    Nov 30 2010

    In this episode, Robert talks with Nati Shalom about the emergence of large-system architectures consisting of a grid of high-memory nodes.

  • Episode 168: Being a Consultant

    Oct 22 2010

    This episode is about being a consultant in the software business.

  • Episode 167: The History of JUnit and the Future of Testing with Kent Beck

    Sep 26 2010

    In this episode we talk with Kent Beck about automated unit testing and JUnit.

  • Episode 166: Living Architectures with John Wiegand

    Aug 18 2010

    This time we have John Wiegand on the mic for an episode on architectures and agile software development. We talk about the role of architectures in an agile world and why architectures change and need to change over time. We discuss the characteristics of those living architectures, using the Eclipse and the Jazz projects as examples, and the surrounding development methods for such environments.

  • Episode 165: NoSQL and MongoDB with Dwight Merriman

    Jul 16 2010

    Dwight Merriman talks with Robert about the emerging NoSQL movement, the three types of non-relational data stores, Brewer's CAP theorem, the weaker consistency guarantees that can be made in a distributed database, document-oriented data stores, the data storage needs of modern web applications, and the open source MongoDB.

  • Episode 164: Agile Testing with Lisa Crispin

    Jun 16 2010

    This episode covers the topic of agile testing. Michael interviews Lisa Crispin as an practionier and book author on agile testing. We cover several topics ranging from the role of the tester in agile teams, over test automation strategy and regression testing, to continuous integration.

  • Episode 163: State of the Union

    Jun 03 2010

    Announcement regarding the release cycle.

  • Episode 162: Project Voldemort with Jay Kreps

    May 16 2010

    Jay Kreps talks about the open source data store Project Voldemort. Voldemort is a distributed key-value store used by LinkedIn and other high-traffic web sites to overcome the inherent scalability limitations of a relational database. The conversation delves into the workings of a Voldemort cluster, the type of consistency guarantees that can be made in a distributed database, and the tradeoff between client and the server.

  • Episode 161: Agile Product Management with Roman Pichler

    May 03 2010

    In this episode, we discuss with Roman Pichler how Scrum impacts product management and how agile product management differs from traditional approaches. The topics covered include product owners on large projects and product owner teams, facilitating customer feedback through early and frequent releases, envisioning the product, and creating products with the minimum functionality. Enjoy!

  • Episode 160: AspectJ and Spring AOP with Ramnivas Laddad

    Apr 19 2010

    This episode is a conversation with Ramnivas Laddad about aspect-oriented programming (AOP), Aspect J, and Spring AOP. We review the fundamental concepts of AOP, discuss AspectJ (an open source compiler that extends java with support for AOP), and cover the Spring Framework's proxy-based AOP system. Laddad also gives his thoughts on the use cases for AOP and where we are in the technology adoption curve, and updates on the state of the AspectJ project itself.

  • Episode 159: C++0X with Scott Meyers

    Apr 05 2010

    This episode is a conversation with Scott Meyers about the upcoming C++0x standard. We talk a bit about the reasons for creating this new standard and then cover the most important new features, including upport for concurrency, implicitly-typed variables, move semantics, variadic templates, lambda functions, and uniform initialization syntax. We also looked at some new features in the standard library.

  • Episode 158: Rich Hickey on Clojure

    Mar 22 2010

    This episode is a coversation with Rich Hickey about his programming language Clojure. Clojure is a Lisp dialect that runs on top of the JVM that comes with - among other things - persistent data structures and transactional memory, both very useful for writing concurrent applications.

  • Episode 157: Hadoop with Philip Zeyliger

    Mar 08 2010

    Philip Zeyliger of Cloudera discusses the Hadoop project with Robert Blumen. The conversation covers the emergence of large data problems, the Hadoop file system, map-reduce, and a look under the hood at how it all works. The listener will also learn where and how Hadoop is being used to process large data sets.

  • Episode 156: Kanban with David Anderson

    Feb 22 2010

    This episode is part of our series on agile software development. We talk with David Anderson about Kanban, an agile software development method that is quite different from most of the other agile methods out there. We discuss the basic ideas behind Kanban, the differences between Kanban and Scrum and when and why projects can benefit from using Kanban. This episode is done in cooperation with the German magazine ObjektSpektrum (thanks for sharing this interview with us).

  • Episode 155: Johannes Link & Lasse Koskela on TDD

    Feb 08 2010

    In this episode Johannes Link interviews Lasse Koskela - the author of "Test-Driven" - about test-driven development (TDD). We cover the basics, the rationale behind it and the challenges you face when doing it in more difficult environments.

  • Episode 154: Ola Bini on Ioke

    Jan 25 2010

    This is a conversation with Ola Bini on his experimental language Ioke. We cover the idea behind the Ioke experiment as well as important language concepts and the thinking behind them.

  • Episode 153: Jan Bosch on Product Lines and Software Ecosystems

    Jan 11 2010

    This episode is a conversation with Jan Bosch about product line engineering (PLE). Jan has worked in various roles and industries and academia in the context of product lines. In this episode we look at Jan's view of what is next for product lines: software ecosystems. What is their relationship to PLE and how should PLE change to remain relevant?

  • Episode 152: MISRA with Johan Bezem

    Dec 28 2009

    Our guest Johan Bezem explains the idea behind and the benefits of MISRA. MISRA defines guidelines for C and C++ programming in order to ensure quality. While it got started for embedded automotive development, it is more generally applicable.

  • Episode 151: Intentional Software with Shane Clifford

    Dec 14 2009

    This episode is a discussion with Shane Clifford, who is a development manager at Intentional Software. We discuss the idea behind intentional programming, key concepts of the technology as well as example uses and a little bit of history.

  • Episode 150: Software Craftsmanship with Bob Martin

    Nov 30 2009

    This episode is a conversation with "Uncle Bob" Bob Martin about agile software development and software craftsmanship specifically. We talk about the history of the term, the reasons for coming up with it some of the practices and the relationship to other agile approaches. We conclude our discussion with an outlook on some of todays new and hyped programming languages.

  • Episode 149: Difference between Software Engineering and Computer Science with Chuck Connell

    Nov 16 2009

    Michael discusses with his guest Chuck Connell the differences between software engineering and computer science. What makes software engineering so unpredictable, with so few formal results? And how can we advance the field of software engineering without these results?

  • Episode 148: Software Archaeology with Dave Thomas

    Nov 02 2009

    Dave explains why reading source code is at least as important a skill as writing source code. He shares approaches for how to get to grips with unknown and undocumented source code even if it is non-trivial in size. He finishes with advice for how to get started reading code.

  • Episode 147: Software Development Manager

    Oct 19 2009

    Michael and Markus discuss what makes a good R&D manager and how to potentially become an R&D manager. You will learn what some of the essential skills are, what the challenges are, and what the 'mission/vision/strategy thing' is actually good for.

  • Episode 146: Interesting Patterns at EuroPLoP 2009

    Oct 05 2009

    This episode is a discussion with various authors of patterns reviewed at EuroPLoP 2009. Topics include Product Line Engineering, Distributed Development, Open Source and Embedded Systems

  • Episode 145: Spring in 2009 with Eberhard Wolff

    Sep 21 2009

    In this episode we discuss the current state of the spring framework. We talk about core features (dependency injection, AOP) but also about the spring universe, i.e. some of the more specific frameworks such as Spring Batch.

  • Episode 144: The Maxine Research Virtual Machine with Doug Simon

    Sep 07 2009

    In this episode we talk with Doug Simon from Sun Microsystems Laboratories about the Maxine Research VM, a so-called meta-circular virtual machine. Maxine is a JVM that is written itself in Java, but aims at taking JVM development to the next level while using highly integrated Java IDEs as development environments and running and debugging the VM itself directly from the Inspector, an IDE-like tool specialized for the Maxine VM. During the episode we talk about the basic ideas behind Maxine, wh...more

  • Episode 143: API Design with Jim des Rivieres

    Aug 24 2009

    This episode is a discussion with Jim Des Rivieres about APIs: How to design good APIs, the role of the documentation/specification in APIs, API evolution and other relevant topics.

  • Episode 142: Sustainable Architecture with Kevlin Henney and Klaus Marquardt

    Aug 10 2009

    This is another episode recorded at OOP 2009, thanks to SIGS Datacom and programme chair Frances Paulisch for making this possible. Here is the abstract from the conference program: Many software systems have fragile architectures that are based on brittle assumptions or rigid architectures that reduce options and make change difficult. On the one hand, an architecture needs to be fit for the present day, suitable for immediate use, and on the other it needs to accommodate the future, absorbing ...more

  • Episode 141: Second Life and Mono with Jim Purbrick

    Jul 27 2009

    In the first part of this episode we discuss a couple of basics about SecondLife (scaling, partitioning, etc). The second part specifically looks at how the dev team tackled a number of interesting problems in the context of executing their own LSL scripting language on top of Mono.

  • Episode 140: Newspeak and Pluggable Types with Gilad Bracha

    Jul 13 2009

    This episode is a conversation with Gilad Bracha about Newspeak, type systems in general and optional/pluggable types in particular. It was recorded during DSL Devcon in the gardens of the Microsoft campus, and thanks to Gilad's "speaking like a book" way of talking it is published completely unedited :-)

  • Episode 139: Fearless Change with Linda Rising

    Jun 29 2009

    This episode is once again with Linda Rising, this time on the book she coauthored with Mary Lynn Manns on introducing ideas into organizations. The talk is another one of the SE Radio Live sessions recorded at OOP 2009 - thanks to SIGS Datacom and programme chair Frances Paulisch for making this possible.

  • Episode 138: Learning as a Part of Development with Allan Kelly

    Jun 15 2009

    In this episode, Allan shares his insights about how learning is a necessary part of software development. He covers the personal as well as the team and the organizational level and offers practical advice.

  • Episode 137: SQL with Jim Melton

    Jun 05 2009

    In this episode, Arno talks to Jim Melton about the SQL programming language. In addition to covering the concepts and ideas behind SQL, Jim shares stories and insights based on his many years' experience as SQL specification lead.

  • Episode 136: Past Present and Future of MDA with David Frankel

    May 26 2009

    In this episode, Dirk talks with David Frankel, resident Metamodeller and MDA expert at SAP Labs LLC, SAP's subsidiary in the Silicon Valley. Dave's extensive experience provides a big picture, from the early days of CORBA all the way to current issues that are bugging most enterprise architects' work with MDA.

  • Episode 135: Introduction to Software Configuration Management with Petri Ahonen

    May 16 2009

    In this episode Michael interviews one of our regular listeners: Petri Ahonen. Petri introduces Software Configuration Management by defining key terms and describing relevant concepts.

  • Episode 134: Release It with Michael Nygard

    May 06 2009

    This episode is a discussion with Michael Nygard about his book "Release It" which covers aspects of software architecture you often don't think of initially when starting to build a system. Some of the points we discussed were capacity planning, recovery as well as making the system suitable for operation in a data center.

  • Episode 133: Continuous Integration with Chris Read

    Apr 26 2009

    In this episode Markus discusses with Chris Read basics and some advanced topics in the space of continuous integration. We cover concepts, some tools, as well as a number of best practices.

  • Episode 132: Top 10 Architecture Mistakes with Eoin Woods

    Apr 16 2009

    This is a discussion with Eoin Woods about his collection of top 10 software architecture mistakes. Looking at things that don't work is always a good way to learn what you should actually do.

  • Episode 131: Adrenaline Junkies with DeMarco and Hruschka

    Apr 06 2009

    This episode is an interview with Tom DeMarco and Peter Hruschka about the new book of the Altantic Systems Guild: Adrenaline Junkies and Template Zombies: Understanding Patterns of Project Behavior. This is a session recorded live at OOP 2009. SE Radio thanks Tom and Peter, SIGS Datacom and the programme chair, Frances Paulisch, for their great support!

  • Episode 130: Code Visualization with Michele Lanza

    Mar 27 2009

    This episode is a discussion about code and metrics visualization with Michele Lanza. Michele invented the Code Cities idea about which he talks in this episode.

  • Episode 129: F# with Luke Hoban

    Mar 17 2009

    This episode is a discussion about F# with Microsoft's F# program manager Luke Hoban.

  • Episode 128: Web App Security with Bruce Sams

    Mar 07 2009

    The majority of hacker attacks (70 %) are directed at weaknesses that are the result of problems in the implementation and/or architecture of the application. This session shows how you can protect your web applications (J2EE or .NET) against these attacks. The session covers lots of practical examples and techniques for attack. Furthermore, it shows strategies for defense, including a "Secure Software Development Lifecycle". A "Live Hacking" demo rounds it out. This is a session recorded liv...more

  • Episode 127: Usability with Joachim Machate

    Feb 25 2009

    This episode is an introduction to user interface design with Joachim Machate of UID. We talk about the importance of user interface design, about its relationship to the overall software engineering process, as well as about UID's process for systematic user interface design.

  • Episode 126: Jetbrains MPS with Konstantin Solomatov

    Feb 15 2009

    In this episode we take a brief look at Jetbrains' Meta Programming System, a language workbench for creating external DSLs or for extending existing languages (such as Java). In a brief telephone discussion, Konstantin Solomatov explains what the system does and how it works. The system has recently been released into public beta and will be made available under then Apache 2.0 Open Source license.

  • Episode 125: Performance Engineering with Chris Grindstaff

    Feb 05 2009

    In this episode Martin talks with Chris Grindstaff about the fundamentals of performance engineering. The episode discusses when and how to work on performance of client- and server-side systems, what you should take into account during development to avoid performance issues, typical situations that cause performance problems, and some common pitfalls when analysing performance.

  • Episode 124: OpenJDK with Dalibor Topic

    Jan 26 2009

    In this episode we look at SUN's open source strategy for the OpenJDK. We discuss challenges in creating such a big open source project, and ways to keep it focused and organized. We discuss what it means for the Java runtime to be adopted as the technological foundation for other programming languages.

  • Episode 123: Microsoft OSLO with Don Box and Doug Purdy

    Jan 16 2009

    In this episode we discuss Microsoft's OSLO platform with Doug Purdy and Don Box. We briefly discuss what OSLO is in general and then look at the various components of OSLO. We also look at how OSLO fits in with the general Microsoft strategy and how it compares to other DSL/Model-driven approaches. We then look at language modularization and composition and discuss the similarities with XML and Smalltalk. Finally, we discuss possible integrations of OSLO with other MD* approaches and technologi...more

  • Episode 122: Interview Janos Sztipanovits

    Jan 06 2009

    This is a discussion with Janos Sztipanovits about Cyber Physical Systems and how DSLs are used to approach some of the challenges in that domain. Specifically, in the second part we talk about formalizing DSL semantics.

  • Episode 121: OR Mappers with Michael Plöd

    Dec 27 2008

    In this episode, Michael Plöd is interviewed about Object-Relational Mapping technology. He talks about the common concepts, compares the range of different tools that go by this name, and goes into the design and architectural consequences of using an OR mapper.

  • Episode 120: OCL with Anneke Kleppe

    Dec 17 2008

    In this episode we're talking to Anneke Kleppe about model-driven software development and language engineering. We start with her involvement in the creation of the Object Constraint Language (OCL) and discuss the intial expactations, actual experiences, and the place of OCL in the current day. From here, Anneke talks us through her take on the formative years of UML and MDA. From here, we expand to the realm of Domain-Specific Languages and Anneke discusses their place in software engineering ...more

  • Episode 119: DSLs in Practice with JP Tolvanen

    Dec 07 2008

    In this episode, Markus talks with Juha-Pekka Tolvanen about using DSLs and code generation in practice. The main part of the episode is the discussion about a number of case studies that show how DSLs and code generation are used in practice. Omega Tau, Markus' new podcast mentioned in the beginning of the show

  • Episode 118: Eelco Visser on Parsers

    Nov 27 2008

    In this episode we're talking to Eelco Visser about parsing text. We start at the basics - what is parsing? - covering classic tools such as Yacc and classic parsing approaches such as LALR before examining how more recent approaches such as scannerless parsing can make parsing easier and enable previously impractical use cases.

  • Episode 117: Bran Selic on UML

    Nov 17 2008

    In this episode we're talking to Bran Selic of Malina Software about modelling in general and UML2 in particular. Bran covers the basics of modelling, the history of UML, and what's new in UML2.

  • Episode 116: The Semantic Web with Jim Hendler

    Nov 07 2008

    In this episode we're talking to James A. Hendler about the semantic web. We start with a definition of the semantic web and by discussing the main ingredients. We then look at (more or less) related topics such as prolog, artificial intelligence, wisdom of the crowds, and tagging. In the next section we discuss the core semantic web technologies: RDF, OWL, inference engines, SPARQL, and GRDDL. We conclude our discussion by looking at the status of the semantic web today and a couple of example ...more

  • Episode 115: Architecture Analysis

    Oct 28 2008

    During Evolution of a software system, it becomes more and more difficult to understand the originally planned software architecture. Often an architectural degeneration happens because of various reasons during the development phases. In this session we will be looking how to avoid such architectural decay and degeneration and how continuous monitoring can improve the situation (and avoid architectural violations). In addition we will look at "refactoring in the large" and how refactoring can b...more

  • Episode 114: Christof Ebert on Requirements Engineering

    Oct 18 2008

    In this episode we talk to Christof Ebert about requirements engineering. As the name "engineering" suggests, we need to be systematic when working and managing requirements. Christof will structure RE into several activities, namely elicitation (identifying the relevant requirements), specification (clearly describing requirements), analysis (synthesizing a solution), verification and validation (achieving good requirements quality), comittment (allocating requirements to a project, product rel...more

  • Episode 113: Building Platforms with Jeff McAffer

    Oct 08 2008

    In this episode we talk with Jeff McAffer about building platforms. We start with a brief discussion about what a platform is in contrast to a framework or an application. Drawing from his experiences working on the Eclipse platform for years, Jeff talks with us about how to develop platforms, why developing a platform is different from developing an application, what makes a good platform great, and why API design becomes so extremely important for platforms. He provides us with some insights o...more

  • Episode 112: Roles in Software Engineering II

    Sep 28 2008

    This is the second part of the two part topic on roles in software engineering. Michael and Markus discuss role definitions in a corporate environment. For several typical roles we give hints on the expected skills, knowledge, and mindset. In this episode we discuss the roles technical lead, technologist, requirements engineer, product manager, and project manager.

  • Episode 111: About Us 2008

    Sep 22 2008

    In this episode we discuss the status of SE Radio today and introduce the team members. Among other things, Markus discusses stats, sound quality, partners, transcripts, and the cooperation with Hillside Europe. Also, the team members introduce themselves with a one to two minute clip.

  • Episode 110: Roles in Software Engineering I

    Sep 18 2008

    This is the first part of a two part topic on roles in software engineering. Michael and Markus discuss role definitions in an corporate environment. For several typical roles we give hints on the expected skills, knowledge, and mindset. In this episode we discuss the roles junior developer, senior developer, and software architect.

  • Episode 109: eBay’s Architecture Principles with Randy Shoup

    Sep 08 2008

    In this episode we discuss with Randy Shoup, Distinguished Architect at eBay, about architectural pinciples and patterns used for building the highly scalable eBay infrastructure. The discussion is structured into four main ideas: partition everything, use asynchrony everywhere, automate everything, and design the system keeping in mind that everything fails at some point in a large distributed system.

  • Episode 108: Simon Peyton Jones on Functional Programming and Haskell

    Aug 29 2008

    We start our discussion with a brief look at what Haskell is and how a pure functional language is different from non-pure languages. We then look at the basic building blocks and the philosophy of the language, discussing concepts such as the lambda calculus, closures, currying, immutability, lazy evaluation, memoization, and the role of data types in functional languages. A significant part of the discussion is then spent on the management of side effects in a pure language - in other words, t...more

  • Episode 107: Andrew Watson on the OMG

    Aug 19 2008

    This episode is a discussion with Andrew Watson, Technical Director of the Object Management Group. The episode is structured into five parts. We start with the history of the OMG and its early work. Then we look at the set of standards it has been (or is currently) working on. Next is a discussion of the standardization process used by the OMG, including the much-debated topic of compliance testing. We then look at OMG's relationship to other standards bodies (W3C, OASIS). Finally Andrew and ...more

  • Episode 106: Introduction to AOP

    Aug 09 2008

    This episode is a systematic introduction to Aspect Oriented Programming (in contrast to the interview with Gregor Kiczales). We discuss the fundamentals of AOP, define many of the relevant terms and also look at how and where AOP is used in practice, as well as at some current research trends.

  • Episode 105: Retrospectives with Linda Rising

    Jul 30 2008

    In this episode we're talking to Linda Rising about retrospectives. We start by defining what a retrospective is and discuss some of the logistics of making it work for software projects. We then look at the different phases of a retrospective. The main part then is a discussion about some of the practices or games that are used to facilitate the retrospective. We conclude the retrospective discussion with destroying some of the prejudices against it and the relationship to process improvement a...more

  • Episode 104: Plugin Architectures

    Jul 20 2008

    In this episode we talk with Klaus Marquardt about building systems out of plugins. After briefly introducing the concept of a plugin in contrast to modules and related software engineering concepts, we discuss different views on plugins and different ways of working with plugins for developing software. We are looking at plugins for embedded systems as well as large business systems, at how plugins change the working mode and team organization, and discuss the possibilities of why and when to u...more

  • Episode 103: 10 years of Agile Experiences

    Jul 10 2008

    In this episode we're talking to Jens Coldewey about his experiences in 10 years of introducing agile techniques to project teams. We discuss real-world examples and the lessons learned and strategies derived from them.

  • Episode 102: Relational Databases

    Jun 30 2008

    In this espisode we take a closer look at relational database systems and the concepts behind them. We start by discussing the relational paradigm, its concepts and ramifications, and go on to architectural aspects.

  • Episode 101: Andreas Zeller on Debugging

    Jun 20 2008

    In this episode we're talking to Andreas Zeller. about debugging. We started the discussion with an explanation of what debugging and how it works in principle. We then briefly discussed the relationship between debugging and testing. Next was the importance of the scientific method for debugging. We then looked as debugging as a search problem, leading to a discussion about delta debugging, the main topic of this discussion. We concluded the discussion by looking at the practical usability of ...more

  • Episode 100: Software in Space

    Jun 10 2008

    In this episode we're talking to Hans-Joachim Popp, CIO at DLR about software in space. We start out by reviewing some well-known accidents of unmanned space flight that were caused by software faults and use this as a motivation to discuss how to avoid these in the future. We discuss culture, process, techniques and tools that DLR uses to create high-quality software for use in unmanned space systems.

  • Episode 99: Transactions

    May 31 2008

    This episode takes a close look at transactions from different angles, starting with their fundamental properties of Atomicity, Consistency, Isolation, Durability but also investigating advanced topics like distributed or business transactions.

  • Episode 98: Stefan Tilkov on REST

    May 23 2008

    In this episode we discuss REST (Representational State Transfer) with Stefan Tilkov. We started out by discussing the 5 steps to REST: IDs, links, Standard Methods, multiple representations and stateless communication. We then looked at how to use HTTP for REST, and discussed about how to use it for Web Services. We then we discussed whether and how to use REST for enterprise applications, and not just for apps on the internet. We concluded the discussion with a couple of recommendations.

  • Episode 97: Interview Anders Hejlsberg

    May 16 2008

    In this episode we have the pleasure of talking to Anders Hejlsberg, Chief Language Strategist at Microsoft. We started by discussing his more distant past, namely, his involvement with Turbo Pascal and Borland's Delphi. We then looked at the influences Delphi had on C# and how C# evolved from Delphi. In the next section we discussed a couple of general language design issues, among them components and checked vs. unchecked exceptions. Next, we discussed interesting issues about languages of the...more

  • Episode 96: Interview Krzysztof Czarnecki

    May 08 2008

    This episode is the long-awaited (and much requested) interview with Krzysztof Czarnecki, the author, together with Ulrich Eisenecker, of the book Generative Programming. In the interview we discussed the state of generative programming today and related it to model-driven development and DSLs. We then talked a little bit about product lines in general. We then discussed his current field of research, which currently focusses on framework-specific modeling languages and non-trivial roundtrip...more

  • Episode 95: The New Guardian.co.uk website with Matt Wall and Erik DoernenBurg

    May 01 2008

    In this episode we talk to Matthew Wall (Guardian News and Media) and Erik Doernenburg (Thoughtworks) about their work on the new guardian.co.uk website. We discuss the challenge of scalability and interactivity, their use of Domain Driven Design, some of the technical building blocks as well as the approaches they use for performance measuring and scalability tuning.

  • Episode 94: Open Source Business Models with Dirk Riehle

    Apr 23 2008

    In this episode we're talking to Dirk Riehle about open source business models. We started looking at the way OS projects work and defined different kinds of open source projects. In the main part of the discussion we looked at various ways of how to make money with open source: consulting, support contracts, commercial variant of an open source project, etc. We then looked at the chances and risks of each of these approaches. The next part focused on different open source licenses and how they ...more

  • Episode 93: Lessons Learned From Architecture Reviews with Rebecca Wirfs-Brock

    Apr 15 2008

    In this episode, Markus talks to Rebecca Wirfs-Brock on what she has learned from architecture reviews. This is a very complement to the earlier episode on architecture evaluation.

  • Episode 92: Introduction to Game Development

    Apr 07 2008

    In this Episode, Arno talks with Oliver Jucknath about the art of writing computer games. A lot of myth is attached to this area of computing, and while a game technically is just another program, it is written in a different context than typical business applications. This is true at the code level, where aggressive optimization is a focus throughout development. It also applies at the team level, where collaboration between specialists is pronounced. And the business context is different as...more

  • Episode 91: Kevlin Henney on C++

    Mar 30 2008

    In this episode, we talk with Kevlin Henney about the C++ programming language. We look at the history and the culture of the language, and how it went through several phases in its evolution. We also take a look at some of the special language features of C++ and their overall influence.

  • Episode 90: Product Line Engineering, Pt. 3, with Charles Krueger

    Mar 22 2008

    In this episode Charles Krueger, a well-known member of the product line engineering community, talks about his long term experiences in the field. Charles is also the founder and CEO of a company that provides tooling for variability management and product derivation. Besides some clarifications on terms like product line architecture and reference architecture, you also learn what kind of preconditions need to exist before product line engineering can be applied successfully.

  • Episode 89: Joe Armstrong on Erlang

    Mar 12 2008

    In this Episode we're talking about Erlang with its creator Joe Armstrong. We started by looking at the history of the Erlang language and why it is so relevant today. We then looked at Joe's approach to Concurrency Oriented Programming and its main ingredients: share nothing, lightweight concurrency and pure message passing. We also compared this to the classic shared memory approach to concurrency. We then looked at other interesting aspects of Erlang, such as its functional nature (and why...more

  • Episode 88: The Singularity Research OS with Galen Hunt

    Mar 02 2008

    In this episode we talk to Galen Hunt about the Singularity research OS. Galen is the head of Microsoft's OS Research Group and, together with a team of about 30 other researches, has built Singularity. We started our discussion by covering the basics of Singularity: why it was designed, what the goals of the project are as well as some of the architectural foundations of Singularity: software isolated processes, contract-based channels and manifest-based programs. In this context we also lo...more

  • Episode 87: Software Components

    Feb 21 2008

    In this episode, Michael and Markus talk about software components. We first looked at a couple of attempts at defining what a component is. We then provided our own definition that will be used in the rest of the episode. We then looked at the promises of component-based development: why are components useful? We then discussed some of the typical metadata components should specify to make them useful. We discussed to some extent typical variations in component models. The next topic was the...more

  • Episode 86: Interview Dave Thomas

    Feb 11 2008

    This episode is an interview with Dave Thomas (OTI Dave or Smalltalk Dave, not PragDave). We started our discussion with a look at the (non-)success of objects and components. We then discussed some history behine Eclipse and Dave's role in OTI. We then compared Smalltalk and Ruby and looked at the promises of small and powerful languages such as Lisp. We also discussed the role of (static) type systems and the role of tool support for languages. We then switched gears and looked at what is n...more

  • Episode 85: Web Services with Olaf Zimmermann

    Feb 01 2008

    In this Episode we're talking about Web Services with IBM's Olaf Zimmermann. We mainly focus on the WS-* stack. We also discuss a couple of SOA foundations and architectural decisions that need to be taken when building an SOA using Web Serivces. We also briefly mention the REST vs. WS-* debate.

  • Episode 84: Dick Gabriel on Lisp

    Jan 22 2008

    In this Episode we're talking with Dick Gabriel on Lisp. We started by looking at artificial intelligence as the historic context of Lisp, the goals AI tried to reach, and how Lisp was supposed to help reach those. We then discussed the language itself, starting with the Data As Program / Program As Data concept that is a foundation for Lisp. Then we discussed adding a meta-circular interpreter, programming as language development, and the blurred boundary between language and frameworks (be...more

  • Episode 83: Jeff DeLuca on Feature Driven Development

    Jan 12 2008

    In this episode we talk with Jeff DeLuca about Feature Driven Development (FDD). As one member of the agile methods family FDD is not so famous as Scrum or Extreme Programming but is becoming more and more popular, especially for situations where you have fixed price contracts. As the inventor of FDD Jeff gives short introduction to the method itself, talks about the basic ideas behind FDD and discusses with us how FDD relates to other members of the agile family.

  • Episode 82: Organization of Large Code Bases with Juergen Hoeller

    Jan 02 2008

    In this episode Eberhard Wolff speaks with Jürgen Höller, the co-found of the Spring framework. Spring is a tremendously successful Java framework so they discuss the design of large frameworks and the issues that arise in the evolution. Jürgen explains the management of dependencies in the framework, how to structure such a framework, how to offer compatibility for the existing user base while evolving the framework and the role of metrics during development.

  • Episode 81: Interview Erich Gamma

    Dec 23 2007

    This episode is a conversation with Erich Gamma. We covered the four things he is known for in chronological order. We started with design patterns and the Gang-of-Four book of which he is the lead author. We then looked at JUnit, the testing framework he coauthored with Kent Beck and how it introduced unit testing to the masses. The next topic is obviously Eclipse, where Erich and his lab in Zürich is responsible for the Java Development Tooling. We also briefly discussed The Eclipse Way, the (...more

  • Episode 80: OSGi with Peter Kriens and BJ Hargrave

    Dec 13 2007

    This episode is about OSGi, the dynamic module system for Java. Our guests are Peter Kriens (OSGI's Technical Director) and BJ Hargrave (OSGI's CTO). We'll discuss what OSGi is all about and why and in which contexts it is useful. Additionally we are having a look at the different layers of OSGI and where and how they are used. Other questions discussed are: What means dynamicity in an OSGI environment? Where is OSGI used? What’s the future of OSGI? How does OSGI interact with existing middlewar...more

  • Episode 79: Small Memory Software with Weir and Noble

    Dec 03 2007

    In this Episode we're discussing patterns for small memory software with the authors of the like-named book Charles Weir and James Noble. We look at various aspects of the small memory problem: How can you manage memory use across a whole system? What can you do when you have run out of primary storage? How can you fit a quart of data into a pint pot of memory? How can you reduce the memory needed for your data? How do you allocate memory to store your data structures? Answers to all those quest...more

  • Episode 78: Fault Tolerance with Bob Hanmer Pt. 2

    Nov 23 2007

    This is the second part of the discussion on fault tolerance with Bob Hanmer (if you didn't listen to Episode 77, which contains part one, please go back and listen now; this episode builds on that previous one!) We start by discussing a set of error detection patterns. Among are the well-known approaches such as checksums and voting. We then look at error recovery patterns, including restart, rollback or roll forward. The next section looks at error mitigation patterns, which include sheddi...more

  • Episode 77: Fault Tolerance with Bob Hanmer Pt. 1

    Nov 13 2007

    In this Episode we discuss fault tolerance based on the new book by Bob Hanmer. This is the actually the first part of the discussion, the remainder will be published in the next episode of SE Radio. We start by discussing some of the context for fault tolerant systems and the imperfect world assumption. We then discuss a number of terms we will need when discussing the fault tolerance patterns. We then discuss the fault tolerance mindset and connect fault tolerance to a number of related su...more

  • Episode 76: Special Episode on the Patterns Journal

    Nov 09 2007

    In this special Episode we briefly discuss the upcoming Patterns Journal with the two editors, Ralph Johnson and James Noble.

  • Episode 75: The New Website

    Nov 04 2007

    In this special Episode we briefly discuss our new website. We will migrate to our new website during the coming week. If you experience any difficulties, contact the team or temporarily go to the old site at seradio.libsyn.com.

  • Episode 74: Enterprise Architecture II

    Nov 03 2007

    Enterprise Architecture is already common practice in most Fortune 100 companies. As the topic is comparably young, knowledge about it is not so widespread in the Software Architects Community, who deals mostly with project architectures. In this episode Alex speaks with Wolfgang Keller who has practical experience as an enterprise architect and has written a book on the topic. He is a Partner with BusinessGlue Consulting. They are specializing in the relationship between EAM and SOA. This episo...more

  • Episode 73: Real Time Systems with Bruce Powel Douglass

    Oct 24 2007

    This episode is a conversation with Bruce Powel Douglass on real time systems. We started by discussing what real time software is, and explored the difference between hard and soft real time. We then looked at different scheduling strategies, and the meaning of terms like urgency and importance in the context of scheduling. Next was a discussion of typical architectural styles for real time systems and how architectures are described in this context. This led us to a discussion about the import...more

  • Episode 72: Erik Meijer on LINQ

    Oct 17 2007

    This episode is a discussion with Erik Meijer on LINQ. This is a relatively technical discussion about the following topics: what is LINQ, what are the common abstractions between the different data structures one can access with LINQ, what is the relationship to established languages for querying, how does the integration into the type system of the host language work, how to specify the mapping between the language level classes and the data, and how optimizations are implemented (lazy loading...more

  • Episode 71: Survey Results

    Oct 13 2007

    In this Episode I talk about the results of the listener survey and reply to some of the suggestions and criticism expressed in survey replies.

  • Episode 70: Gerard Meszaros on XUnit Test Patterns

    Oct 04 2007

    In this episode we talk with Gerard Meszaros about problems and challenges doing unit testing in real-world projects. Starting from a short discussion about the importance of automated unit testing we spend most of this episode to talk about every day problems doing unit testing and how those problems can be solved. Based on this book on xunit testing patterns, Gerard talks about his experiences with unit test smells as an analogy to code smells. He describes an impressive set of unit testing pa...more

  • Episode 69: Nico Josuttis on SOA (SOA Pt. 3)

    Sep 24 2007

    This Episode is part five in our (probably ongoing) series on service oriented architecture. In this episode we talk to Nico Josuttis, who has recently published a book on this topic. As its title "SOA in Practice" suggests, it is a very pragmatic book based on Nico's experience as architect and project lead in a number of enterprise-level projects - not all of them had been called SOA, since they at the time the term was not yet coined. The episode discusses some technical aspects of SOA (such ...more

  • Episode 68: Dan Grossman on Garbage Collection and Transactional Memory

    Sep 14 2007

    This episode features a discussion with Dan Grossman about an essay paper he wrote for this year's OOPSLA conference. The paper is about an analogy between garbage collection and transactional memory. In addition to seeing the beauty of the analogy, the discussion also serves as a good introduction to transactional memory (which was mentioned in the Goetz/Holmes episode) and - to some extent - to garbage collection.

  • Episode 67: Roundtable on MDSD and PLE

    Sep 04 2007

    This is a roundtable discussion on model-driven software develoment and product line engineering. It was recorded at the Model-Driven Development and Product Lines: Synergies and Experience conference in October 2006 in Leipzig. The panelists are: Axel Uhl, SAP Danilo Beuche, Pure Systems Juha Pekka Tolvanen, MetaCase Tom Stahl, b+m Ruediger Schilling, Delta Software Technology

  • Episode 66: Gary McGraw on Security

    Aug 24 2007

    This episode features an interview with the software security expert Gary McGraw. Gary explains why this topic is so important and gives several security deficiencies examples that he found in the past. The second half of the interview is about his latest book 'Exploiting Online Games' where he explains how online games are hacked and why this is relevant to everybody, not only gamers in their 'First Life'.

  • Episode 65: Introduction to Embedded Systems

    Aug 14 2007

    This episode is an introduction to embedded system. It is an introduction in the sense that we cover many topics very briefly: upcoming episodes will provides details for many of these topics. We start by discussing what an embedded system is an what the important characteristics are. Among them is limited resources, concurrency, real time and hardware integration. We also discuss the range of embedded systems from small mirocontrollers to mobile phones to distributed real time embedded systems...more

  • Episode 64: Luke Hohmann on Architecture and Business

    Aug 04 2007

    In this episode we talk about the relationship between software architecture and the business. Based on his book, Beyond Software Architecture we discuss how things such as branding, licensing, updating or different deployment scenarios influence the technical architecture of a system. We also discuss issues such as portability that add a huge amount of complexity, although from a business perspective it often does not make much sense. In the second part of the interview we discuss how the techn...more

  • Episode 63: A Pattern Language for Distributed Systems with Henney and Buschmann

    Jul 25 2007

    In this Episode we talked about the new POSA 4 book which has recently been published. We talk to two of the authors, Kevlin Henney and Frank Buschmann (the third author, Doug Schmidt was not available - and he had also been on the podcast a couple of times :-)). The book contains a pattern language for distributed systems. It contains 114 patterns that had been published before by many different other authors. The patterns have been rewritten to form a consistent language. We basically talked ...more

  • Episode 62: Martin Odersky on Scala

    Jul 15 2007

    In this Episode we talk about the Scala language with its creator Martin Odersky. Scala is a language that fuses object oriented and functional programming. Martin started out by providing a two-minute overview over the language, and then talked a little bit about its history. We then discussed the basics of functional programming. The main part of the episode features a discussion of some of the important features of the Scala language: Case Classes and Pattern Matching Multiple Inheritan...more

  • Episode 61: Internals of GCC

    Jul 05 2007

    This show takes a behind-the-scenes look at compilers and their inner workings, using the Gnu compiler collection (GCC) as an example. Arno interview Morgan Deters, covering all steps from the parsing of different programming languages to machine independenet optimizations and generating processor specific binary code.

  • Episode 60: Roman Pichler on Scrum

    Jun 25 2007

    This episode features Scrum, a very popular Agile software development framework. We interview Roman Pichler, a Certified ScrumMaster Trainer and independent consultant. Roman explains the principles behind Scrum, its roles and its key practices. He also answers FAQs. This episode continues our track on software development processes discussing an additional Agile method. Roman is currently writing a book on Scrum in German that provides more in-depth information of the topics discussed in the ...more

  • Episode 59: Static Code Analysis

    Jun 16 2007

    This episode is a discussion with Jonathan Aldrich (Assistant Professor at CMU) about static analysis. The discussion covered theory as well as practice and tools. We started with an explanation of what static analysis actually is, which kinds of errors it can find and how it is different from testing and reviews. The core challenge of such an analysis tool is to understand the semantics of the program and reduce its possible state space to make it analysable - in effect reconstructing the progr...more

  • Episode 58: Product Line Engineering Pt. 2

    Jun 06 2007

    Variability is one of the key concerns in software product line engineering. The episode introduces the concepts of structural and non-structural (or configurative) variability. It also discusses how to find and model variability, and especially how to implement variability in the solution artifacts. Michael and Markus discuss a series of variability mechanisms that can be used with today's programming languages and technologies.

  • Episode 57: Compile-Time Metaprogramming

    May 27 2007

    This episode is about compile-time metaprogramming, and specifically, about implementing DSLs via compile-time metaprogramming. Our guest, Laurence Tratt, illustrates the idea with his (research) programming language called Converge. We started by talking about the importance of a custom syntax for DSL and took a brief look at the definition of DSLs by a chap called Paul Hudak. We then briefly covered the disctinction between internal and external DSLs. More to the point of this episode,...more

  • Episode 56: Sensor Networks

    May 17 2007

    In this episode we discuss sensor networks with our guest Steffen Schaefer, who is the Technical Thought Leader for Sensors & Actuator Solutions at IBM. The discussion resolves around the TREC device, which can be mounted on containers to track them on their journey over seas, railway tracks and roads. The TREC is a small embedded device developed by Steffen's employer, IBM, that has various sensors and communications channels. In the episode we first talked about container transport in...more

  • Episode 55: Refactoring Pt. 2

    May 07 2007

    In the first episode on Refactoring we talked about the basic ideas behind refactoring and some base principles why refactoring is a key part of software engineering. Now we move on to more complicated refactorings and discuss three major situations, their problems and possible solutions: advanced refactorings in large projects that can hardly be finished in a few minutes or hours and refactoring in larger teams. Also covered are the refactoring of published APIs and how merciless refactoring co...more

  • Episode 54: Interview Frank Buschmann

    Apr 27 2007

    This episode is an interview with Frank Buschmann, one of the pioneers of the pattern movement in Europe. Michael and Frank discuss how it all began: the first conferences on patterns and the first publications by the Gang-of-Four and the POSA 1 team. Frank then elaborates on the new volumes in the Pattern-Oriented Software Architecture book series - POSA 4 and POSA 5 - and gives some examples from the books. The episode concludes with a general discussion on software design and architecture, an...more

  • Episode 53: Product Line Engineering Pt. 1

    Apr 17 2007

    Michael Kircher and Markus Voelter introduce the topic of software product line engineering. They motivate when and why product lines are important to consider and what makes them so special. Further, they introduce some key terminology, such as platform, core asset, feature model, commonality, and variability.

  • Episode 52: DSL Development in Ruby

    Apr 07 2007

    In this episode, we're talking to Obie Fernandez about agile DSL development in Ruby. We started our discussion by defining what a DSL is, the difference between internal and external DSLs as well as the importance of the flexibly syntax of the host language in order to make DSLs worthwhile. We then looked at a couple of real world examples for DSLs, specifically, at Business Natural Languages. We then progressed to the main part of the discussions, which centered around the features of Ruby tha...more

  • Episode 51: Design By Contract

    Mar 28 2007

    In this episode, Arno and Michael take a look at Design by Contract, a programming technique formalized by Bertrand Meyer. The idea is that an interface is more than method signatures - it is also about specifying the expected behavior that implementations must provide. While some languages include direct support for this style of programming, it is a useful mindset when desiging interfaces even without such language features.

  • Episode 50: Announcements and Requests

    Mar 22 2007

    This is another episode where we mainly announce topics related to the podcast itself.

  • Episode 49: Dynamic Languages for Static Minds

    Mar 18 2007

    In this Episode we talk about dynamic languages for statically-typed minds, or in other words: which are the interesting features people should learn when they go from a langauge such as Java or C# to a language like Python or Ruby. We used Ruby as the concrete example language. We started the discussion about important features with the concept of dynamically changing an object's type and the idea of message passing. We then looked at the concepts of blocks and closures. Next in line is a di...more

  • Episode 48: Interview Dragos Manolescua

    Mar 08 2007

    In this Episode we discuss software architecture evaluation with Dragos Manolescu, an architect at Microsoft's patterns & practices group. We start off the discussion by trying to define what software architecture evaluation is and when and you want to evaluate an architecture in the system's lifecycle. We then make sure evaluators set the expectations for the evaluation process right - it is important to understand that architecture evaluation is typically not primarily a review of the ...more

  • Episode 47: Interview Grady Booch

    Feb 26 2007

    In this Episode we are happy to talk to Grady Booch. We started off by discussing his Architecture Handbook, how it came into being, the progress, and how it will look like once it's finished. In this context we also looked at the issue of how to distinguish architecture from design. We then asked him about how "professional" software architecture is these days, as well as about the ubiquity of software product lines in industry. The next couple of minutes looked at the question of whether soft...more

  • Episode 46: Refactoring Pt. 1

    Feb 16 2007

    Changeable software has been a goal of several technique in software engineering. Probably the most important is Refactoring, changing the code without changing the behaviour (or at least without breaking the tests). In this episode Eberhard talks with Martin Lippert about this technique. The episode covers a history of refactoring, a definition of code smells and how to actually do refactorings in your everyday work. Also some advanced topics - like the ROI of Refactoring or Refactoring in dyna...more

  • Episode 45: Round Table on Ultra Large Scale Systems

    Feb 06 2007

    This Episode is a round table discussion about Ultra-Large Scale Systems. In 2006, a number of authors (among them our guests Linda Northrop, Doug Schmidt, Kevin Sullivan, and Gregor Kiczales) have produced a report that addressed the following question: Given the issues with today's software engineering, how can we build the systems of the future that are likely to have billions of lines of code? In this episode, our guests discuss many of the issues that arise from this kind of system ...more

  • Episode 44: Interview Brian Goetz and David Holmes

    Jan 27 2007

    This is another episode on concurrency. We talk to two experts in the field, Brian Goetz and David Holmes about aspects of concurrency we hadn't really covered before. We start out by discussing liveness and safety and then continue to talk about synchronizers (latches, barriers, semaphores) as well as the importance of agreeing on protocols when developing concurrent applications. We then talked about thread confinement as a way of building thread-safe programs, as well as using functional ...more

  • Episode 43: eXtreme Programming Pt.2

    Jan 17 2007

    This is the second part of our two part discussion of the eXtreme Programming development methodology. While the first part introduced the values, principles and basic practices, this time Arno and Alex speak about the practices that set the context for an XP project and how to get started, and they discuss some FAQs they often get when introducing XP.

  • Episode 42: Interview Gregor Hohpe

    Jan 07 2007

    In this episode, Gregor Hohpe gives us a great introduction to enterprise messaging based on his EAI Patterns book. Before we started discusssing the patterns in his book, we characterized messaging and talked about the various interaction styles. We also contrasted the messaging architectural style with an RPC based approach. We then took a look at the relationship to SOA, the role of contracts and the orchestration-vs-choreography discussion. We briefly discussed the nature of pattern language...more

  • Episode 41: Architecture Patterns (Architecture Pt. 4)

    Dec 27 2006

    This is the fourth and final episode on the fundamentals of Software Architecture. We talk mainly about architectural styles and patterns, as introduced in the POSA 1 Book. We also discuss a little bit the process of actually using those patterns for architecting systems.

  • Episode 40: Interview Werner Vogels

    Dec 16 2006

    This episode is an interview with Werner Vogels, the CTO of amazon.com. We first talked about what scalability is, and which aspects there are to scalability. We then took a brief look at the technologies used at amazon, specifically, the middleware systems and the issue of vendor lock-in. Web services, and the role of SOA was the next topic. Then we covered what a service actually is add Werner explained the term "pizza teams". Testing and Deployment was the next topic followed by a look at arc...more

  • Episode 39: Interview Steve Vinoski

    Dec 06 2006

    This episode is an interview with Steve Vinoski. Steve works as the Chief Engineer for IONA. He's what you'd call a middleware guru, he was for example deeply involved with CORBA. So, this interview centers mainly around middleware. We begin by talking about his own history wrt. middleare and ORBs and how ORBs evolved over time. We then talked about whether coarse-grained, stateless components might be a better abstraction for distributed systems than "objects". We then covered the future of COR...more

  • Episode 38: Interview James Noble

    Nov 26 2006

    Designers, programmers, engineers, we must all return to programming! Very few programmers tend to see their (sometimes rather general) difficulties as the core of the subject and as a result there is a widely held consensus as to what programming is really about. If these notes prove to be a source of recognition or to give you the appreciation that we have simply written down what you already know about the programmer's trade, some of our goals will have been reached.

  • Episode 37: eXtreme Programming Pt.1

    Nov 18 2006

    This is the first of two episodes where Arno and Alex discuss eXtreme Programming in se-radio's development process track. eXtreme Programming (XP) revolutionized the way of thinking about software development methodologies and helped to make the agile movement popular. In this episode they discuss the very basics of XP, its value system, principles and the basic practices used in an XP project. The second episode will continue the introduction adding the missing practices and how to introduce X...more

  • Episode 36: Interview Guy Steele

    Nov 10 2006

    This episode is an interview with Guy L. Steele Jr.. Guy is a Sun Fellow and heads the Programming Language Research Group within Sun, and a generally well known "programming language guy" (see here for details). We briefly talk about Lisp and the resurgence of dynamic languages before we delve into the main topic, the Fortress programming language he is working on. Fortress is a language intended to replace Fortran as a scientific computing language. We talk about how mathematical notations, sy...more

  • Episode 35: Roadmap

    Nov 08 2006

    This episode mainly outlines the upcoming programming and interviews.

  • Episode 34: Enterprise Architecture

    Nov 02 2006

    In this episode Markus and our Guest Andy Longshaw talk about enterprise architecture. More specifically, we talk about some of the patterns in Andy Longshaw's and Paul Dyson's book Architecting Enterprise Solutions: Patterns for High-Capability Internet-based Systems. These includes things like replication, load balancing, monitoring and application management.

  • Episode 33: Service Oriented Architecture, Pt.2b

    Oct 23 2006

    This is the second snippet of the SOA 2 double-episode. Eberhard and Markus continue the discussion with the issue of service reuse and a couple of development process issues. We also look at the duality between infrastructure development and application development in the context of an SOA. We then discuss the great spaghetti misunderstanding :-). We conclude this episode with a look at how to integrate BPM into the conceptual SOA framework we've built up to now, and we'll also briefly skim ove...more

  • Episode 32: Service Oriented Architecture, Pt.2a

    Oct 13 2006

    In this, as well as in the next episode Eberhard and Markus continue their discussion about SOA (the episode got too long, so we had to split it into two ... SOA 2a and SOA 2b). In this episode, we talk about the various perspectives on SOA (CBD, EAI, BPM), about fundamental requirements towards an SOA, and we discuss the role of models in defining sustainable architectures. We also discuss how a programming model based on the described approach typically looks like. We then discuss a number of ...more

  • Episode 31: Agile Documentation

    Oct 03 2006

    In this episode, our guest Andreas Rueping and Markus talk about documenting software. While this is a topic that many people don't like or consider fun, it is nonetheless very important. Based on his book, Agile Documentation, we talk about various aspects documenting software such as what to document, when to document, which media to use as well as specifically a number of layouting tips for nice documents.

  • Episode 30: Architecture Pt.3

    Sep 22 2006

    In this third Episode on software architecture, Michael and Markus talk about the basic tools that an architect uses when architecting systems. These tools include things like separation, abstraction, compression and sharing. We also relate these tools to the quality attributes we introduced in previous archtecture episodes.

  • Episode 29: Concurrency Pt.3

    Sep 12 2006

    The third part of our concurrency series by Michael and Alexander discusses how to build highly scalable servers. The discussion focusses especially on event-driven servers. As possible solution patterns a reactor-based design is suggested along-side several patterns for multi-threading issues: Reader/Writers Locks, Thread Pools, and Leader/Followers.

  • Episode 28: Type Systems

    Sep 02 2006

    In recent episodes we have discusses statically and dynamically typed languages and domain specific languages - topics that are much talked about in the community at the moment. In this episode we look at the foundation of programming languages : types. We explain what a type actually is, how type systems work and what polymorphism works.

  • Episode 27: Service Oriented Architecture Pt.1

    Aug 23 2006

    SOA (Service Oriented Architecture) appears to be just another hype - after all we have been building distributed systems for quite a while now. But the real value of SOA is non-technical. In this episode Eberhard and Markus discuss the advantages and disadvantages, what SOA actually is and how it compares to other approaches that have been tried out before.

  • Episode 26: Interview Jutta Eckstein

    Aug 13 2006

    In this Episode, Arno, Bernd and Markus interview Jutta Eckstein. Jutta is a pioneer and expert on using Agile software development, specifically in larger teams. In the interview we talk about the agile manifesto, the role of personal relationships and trust in software projects, differences between agility in the small and in the large, as well as offshoring.

  • Episode 25: Architecture Pt. 2

    Aug 03 2006

    In this Episode, Michael and Markus continue the discussion about the fundamentals of software architecture (we're doing it without Alex, because it is really hard to find a suitable time for all of us on the phone :-)). We talk about the various quality attributes (such as performance, scalability, maintainability and many more) and how they relate to each other.

  • Episode 24: Development Processes Pt.1

    Jul 24 2006

    In this episode Arno and Alex talk about the basics of software development processes. They discuss why and when software development processes are needed and also why some developers don't like them. They discuss the theories behind different processes and talk about defined vs empiric processes in general. This episode is the first in a row that will later on describe specific processes like eXtreme programming or the unified process.

  • Episode 23: Architecture Pt. 1

    Jul 14 2006

    This is the first of a series of Episodes on Software Architecture. Alex, Michael and Markus talk about rather fundamental topics in this episode, we'll go into much more detail in subsequent episodes in that series. Topics in this episode include: What is architecture, how is it different from design what different kinds of architecture are there in addition to software architecture the role of the architect, do we have one or more? architecture in agile software development tasks o...more

  • Episode 22: Feedback

    Jul 09 2006

    This is an episode with some more of your feedback. Specifically, the episode also contains a 5 minute section from Geert Bevin where he explains how Continuations are used an implemented in the Rife Framework. This is in response to a discussion about continuations and Rife in Episode 15, Future of Enterprise Java. We also have some feedback from Bill Pugh about flaws in our description about the problems of double-checked locking in Java.

  • Episode 21: Error Handling Pt. 2

    Jul 04 2006

    In this Episode, Arno and Michael take a closer look at Exceptions and Error conditions, how to categorize them and how to deal with them. We look at the different levels of guarantee that a piece of code can provide with regard to exceptional condition and finish with a discussion of a number of best practices and their respective trade-offs.

  • Episode 20: Interview Michael Stal

    Jun 24 2006

    In this Episode, we talk to Michael Stal, a Senior Principal Engineer at Siemens Corporate Technology, POSA 1 and 2 Co-Author and Editor of the german JavaSpetrum magazine. Since Michael's core focus is middlware, much of our discussion centered around that topic. Webservices and SOA, of course, have also been covered. Other topics include Java vs. .NET as well as Patterns.

  • Episode 19: Concurrency Pt. 2

    Jun 14 2006

    In this second part of our concurrency series Michael and Alexander talk about basic patterns for concurrent programming, such as Active and Monitor Object, Scoped Locking and Futures. Further, they discuss some architectural considerations regarding the number of threads and resource usage in general. For more information, see the references for part one as well as the following links

  • Episode 18: Resource Management

    Jun 04 2006

    In this episode Michael and our guest Prashant Jain talk about patterns for resource management. Efficient management of resources is critical in the execution of any kind of software. Ranging from embedded software in a mobile device to software in a large enterprise server, it is important that the resources, such as memory, threads, file handles, or network connections, are managed efficiently to allow the systems to function properly and effectively. Michael and Prashant discuss various patt...more

  • Episode 17: Feedback and Roadmap

    May 29 2006

    This is a short episode that outlines the upcoming episodes and interviews, as well as reports on some listener feedback.

  • Episode 16: MDSD Pt. 3, Hands-On

    May 25 2006

    This episode provides a hands-on guided tour through a simple model-driven software project. It is based on an actual code sample (see link below) and takes a look at the typical steps of real-life code generation: prototypical implementation, defining the metamodel, reading a model into a metamodel instance, writing templates and validating the model. The example for the episode uses openArchitectureWare as a generator environment, but the overall approach is tool independent. This episode is t...more

  • Episode 15: The Future of Enterprise Java

    May 15 2006

    A very important area for Java are Enterprise Systems. With the advent of new technologies like Ruby on Rails, Java EE 5 or EJB 3 the landscape for Enterprise Systems appears to be changing a lot at the moment. In this episode Markus talks with Eberhard about what Enterprise Java actually is, why and where it is used. Based on that they discuss what the future might look like and how to make Enterprise Java shine in the future.

  • Episode 14: Interview Ted Neward

    May 05 2006

    In this Episode we talk to Ted Neward. Since Ted is active in the .NET and Java universes, we started out by discussing some of the differences between the two platforms. The main discussion, however, focussed on new features in the C# 3.0 language. These include LINQ (language-integrated query). A very interesting discussion about extension methods, lamda expression, typing (dynamic, duck, compiler) and other language "tricks" follows. We also visited the topic of language development on the .N...more

  • Episode 13: Ruby in Practice

    Apr 26 2006

    Ruby has been getting more and more attention by the developer community over the last couple of years. Nevertheless Ruby as language and as a plattform is not too widespread. Most developers don't know people who have actually done commercial Ruby projects. Therefore it is sometimes hard to judge if Ruby is just a hype topic or if Ruby can be used for serious projects today. In this episode Alexander speaks with Thomas Quas about a commercial Ruby project Thomas finished a while ago. Thomas sha...more

  • Episode 12: Concurrency Pt. 1

    Apr 18 2006

    This is the first part of a series of Concurrency episodes. In this part Alex and Michael motivate and introduce the topic. We explain fundamental terms, such as thread, process, or mutex and dicuss typical challenges, such as deadlocks and race conditions.

  • Episode 11: Interview Gregor Kiczales

    Apr 08 2006

    In this Episode we have the pleasure of talking with Gregor Kiczales. Gregor is one of the fathers of aspect-oriented programming (AOP). Today he is a professor of computer science at the University of British Columbia. Back in his days at Xerox Parc, he and a number of other people worked on the early forms of AOP as well as on some of its forerunners, such as meta object protocols. In this interview, we talk about a number of interesting topics, such as the history of AOP, the relationship of ...more

  • Episode 10: Remoting Pt. 2

    Mar 29 2006

    This is the second part of the remoting infrastructures discussion started in Episode 9. We take a look at how remoting infrastructures such as CORBA, .NET Remoting or Web Services work internally. This includes the low level details of the transport layer, marshalling, client proxies as well as interceptors and asynchronous communication. At the end, Michael will explain how all this relates to CORBA and Markus will map the concepts to .NET remoting. We don't have additional links in these show...more

  • Episode 9: Remoting Pt.1 and Listener Feedback

    Mar 19 2006

    This Episode as well as the next one take a look at remoting infrastructures such as CORBA, .NET Remoting or Webservices. In this first part we will take a look at why remote communication is necessary in the first place, what remoting middleware can do for you as well as which other middleware technologies exist in addition to OO-RPC systems, such as messaging middleware. Finally, we conclude with a brief overview of what the broker pattern can do for us in the context of remoting middleware.

  • Episode 8: Interview Eric Evans

    Mar 08 2006

    Eric Evans is the author of the well known Domain-Driven Design book. In his day job he works as a consultant and coach for his own company, Domain Language. In this interview, Eric talks about the essential building blocks of domain-driven design as well as about a set of best practices on how to address complex projects. In a third part, he elaborates on the relationship of domain-driven design and MDSD/MDA.

  • Episode 7: Error Handling

    Feb 27 2006

    This week, Arno and Markus take a look at error handling at the architectural level. They discuss the different kinds of errors, the groups of people who need to know about them and proven high-level approaches. Later episodes will investigate more technical aspects of error handling, such as idioms for using exceptions or a discussion of checked vs. unchecked exceptions.

  • Episode 6: Model-Driven Software Development Pt. 2

    Feb 18 2006

    After discussing some of the more technical aspects of MDSD in the last episode, we take a look at other important topics in this one. This includes some tips on how to introduce MDSD into projects and how the development process has to be adapted for this to work, as well as a look at the return on investment for MDSD. The relationship of MDSD and Agile software development is also discussed. Finally, we take a look at offshoring in the context of MDSD.

  • Episode 5: Model-Driven Software Development Pt. 1

    Feb 09 2006

    In this Episode, Eberhard and Markus provide an introduction to Model-Driven Software Development. Since the discussion turned out to be too long, we separated things into two episodes, thus Episode 6 will be the second part of this discussion. In this first part we disucsss core concepts of MDSD, the relationship to MDA, and hint at a couple of tools.

  • Episode 4: Scripting Languages

    Feb 01 2006

    In this Episode, Alexander and Markus talk about scripting languages. Topics include the definition of what a scripting language is, typical usage scenarios, performance issues, programming styles and IDE support. In later Episodes we will talk about more specific topics, such as dynamic typing, reflection, functional programming as well as specific languages such as Ruby.

  • Episode 3: Interview Doug Schmidt

    Jan 25 2006

    In this episode we talk with Doug Schmidt. Doug is a professor of computer science at Vanderbilt University and a well-respected authority in the fields of middleware, patterns and model-driven development. In this interview we talk about these topics in the context of distributed, realtime embedded (DRE) systems.

  • Episode 2: Dependencies

    Jan 24 2006

    Eberhard and Markus discuss the important topic of associations and dependencies in this show. While OO languages provide direct support for subtyping, most don't provide a first-class construct for other relationships between objects. The discussion elaborates on the problem and looks at various remedies, most importantly, dependency injection.

  • Episode 1: Patterns

    Jan 22 2006

    In this episode Michael and Markus talk about patterns. Starting with some of their "most used" patterns, they go into some detail about the history of patterns. They then discuss the various pattern forms as well as some misconceptions about patterns. Other topics include the domains that are covered by patterns as well as pattern languages.

  • Episode 0: About

    Jan 21 2006

    This is the first episode (actually, episode zero) of software engineering radio. The episode does not contain real content, rather, Markus explains what the podcast is all about.