ad

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

Kief Morris talks to Sven Johann about Infrastructure as Code and why it is important in the “Cloud Age”. Kief talks about the practices and benefits and why you should treat your servers as cattles, not pets.




ad

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

Eberhard Wolff talks with Phillip Carter about F# - a multi-paradigm programming language supporting object-oriented, imperative, and functional programming paradimgs. Its unique features make it especially fit for parallel programming or DSLs.




ad

SE-Radio Episode 270: Brian Brazil on Prometheus Monitoring

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 is based off of the Borgmon monitoring tool, widely used at Google, where Brian previously worked. Jeff and Brian discuss the tradeoffs of choosing not to replicate our monitoring data. In some situations, the monitoring system will lose data because of this decision. Other topics that are discussed are distributed consensus tools, integrations with Prometheus, and the broader topic of monitoring itself.




ad

SE-Radio Episode 271: Idit Levine on Unikernelsl

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 include the the Linux kernel, requirements for a cloud operating system, and how unikernels compare to Docker containers.




ad

SE-Radio Episode 272: Frances Perry on Apache Beam

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 other methods discussed between Jeff and Frances. Apache Beam defines a way for users to define their pipelines in a way that is agnostic of the underlying execution engine, similar to how SQL provides a unified language for databases. This seeks to solve the churn and repeated work that has occurred in the rapidly evolving stream processing ecosystem.




ad

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

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: estimation, planning and monitoring a Scrum project from the beginning to a possible end. They close with estimation techniques in the large (counting, empirical data) and in the small (e.g. poker planning).




ad

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

Felienne talks with Sam Aaron on Sonic Pi about how he designed Sonic Pi, a language, both for professional musicians performing with code as well as for schoolchildren.




ad

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

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 your more desirable as an employee.




ad

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

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 focus on development of operational software to minimize manual tasks; the emphasis on reliability; Dickerson's hierarchy of reliability; how reliability can be measured; is there such a thing as too much reliability?; can Google's approach to SRE be applied outside of Google?; Björn's experience in applying SRE to Soundcloud - what worked and what did not; how can engineers best apply SRE to their organizational situation?; the importance of monitoring; monitoring and alerting; being on call, responding to incidents; the importance of documentation for responding to problems; they wrap up with a discussion of why people from non-computer science backgrounds are often found in devops and SRE.




ad

SE-Radio Episode 277: Gil Tene on Tail Latency

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 a system? What is the difference between response time and service time? How does queuing within a system contribute to response time? Java garbage collection and its contribution to latency outliers. How can we build systems with bounded tail latency out of components with variable latency? What type of observability to do we need to build systems with bounded latency? How is latency a driver of capacity planning?




ad

SE-Radio Episode 278: Peter Hilton on Naming

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.




ad

SE-Radio Episode 279: Florian Gilcher on Rust

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 other features like traits, generics and macros). The show finishes with: the evolution of Rust based, features of libraries, and how the community works.




ad

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

Host Marcus Blankenship talks with Gerald Weinberg about his new book, Errors: Bugs, Boo-boos, and Blunders, focusing on why programmers make errors, how teams can improve their software, and how management should think of and discuss errors.




ad

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

Edaena Salinas talks with James Whittaker about Career Strategy in the technology field. James is a Distinguished Technical Evangelist at Microsoft and author of “How Google Tests Software” and the viral blog post “Why I left Google”. Topics include: Career Management, the role of mentors and managers in your career, a discussion on 1:1 meetings, job specialization and advice on when to switch jobs.




ad

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

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.




ad

SE-Radio Episode 283: Alexander Tarlinder on Developer Testing

Felienne talks with Alexander Tarlinder on how to test as a developer. What can and should developers test?




ad

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

John Allspaw CTO of Etsy speaks with Robert Blumen about systemic failures and outages. Why they cannot be totally prevented, how to respond, and what we can learn from them.




ad

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

James Cowling of Dropbox tells Robert Blumen about their massive migration from Amazon’s S3 to their own distributed storage system.




ad

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

Show host 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 is also an instructor of the Intro to Machine Learning online course from Udacity and host of Linear Digressions, a podcast about machine learning. Topics include: machine learning, data science, a career in machine learning.




ad

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

Neal Ford chats with Kim Carter about the required skills of a Software Architect, creating and maintain them, transition roles. The importance of history, developing soft skills, and dealing with losing technical skills.




ad

SE-Radio Episode 288: DevSecOps

Francois Raynaud and Kim Carter cover moving to DevSecOps from traditional delivery approaches. Shifting security focus up front. Building a development team with not only development specialties, but also security and operations.




ad

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

James Turnbull joins Robert Blumen for a discussion of Terraform, an infrastructure-as-code tool, and a deep dive into how Terraform implements the declarative programming model.




ad

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

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 as orchestration principles that are baked into Docker Swarm, such as mutual TLS/PKI by default, secrets distribution, least privilege, content scanning, image signatures, and secure/trusted build pipelines. Diogo also shares his thoughts around the attack surface of the Linux kernel; networking, USB, and driver APIs; and the fact that application security remains more important to focus our attention on and get right.




ad

SE-Radio Episode 291: Morgan Wilde on LLVM

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), which is similar to the Java bytecode: every programming language that compiles down to IR can leverage the same optimizations of that IR. The conversation concludes with a discussion of applications of LLVM and the future of the ecosystem.




ad

SE-Radio Episode 292: Philipp Krenn on Elasticsearch

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 discussion of Elasticsearch’s scalability ensues, including basic terminology and an explanation of other applications of Elasticsearch.




ad

SE-Radio Episode 293: Yakov Fain on Angular

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 framework; 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 particular); how to test an Angular application; security concerns of web applications; who developed Angular and how it is supported, and performance considerations of an Angular application.




ad

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

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 to how the process is improved by incorporating external resources using machine learning. Topics include: log analysis, machine learning, operations.




ad

SE-Radio Episode 295: Michael Feathers on Legacy Code

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 more testable.




ad

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

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.




ad

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

Kishore Bhatia talks with Kieren James-Lubin about Blockchains. Topics include Blockchains, Cryptocurrency, Bitcoin, Ethereum, Smart Contract development with Solidity, ICO’s and Tokens.




ad

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

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.




ad

SE-Radio Episode 299: Edson Tirelli on Rules Engines

Robert Blumen talks to Edson Tirelli about business rules, rules engines, and the JBoss Drools engine.




ad

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

Nate Black talks with Jonathan Stark about 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.




ad

SE-Radio Episode 301: Jason Hand Handling Outages

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.




ad

SE-Radio Episode 302: Haroon Meer on Network Security

  1. Founder of Thinkst, Haroon Meer talks with Kim Carter about Network Security. Topics include how attackers are gaining footholds into our networks, moving laterally, and exfilling our precious data, as well as why we care and what software engineers can do about it.




ad

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

Felienne interviews Zachary Burt about freelancing as a career option. How does freelancing differ from employment? How to do personal marketing and sales? How to find a work-life balance when you are self-employed? We also cover practical tips like deciding on an hourly rate and managing demanding customers.




ad

SE-Radio Episode 304: Evgeny Shadchnev on Code Schools

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




ad

SE-Radio Episode 305: Charlie Berger on Predictive Applications

Edaena Salinas talks with Charlie Berger about Predictive Applications. The discussion begins with an overview of how to build a Predictive Application and the role of Machine Learning. It then explores different Machine Learning algorithms that can be implemented natively in a database.




ad

SE-Radio Episode 306: Ron Lichty on Managing Programmers

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.




ad

SE-Radio Episode 307: Harsh Sinha on Product Management

Bryan Reinero talks with Harsh Sinha, VP of  Engineering at TransferWise, about Product Management. Mr. Sinha details how requirements are derived from user needs, how to measure product success, and how successful product management is done.




ad

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

Bryan Reinero talks with Gregor Hohpe about IT Transformation, the process by which organizations adapt and reorganize themselves in response to evolution and how the Enterprise Architect leads that transformation.




ad

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

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.




ad

SE-Radio Episode 310: Kirk Pepperdine on Performance Optimization

Kirk Pepperdine talks with Diomidis Spinellis about performance optimization. Topics include development practices, tools, as well as the role of software architecture, programming languages, algorithms, and hardware advances.




ad

SE-Radio Episode 311: Armon Dadgar on Secrets Management

Armon Dadgar speaks to Matthew Farwell about Secrets Management.




ad

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

Edaena Salinas talks with Sachin Gadre about the internet of things. The discussion begins with an overview of what IoT is and how businesses are adopting it. It then explores the architecture of an IoT application and the security implications of these systems.




ad

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

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.




ad

SE-Radio Episode 314: Scott Piper on Cloud Security

Scott Piper and Kim Carter discuss Cloud Security. The Shared Responsibility Model, assets, risks, and countermeasures, evaluation techniques for comparing the security stature of CSPs. Scott discusses his FLAWS CTF engine. Covering tools Security Monkey and StreamAlert.




ad

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

Felienne interviews Jeroen Janssens about data science, examining the basic concepts, as well as the skills and tools needed to be(come) a data scientist.




ad

SE-Radio Episode 316: Nicolai Parlog on Java 9

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” dependency validation; module “requires” and “exports”: documentation as code and a new topic for code reviews; how to migrate an existing codebase to Java 9 and modules; benefits of Java modules: reliable configuration and a smaller Java runtime; the new Java release schedule.




ad

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

Kishore Bhatia talks with Travis Kimmel about Engineering Impact: In the age of data-driven decision making, how does one go about measuring, communicating, and improving engineering productivity? We’ll learn from Travis’ experience building data analytics tools in this space, with insights and best practices for engineering teams and business stakeholders for measuring value and productivity.