Software Engineering Radio - the podcast for professional software developers
Alle afleveringen
750 afleveringen, van nieuw naar oud
-
SE Radio 299: Edson Tirelli on Rules Engines
8 augustus 2017 · 58 min
Robert Blumen talks to Edson Tirelli about business rules, rules engines, and the JBoss Drools engine.
-
SE Radio 298: Moshe Vardi on P versus NP
25 juli 2017 · 51 min
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. Lees meer
-
SE Radio 297: Kieren James-Lubin on Blockchain
18 juli 2017 · 53 min
Kishore Bhatia talks with Kieren James-Lubin about Blockchains. Topics include Blockchains, Cryptocurrency, Bitcoin, Ethereum, Smart Contract development with Solidity, ICO's and Tokens.
-
SE Radio 296: Type-Driven Development with Edwin Brady
10 juli 2017 · 58 min
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. Lees meer
-
SE Radio 295: Michael Feathers on Legacy Code
27 juni 2017 · 58 min
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. Lees meer
-
SE Radio 294: Asaf Yigal on Machine Learning in Log Analysis
20 juni 2017 · 41 min
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. Lees meer
-
SE Radio 293: Yakov Fain on Angular
5 juni 2017 · 56 min
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. Lees meer
-
SE Radio 292: Philipp Krenn on Elasticsearch
30 mei 2017 · 55 min
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. Lees meer
-
SE Radio 291: Morgan Wilde on LLVM
15 mei 2017 · 54 min
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. Lees meer
-
SE Radio 290: Diogo Mónica on Docker Security
8 mei 2017 · 1 uur 9 min
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. Lees meer
-
SE Radio 289: James Turnbull on Declarative Programming with Terraform
25 april 2017 · 1 uur 1 min
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.
-
SE Radio 288: Francois Raynaud on DevSecOps
18 april 2017 · 1 uur 17 min
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.
-
SE Radio 287: Success Skills for Architects with Neil Ford
11 april 2017 · 1 uur 6 min
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.
-
SE Radio 286: Katie Malone Intro to Machine Learning
28 maart 2017 · 49 min
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. Lees meer
-
SE Radio 285: James Cowling on Dropbox's Distributed Storage System
14 maart 2017 · 46 min
James Cowling of Dropbox tells Robert Blumen about their massive migration from Amazon's S3 to their own distributed storage system.
-
SE Radio 284: John Allspaw on System Failures: Preventing, Responding, and Learning From
7 maart 2017 · 52 min
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.
-
SE Radio 283: Alexander Tarlinder on Developer Testing
28 februari 2017 · 1 uur 10 min
Felienne talks with Alexander Tarlinder on how to test as a developer. What can and should developers test?
-
SE Radio 282: Donny Nadolny on Debugging Distributed Systems
14 februari 2017 · 1 uur 8 min
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.
-
SE Radio 281: James Whittaker on Career Strategy
7 februari 2017 · 50 min
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. Lees meer
-
SE Radio 280: Gerald Weinberg on Bugs Errors and Software Quality
24 januari 2017 · 58 min
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.
-
SE Radio 279: Florian Gilcher on Rust
10 januari 2017 · 1 uur 11 min
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. Lees meer
-
SE Radio 278: Peter Hilton on Naming
20 december 2016 · 49 min
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. Lees meer
-
SE Radio 277: Gil Tene on Tail Latency
14 december 2016 · 1 uur 3 min
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? Lees meer
-
SE Radio 276: Björn Rabenstein on Site Reliability Engineering
6 december 2016 · 57 min
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. Lees meer
-
SE Radio 275: Josh Doody on Salary Negotiation for Software Engineers
22 november 2016 · 1 uur 5 min
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. Lees meer
-
SE Radio 274: Sam Aaron on Sonic Pi
8 november 2016 · 1 uur 1 min
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.
-
SE Radio 273: Steve McConnell on Software Estimation
1 november 2016 · 1 uur 7 min
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). Lees meer
-
SE Radio 272: Frances Perry on Apache Beam
25 oktober 2016 · 58 min
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. Lees meer
-
SE Radio Episode 271: Idit Levine on Unikernelsl
11 oktober 2016 · 53 min
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. Lees meer
-
SE Radio 270: Brian Brazil on Prometheus Monitoring
4 oktober 2016 · 52 min
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. Lees meer
-
SE Radio 269: Phillip Carter on F#
27 september 2016 · 52 min
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.
-
SE Radio 268: Kief Morris on Infrastructure as Code
13 september 2016 · 1 uur
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.
-
SE Radio 267: Jürgen Höller on Reactive Spring and Spring 5.0
6 september 2016 · 53 min
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. Lees meer
-
SE Radio 266: Charles Nutter on the JVM as a Language Platform
16 augustus 2016 · 58 min
Charles Nutter from the JRuby project talks to Charles Anderson about JRuby and the Java Virtual Machine (JVM) as a platform for implementing programming languages. They begin by discussing the Java platform beyond just the Java language. As a case study in implementing a language other than Java on the JVM, they discuss JRuby - what it is and how it's implemented on the JVM. They discuss recent additions to the Java platform like the invoke-dynamic byte code and lambdas in Java 8. The conversation concludes by discussing the future of the Java language, platform, and virtual machine. Lees meer
-
SE Radio 265: Pat Kua on Becoming a Tech Lead
5 augustus 2016 · 1 uur 1 min
Johannes Thönes talks to Patrick Kua about the role of a technical lead and how to become one. The show starts with introducing the concept of a lead and contrasts the lead role with other roles, such as technical manager, architect and senior developer. The discussion continues to the responsibilities of a tech lead (supporting engineering practices, managing, resolving conflict, and growing people). The discussion continues on to talk about the challenges of becoming a tech lead and how to overcome them and closes with the question: "how can you tell if you are succeeding as a tech lead"? Lees meer
-
SE Radio 264: James Phillips on Service Discovery
3 augustus 2016 · 55 min
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 and how reliability is achieved as a distributed system. Finally, James discusses Consul, the functions it provides, and how to integrate it with existing applications, even if they use configuration files instead of a service discovery tool. Lees meer
-
SE Radio 263: Camille Fournier on Real-World Distributed Systems
19 juli 2016 · 59 min
Stefan Tilkov talks to Camille Fournier about the challenges developers face when building distributed systems, whether the can avoid building them at all, and what changes occur once they do.
-
SE Radio Episode 262: Software Quality with Bill Curtis
12 juli 2016 · 1 uur 8 min
Sven Johann talks with Bill Curtis about Software Quality. They discuss examples of failed systems like Obama Care; the role of architecture; move an org from chaos to innovation; relation between Lean, quality improvement and CMM; Team Software Process. Lees meer
-
SE Radio 261: David Heinemeier-Hansson on the State of Rails Monoliths and More
28 juni 2016 · 1 uur 3 min
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, and increasing complexity. David also talks about the downsides of building JavaScript-centric, "sophisticated" web UIs, and why he prefers well-structured, "majestic" monoliths to microservices. Lees meer
-
SE Radio 260: Haoyuan Li on Alluxio
14 juni 2016 · 44 min
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 system enabling data sharing across clusters at memory speed. Alluxio was formerly known as Tachyon. Haoyuan is the creator of Alluxio. Haoyuan was a member of the Berkeley AMPLab, which is the same research facility from which Apache Mesos and Apache Spark were born. In this episode, we discuss Alluxio, Spark, Hadoop, and the evolution of the data center software architecture. Lees meer
-
SE Radio 259: John Purrier on OpenStack
7 juni 2016 · 56 min
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. Lees meer
-
SE Radio 258: Cody Voellinger on Recruiting Software Engineers
24 mei 2016 · 1 uur
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 market from both sides: how companies define what they want, find the right people, and evaluate candidates, and how job seekers can position themselves for the role they want. Other topics include culture fit versus skill and resumes in an age of social networking. They conclude with a look at the mistakes that job seekers, recruiters, and companies should avoid. Lees meer
-
SE Radio 257: Michael Nygard on Clojure in Practice
17 mei 2016 · 57 min
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 typical web development projects as examples. Finally, the two discuss how well Clojure can be used in the face of long-running projects, and some typical obstacles and strategies for introducing it to real-world scenarios. Lees meer
-
SE Radio 256: Jay Fields on Working Effectively with Unit Tests
4 mei 2016 · 51 min
-
SE Radio 255: Monica Beckwith on Java Garbage Collection
26 april 2016 · 53 min
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 languages?; going off heap and other programming techniques to avoid garbage; the future of java GC. Lees meer
-
SE Radio 254: Mike Barker on the LMAX Architecture
11 april 2016 · 1 uur
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 system (broker and exchange); Mechanical Sympathy as an architectural driver; message flow using the Disruptor library; and lock-free algorithms. Mike and Sven wrap up by discussing how a well modeled domain model can improve the performance of any system; automated (performance) tests; continuous delivery; and measuring response times. Lees meer
-
SE Radio 253: Fred George on Developer Anarchy
24 maart 2016 · 56 min
Fred George talks with Eberhard about "Developer Anarchy" - a manager-less development approach Fred has been using very successfully in different organizations - combined with microservices.
-
SE Radio 252: Christopher Meiklejohn on CRDTs
15 maart 2016 · 55 min
Robert Blumen talks to Christopher Meiklejohn about conflict-free replicated data types. The discussion covers consistency in distributed systems, CRDTs, and their use in NoSQL databases.
-
SE Radio 251: Martin Klose on Code Retreats
3 maart 2016 · 52 min
Martin Klose talks with Eberhard Wolff about Coderetreats - events where developers practice development techniques to become better programmers. He explains how to join such events and what it takes to do your own Coderetreat.
-
SE Radio 250: Jürgen Laartz and Alexander Budzier on Why Large IT Projects Fail
22 februari 2016 · 43 min
Alex Budzier of the Oxford Saïd Business School and Jürgen Laartz of McKinsey Berlin join Robert Blumen to talk about the their research on large IT project failures. Why do large projects fail and to what extent are these failures avoidable?