Facebook Engineering Process with Kent Beck (Repeat)
Play • 50 min

Originally published August 28, 2019

Kent Beck is a legendary figure in the world of software engineering. 

Kent was an early advocate of Test-Driven Development (TDD), and popularized the idea of writing unit tests before writing code that would satisfy those unit tests. A unit test isolates and tests a small piece of functionality within a large piece of software. Practitioners of Test-Driven Development write tens or hundreds of tests in order to cover a large variety of cases that could potentially occur within their software.

When Kent Beck joined Facebook in 2011, he was 50 years old and thought he had seen everything in the software industry. During Facebook Boot Camp, Kent started to realize that Facebook was very different than any other company he had seen. Facebook Boot Camp is the six-week onboarding process that every new hire learns about the software practices of the company.

After graduating Facebook Boot Camp, Kent began to explore Facebook’s codebase and culture. He found himself rethinking many of the tenets of software engineering that he had previously thought were immutable.

Kent joins the show to discuss his time at Facebook, and how the company’s approach to building and scaling products thoroughly reshaped his beliefs about software engineering.

Sponsorship inquiries: sponsor@softwareengineeringdaily.com

The post Facebook Engineering Process with Kent Beck (Repeat) appeared first on Software Engineering Daily.

Google Cloud Platform Podcast
Google Cloud Platform Podcast
Google Cloud Platform
Cloud Spanner Revisited with Dilraj Kaur and Christoph Bussler
Mark Mirchandani and Stephanie Wong are back this week as we learn about all the new things happening with Google Cloud Spanner. Our guests this week, Dilraj Kaur and Christoph Bussler, describe Cloud Spanner as a fully managed relational database that boasts unlimited scaling and advanced consistency and availability. Unlimited scaling truly means unlimited, and Chris explains why Cloud Spanner offers this feature and how it’s making database design and development easier. Dilraj and Chris tell us all about the cool new features Spanner has developed, like generated columns and foreign keys, and how customer needs influenced these developments. Chris walks us through the process of using some of these new features, including how developers can monitor their database systems. Managed backups and multi-region configuration are additional recent additions to Cloud Spanner, and our guests explain how these are used by current enterprise clients. Dilraj and Chris explain the automatically managed features of Spanner versus the customer managed features and how people set up and manage database projects. We hear examples of companies using Cloud Spanner and how it has improved their businesses. Dilraj Kaur Dilraj Kaur is an Enterprise Customer Engineer with specialization in Data Management. She has been with Google for about 2.5 years and is based in Atlanta. Christoph Bussler As a Solutions Architect Chris is focusing on databases, data migration and data integration in enterprise customer settings. See his professional work and background on his website. Cool things of the week * New to Google Cloud? Here are a few free trainings to help you get started blog * Start your skills challenge today site * Service Directory is generally available: Simplify your service inventory blog Interview * Google Cloud Spanner site * GCP Podcast Episode 62: Cloud Spanner with Deepti Srivastava podcast * Using the Cloud Spanner Emulator docs * Cloud Spanner Ecosystem site * Cloud Spanner Qwiklabs site * Google Cloud Platform Community On Slack site * Creating and managing generated columns docs * WITH Clause docs * Foreign Keys docs * Numeric Data Type docs * Information schema docs * Overview of introspection tools docs * Backup and Restore docs * Multi-region configurations docs * ShareChat: Building a scalable data-driven social network for non-English speakers globally site * Blockchain.com: Streamlining infrastructure for the world’s most dynamic financial market site * What is Cloud Spanner? video What’s something cool you’re working on? Mark has been working on budgeting blog posts, including Protect your Google Cloud spending with budgets. Stephanie is working on her data center animation series
41 min
Kubernetes Podcast from Google
Kubernetes Podcast from Google
Adam Glick and Craig Box
Security and Snyk, with Kamil Potrec
Kamil Potrec is a Senior Security Engineer at Snyk, working on security around Kubernetes and cloud platforms. He joins the show to discuss how to think about securing your infrastructure, the different arts (and colors) of offensive and defensive security, and what not to lose sleep over. Do you have something cool to share? Some questions? Let us know: * web: kubernetespodcast.com * mail: kubernetespodcast@google.com * twitter: @kubernetespod Chatter of the week * Episode 23, with Andrew Philips and Lars Wander * A pile of mail and a bike News of the week * Red Hat OpenShift 4.7 is GA * Fairwinds Insights 3.0 * Envoy zero-day patched * Istio security bulletin * Sysdig contributes Falco modules to the CNCF * StorageOS raises $10m in Series B * Platform9 raises $12.5m in Series D * CNCF relaunches Kubernetes Community Day with KCD Africa and Bengaluru Links from the interview * Offensive unit in American Football * Hand-egg * Red and blue teams * Unreal Tournament * Capture the flag * Kubernetes secrets * Design document * Encrypting secrets at the application layer * Antivirus software * Tracer-tee * SolarWinds attack * Reflections on Trusting Trust by Ken Thompson * left-pad deleted from NPM * Snyk Open Source * The open source parts * Snyk vulnerability database * MITRE CVE database * Kubernetes security at Snyk * Deploy only trusted containers to GKE * Application threat modeling * Kubernetes security best practices, including security context, AppArmor, gVisor etc * CVE-2020-8554: man-in-the-middle attack using ExternalIP services * CVE-2020-14386: packet socket vulnerability with user namespaces enabled * Earlier related work: CVE-2017-7308 and CVE-2016-8655 * Project Zero writeup * Rewrite it in Rust! * Kamil Potrec on LinkedIn
40 min
The Cloudcast
The Cloudcast
Cloudcast Media
Solving Developer’s Security Challenges
Shira Shamban (@ShambanIT, CEO @SolvoCloud) talks about easily bringing security to CI/CD pipelines and software development, the rise of DevSecOps and "Shifting Left. *SHOW: *494 *SHOW SPONSOR LINKS:* * CBT Nuggets: Expert IT Training for individuals and teams * Sign up for a CBT Nuggets Free Learner account and enter to win a 6-month Premium subscription. * Qumulo Homepage: Manage File Data at Scale, Anywhere * Test Drive Qumulo: Try Qumulo for free, no downloads or setup required * Datadog Security Monitoring Homepage: Modern Monitoring and Analytics * Try Datadog yourself by starting a free, 14-day trial today. Listeners of this podcast will also receive a free Datadog T-shirt. *CLOUD NEWS OF THE WEEK *- http://bit.ly/cloudcast-cnotw *CHECK OUT OUR NEW PODCAST - **"CLOUDCAST BASICS"* *SHOW NOTES:* * Solvo Homepage * Solvo Intro Video * SheCodes * OWASP *Topic 1 - *Welcome to the show. Tell us a little bit about your background, you have a very interesting journey starting in cybersecurity for the Isreal Defense Force all the way to CEO of a newly funded startup.  *Topic 2 - *The rise of CI/CD created some great benefits to software development, it also created some security challenges. Let’s start there, why do developers seem to have so many challenges with security, especially in production? *Topic 3 - *Increasingly we hear about the concept of DevSecOps, you introduced the term “Shifting Left”. What does that mean and how does this relate to the larger concept of DevSecOps? *Topic 4 - *When a developer pushes code, where is the friction from a security perspective? How does Solvo solve this problem as code is pushed and how do you integrate with the cloud providers to make sure a least-privilege model is used? You recently released a security tool for health checks of your cloud accounts? (link in the show notes) *Topic 5 - *We recently raised your first round of funding completely remotely. Tell us about the experience and challenges you faced.  *Topic 6 - *You are passionate about empowering women and under-represented communities in our industry. Tell us about your ongoing partnerships with SheCodes, Cyber Ladies and other mentoring programs you are involved with. *FEEDBACK?* * Email: show at thecloudcast dot net * Twitter: @thecloudcastnet
37 min
Python Bytes
Python Bytes
Michael Kennedy and Brian Okken
#222 Autocomplete with type annotations for AWS and boto3
Sponsored by Linode! pythonbytes.fm/linode Special guest: Greg Herrera YouTube live stream for viewers: Watch on YouTube Michael #1: boto type annotations * via Michael Lerner * boto3's services are created at runtime * IDEs aren't able to index its code in order to provide code completion or infer the type of these services or of the objects created by them. * Type systems cannot verify them * Even if it was able to do so, clients and service resources are created using a service agnostic factory method and are only identified by a string argument of that method. * boto3_type_annotations defines stand in classes for the clients, service resources, paginators, and waiters provided by boto3's services. Example with “bare” boto3: Example with annotated boto3: Brian #2: How to have your code reviewer appreciate you * By Michael Lynch * Suggested by Miłosz Bednarzak * Actual title “How to Make Your Code Reviewer Fall in Love with You” * but 🤮 * even has the words “your reviewer will literally fall in love with you.” * literally → figuratively, please * Topic is important though, here are some good tips: * Review your own code first * “Don’t just check for mistakes — imagine reading the code for the first time. What might confuse you?” * Write a clear change list description * “A good change list description explains what the change achieves, at a high level, and why you’re making this change.” * Narrowly scope changes * Separate functional and non-functional changes * This is tough, even for me, but important. * Need to fix something, and the formatting is a nightmare and you feel you must blacken it. Do those things in two separate merge requests. * Break up large change lists * A ton to write about. Maybe it deserves 2-3 merges instead of 1. * Respond graciously to critiques * It can feel like a personal attack, but hopefully it’s not. * Responding defensively will only make things works. Greg #3: REPODASH - Quality Metrics for Github repositories * by Laurence Molloy * Do you maintain a project codebase on Github? * Would you like to be able to show the maturity of your project at a glance? * Walk through the metrics available * Use-case Michael #4: Extra, extra, extra, extra, hear all about it * Python 3 Float Security Bug * Building Python 3 from source now :-/ It’s still Python 3.8.5 on Ubuntu with the kernel patch just today! (Linux 5.4.0-66 / Ubuntu 20.04.2) * Finally, I’m Dockering on my M1 mac via: * docker context create remotedocker --docker "host=ssh://user@server" * docker context use remotedocker * docker run -it ubuntu:latest bash now works as usual but remotely! * Why I keep complaining about merge thing on dependabot. Why!?! ;) * Anthony Shaw wrote a bot to help alleviate this a bit. More on that later. Brian #5: testcontainers-python * Suggested by Josh Peak * Why mock a database? Spin up a live one in a docker container. * “Python port for testcontainers-java that allows using docker containers for functional and integration testing. Testcontainers-python provides capabilities to spin up docker containers (such as a database, Selenium web browser, or any other container) for testing.” import sqlalchemy from testcontainers.mysql import MySqlContainer with MySqlContainer('mysql:5.7.32') as mysql: engine = sqlalchemy.create_engine(mysql.get_connection_url()) version, = engine.execute("select version()").fetchone() print(version) # 5.7.32 * The snippet above will spin up a MySql database in a container. The get_connection_url() convenience method returns a sqlalchemy compatible url we use to connect to the database and retrieve the database version. Greg #6: The Python Ecosystem is relentlessly improving price-performance every day * Python is reaching top-of-mind for more and more business decision-makers because their technology teams are delivering solutions to the business with unprecedented price-performance. * The business impact keeps getting better and better. * What seems like heavy adoption throughout the economy is still a relatively small-inroad compared to what we’ll see in the future. It’s like water rapidly collecting behind a weak dam. * It’s an exciting time to be in the Python world! Extras: Brian: * Firefox 86 enhances cookie protection * sites can save cookies. but can’t share between sites. * Firefox maintains separate cookie storage for each site. * Momentary exceptions allowed for some non-tracking cross-site cookie uses, such as popular third party login providers. Joke: 56 Funny Code Comments That People Actually Wrote: These are actually in a code base somewhere (a sampling): /* * Dear Maintainer * * Once you are done trying to ‘optimize’ this routine, * and you have realized what a terrible mistake that was, * please increment the following counter as a warning * to the next guy. * * total_hours_wasted_here = 73 */ // sometimes I believe compiler ignores all my comments // drunk, fix later // Magic. Do not touch. /*** Always returns true ***/ public boolean isAvailable() { return false; }
38 min
The .NET Core Podcast
The .NET Core Podcast
Jamie Taylor
Picking the Right Azure Resources with Barry Luijbregts
Support for this episode comes from RJJ Software Ltd RJJ Software is dedicated to helping you to realise your company's digital potential through innovative solutions using the latest technologies. Remember: you can also always follow the show on twitter @dotnetcoreshow, and the shows host on twitter @podcasterJay In this episode of the .NET Core Podcast we chatted with Barry Luijbregts (aka Azure Barry) about the many different Azure resources and how to pick the "best" ones for your project The full show notes, including links to some of the things we discussed and a full transcription of this episode, can be found at https://dotnetcore.show/episode-70-picking-the-right-azure-resources-with-barry-luijbregts/ Support for this episode also comes from Datadog. Head over to datadoghq.com/dotnetcore, sign up for a 14-day trial, and claim a free t-shirt! Remember to rate and review the show on Apple Podcasts, Podchaser, or wherever you find your podcasts, this will help the show's audience grow. Or you can just share the show with a friend. You can support the show by making a monthly donation one the show's Patreon page at: https://www.patreon.com/TheDotNetCorePodcast The .NET Core Podcast is a proud member of Jay and Jay Media. If you like this episode, please consider supporting our Podcasting Network. One $3 donation provides a week of hosting for all of our shows. You can support this show, and the others like it, at https://ko-fi.com/jayandjaymedia
1 hr 18 min
Streaming Audio: A Confluent podcast about Apache Kafka
Streaming Audio: A Confluent podcast about Apache Kafka
Confluent, original creators of Apache Kafka®
Becoming Data Driven with Apache Kafka and Stream Processing ft. Daniel Jagielski
When it comes to adopting event-driven architectures, a couple of key considerations often arise: the way that an asynchronous core interacts with external synchronous systems and the question of “how do I refactor my monolith into services?” Daniel Jagielski, a consultant working as a tech lead/dev manager at VirtusLab for Tesco, recounts how these very themes emerged in his work with European clients.  Through observing organizations as they pivot toward becoming real time and event driven, Daniel identifies the benefits of using Apache Kafka® and stream processing for auditing, integration, pub/sub, and event streaming. He describes the differences between a provisioned cluster vs. managed cluster and the importance of this within the Kafka ecosystem. Daniel also dives into the risk detection platform used by Tesco, which he helped build as a VirtusLab consultant and that marries the asynchronous and synchronous worlds. As Tesco migrated from a legacy platform to event streaming, determining risk and anomaly detection patterns have become more important than ever. They need the flexibility to adjust due to changing usage patterns with COVID-19. In this episode, Daniel talks integrations with third parties, push-based actions, and materialized views/projects for APIs. Daniel is a tech lead/dev manager, but he’s also an individual contributor for the Apollo project (an ICE organization) focused on online music usage processing. This means working with data in motion; breaking the monolith (starting with a proof of concept); ETL migration to stream processing, and ingestion via multiple processes that run in parallel with record-level processing. EPISODE LINKS * Building an Apache Kafka Center of Excellence Within Your Organization ft. Neil Buesing  * Risk Management in Retail with Stream Processing * Event Sourcing, Stream Processing and Serverless * It’s Time for Streaming to Have a Maturity Model ft. Nick Dearden * Read Daniel Jagielski's articles on the Confluent blog * Join the Confluent Community * Learn more with Kafka tutorials, resources, and guides at Confluent Developer * Live demo: Kafka streaming in 10 minutes on Confluent Cloud * Use *60PDCAST* to get an additional $60 of free Confluent Cloud usage (details)
48 min
Syntax - Tasty Web Development Treats
Syntax - Tasty Web Development Treats
Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers
Hasty Treat - Hireable Skills for 2021
In this Hasty Treat, Scott and Wes talk about hireable skills or 2021 — what you need to know to get a job and grow in your career this year! Freshbooks - Sponsor Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section. Sentry - Sponsor If you want to know what’s happening with your errors, track them with Sentry. Sentry is open-source error tracking that helps developers monitor and fix crashes in real time. Cut your time on error resolution from five hours to five minutes. It works with any language and integrates with dozens of other services. Syntax listeners can get two months for free by visiting Sentry.io and using the coupon code “tastytreat”. Show Notes 04:17 - Code in general * Clean, commented, organized * Take the extra hour before an application and polish it 06:10 - JS * Basics of the language - storing data in Arrays and Objects * Looping and flow control * Array methods * Promises + async await * DOM basics - select an element, listen for clicks, update elements * Node basics * Most of your JS basics apply here * Read Files, write files * Fetch data and return it 08:38 - CSS * Attention to detail - pixel-perfect replication of designs * Works well on mobile * No reliance on libraries - complete reliance on Bootstrap or Tailwind is a red flag. If you use these things, explain clearly why they are useful to you (e.g. augment your skills, not relied on). 12:54 - Real-world libraries * One of the following: React, Vue, Angular * Node.js - sending Server data as a response * JSON * Express, Next.js * Popular helper libs * Date functions / Moment (Moment is old but its still 2x more popular) * Lodash * CSS * Scoped CSS * Pattern libraries 17:15 - What about data structures and algorithms? * Yes you obviously need to know about arrays and objects - probably maps and sets too * Links lists? Tree structures? Traversal? * https://twitter.com/wesbos/status/1353729683486076930 20:26 - Soft skills * Know how to talk to PMs and other devs. * Know how to stay on top of timelines and schedules while communicating. * You won’t last long in any work environment where you aren’t able to fit in. * Many devs sometimes get a big head about doing tech - this is not something you want to emulate. Ignore any kind of internal “us vs them” attitude. It’s about the big picture and you’ll go further. * Write good, short, emails that don’t sound like you are mad. Links * LeetCode * Syntax 117: Hasty Treat - How To Email Busy People Tweet us your tasty treats! * Scott’s Instagram * LevelUpTutorials Instagram * Wes’ Instagram * Wes’ Twitter * Wes’ Facebook * Scott’s Twitter * Make sure to include @SyntaxFM in your tweets
26 min
More episodes
Search
Clear search
Close search
Google apps
Main menu