Winamp Logo
Programming Throwdown Cover
Programming Throwdown Profile

Programming Throwdown

English, Technology, 1 season, 177 episodes, 2 days, 10 hours, 9 minutes
About
Programming Throwdown attempt to educate Computer Scientists and Software Engineers on a cavalcade of programming and tech topics. Every show will cover a new programming language, so listeners will be able to speak intelligently about any programming language.
Episode Artwork

176: MLOps at SwampUp

James Morse: Software Engineer at CiscoSystem Administrator to DevOpsDifference between DevOps and MLOpsGetting Started with DevOpsLuke Marsden: CEO of Helix MLHow to start a business at 15 years oldBTRFS vs ZFSMLOps: the intersection of software, DevOps and AIFine-tuning AI on the CloudSome advice for folks interested in ML OpsYuval Fernbach: CTO MLOps & JFrogStarting QuarkGoing from a jupyter notebook to productionML Supply ChainGetting started in Machine LearningStephen Chin: VP of DevRel at Neo4JDeveloper Relations: The JobWhat is a Large Language Model?Knowledge graphs and the Linkage ModelHow to Use Graph databases in EnterpriseHow to get into ML Ops ★ Support this podcast on Patreon ★
9/24/20241 hour, 58 minutes, 37 seconds
Episode Artwork

175: Resume Writing

175: Resume WritingIntro topic:  DSLR Photography vs Camera PhoneNews/Links:Free Internet while flying by abusing edits to your profile namehttps://robertheaton.com/pyskywifi/Making Animated Characters with AI Arthttps://www.youtube.com/watch?v=zSN76gb_Z28On 10x Engineershttps://stackoverflow.blog/2024/06/19/the-real-10x-developer-makes-their-whole-team-better/The Beauty and Challenges of AI-Generated Artistic Gymnasticshttps://www.youtube.com/watch?v=YwJIYj3hPAUBook of the ShowPatrick: The Three Body Problem by Cixin Liuhttps://amzn.to/3xNEoRBJason: The Checklist Manifestohttps://amzn.to/3W2JjpMPatreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the ShowPatrick: Super Mario Bros. Wonder (Nintendo Switch)https://amzn.to/3S9VJLfJason: Amazon Qhttps://marketplace.visualstudio.com/items?itemName=AmazonWebServices.amazon-q-vscodeTopic: Resume Writing (Courtesy of Matthew C.)Why have a resume?Many jobs require it to get into the considerationToday many are screened for keywords automaticallyLog for future youWhat is a resume?One-page descriptionKey accomplishments & experiencesComparison to CVReferencesHow to write a good resume?Do’sInclude your github if it has good contributionsBe specific (dates, locations, skills)Isolate your specific contributionsBe accurate/honestBe conciseBe ready to discuss any point you have on the resumeList hobbies/activities/extracurricularsDon’tsHave mistakes (especially dates)Use images (most companies use text extraction)Use it as a design portfolioPut social qualities (e.gs. hard-working, motivated, friendly)Use fancy templates/toolsResourcesManager Tools: How to scan resumes https://www.manager-tools.com/2016/05/how-scan-resume-part-1 Google docsLatex/Lyx for CVsHow to think about your career and how it impacts your future resume writing (career planning)Technologies and architectures more than specifics of project detailsHow various choices may age over time ★ Support this podcast on Patreon ★
8/16/20241 hour, 40 minutes, 55 seconds
Episode Artwork

174: Devops

Intro topic:  Social Media Auto Responder LLMNews/Links:Amazon releases Amazon Qhttps://press.aboutamazon.com/2024/4/aws-announces-general-availability-of-amazon-q-the-most-capable-generative-ai-powered-assistant-for-accelerating-software-development-and-leveraging-companies-internal-dataCheap RiscV “Super Cluster” from BitluniDIY 256-Core RISC-V super computerhttps://www.youtube.com/watch?v=-4d3PgEXhdYCH32V203Phi 3 Vision Releasedhttps://azure.microsoft.com/en-us/blog/new-models-added-to-the-phi-3-family-available-on-microsoft-azure/OllamaChatGPT 4ohttps://openai.com/index/hello-gpt-4o/Book of the ShowPatrick: MyFirstMillion Podcasthttps://www.mfmpod.com/Jason: A Path Towards Autonomous Machine Intelligencehttps://openreview.net/pdf?id=BZ5a1r-kVsfPatreon https://www.patreon.com/programmingthrowdown?ty=hTool of the ShowPatrick: Dave the Diverhttps://store.steampowered.com/app/1868140/DAVE_THE_DIVER/Jason: Turing Completehttps://store.steampowered.com/app/1444480/Turing_Complete/ Topic: DevOpsWhat is DevOpsDevOps vs SREWhy DevOps is importantEngineering time is expensiveOutages can hurt company metrics & reputationBuild & Testing InfrastructureBazel & Build/Test IdempotencyBuild/Test FarmsBuildBarnGithub ActionsJenkinsInfrastructure as codeTerraformBlue Green DeploymentContinuous Everything!Continuous IntegrationContinuous DeploymentHow to Measure DevOpsBuild TimesRelease cadenceBug tracking / round trip timesEngineer SurveysTime spent doing what you enjoyDevOps Horror Stories ★ Support this podcast on Patreon ★
6/10/20241 hour, 25 minutes, 47 seconds
Episode Artwork

173: Mocking and Unit Tests

173: Mocking and Unit TestsIntro topic:  HeadphonesNews/Links:Texas A&M University Physics Festivalhttps://physicsfestival.tamu.edu/Rust vs Cpp at GoogleLars Bergstrom (Google Director of Engineering): Rust teams at Google are as productive as the ones using Go and 2x those using Cpphttps://youtu.be/6mZRWFQRvmw?t=27012Is Cosine Similarity Really About Similarityhttps://arxiv.org/abs/2403.05440Xz utils supply chain attackAndres Freund at Microsofthttps://arstechnica.com/security/2024/04/what-we-know-about-the-xz-utils-backdoor-that-almost-infected-the-world/Book of the ShowPatrick:80/20 Running by Matt Fitzgeraldhttps://amzn.to/3xyEKLoJason: A Movie Making Nerdhttps://amzn.to/49ycDJjPatreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the ShowPatrick: Shapez Android: https://play.google.com/store/apps/details?id=com.playdigious.shapez&hl=en_US&gl=USShapez iOS: https://apps.apple.com/us/app/shapez-factory-game/id6450830779Jason: Dwarf Fortresshttps://store.steampowered.com/app/975370/Dwarf_Fortress/Topic: Mocking and Unit TestsWhat are Unit TestsBalance between utility, maintenance, and coverageUnit Test: testing small functionsRegression Test: Testing larger functionsSystem Test: End-to-end testing of programsWhat are mocks & fakesWhen to use mock vs. fakeMocking libraries in various languagesPython: https://docs.python.org/3/library/unittest.mock.htmlJava: https://github.com/mockito/mockitoC++:  https://github.com/google/googletest ★ Support this podcast on Patreon ★
4/29/20241 hour, 35 minutes, 22 seconds
Episode Artwork

172: Transformers and Large Language Models

172: Transformers and Large Language ModelsIntro topic: Is WFH actually WFC?News/Links:Falsehoods Junior Developers Believe about Becoming Seniorhttps://vadimkravcenko.com/shorts/falsehoods-junior-developers-believe-about-becoming-senior/Pure PursuitTutorial with python code: https://wiki.purduesigbots.com/software/control-algorithms/basic-pure-pursuit Video example: https://www.youtube.com/watch?v=qYR7mmcwT2w PID without a PHDhttps://www.wescottdesign.com/articles/pid/pidWithoutAPhd.pdfGoogle releases Gemmahttps://blog.google/technology/developers/gemma-open-models/Book of the ShowPatrick: The Eye of the World by Robert Jordan (Wheel of Time)https://amzn.to/3uEhg6vJason: How to Make a Video Game All By Yourselfhttps://amzn.to/3UZtP7bPatreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the ShowPatrick: Stadia Controller Wifi to Bluetooth Unlockhttps://stadia.google.com/controller/index_en_US.htmlJason: FUSE and SSHFShttps://www.digitalocean.com/community/tutorials/how-to-use-sshfs-to-mount-remote-file-systems-over-sshTopic: Transformers and Large Language ModelsHow neural networks store informationLatent variablesTransformersEncoders & DecodersAttention LayersHistoryRNNVanishing Gradient ProblemLSTMShort term (gradient explodes), Long term (gradient vanishes)Differentiable algebraKey-Query-ValueSelf AttentionSelf-Supervised Learning & Forward ModelsHuman FeedbackReinforcement Learning from Human FeedbackDirect Policy Optimization (Pairwise Ranking) ★ Support this podcast on Patreon ★
3/11/20241 hour, 26 minutes, 8 seconds
Episode Artwork

171: Compilers and Interpreters

Intro topic: Monitor setupsNews/Links:BlueScuti, Willis, beats Tetrishttps://www.youtube.com/watch?v=GuJ5UuknsHUPalWorld accused of being an AI Producthttps://www.forbes.com/sites/paultassi/2024/01/22/palworld-accused-of-using-genai-with-no-evidence-so-far/?sh=26a9651b42394 Billion if-statements to determine if a number is even or oddhttps://andreasjhkarlsson.github.io/jekyll/update/2023/12/27/4-billion-if-statements.htmlSeamless M4Thttps://ai.meta.com/blog/seamless-m4t/Book of the ShowPatrick:Foundation by Isaac Asimovhttps://amzn.to/3SrmgnPJason: Propaganda by Edward Bernayshttps://amzn.to/47JUCXJPatreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the ShowPatrick: The Room Gamehttps://www.fireproofgames.com/games/the-roomJason:Incredibuildhttps://www.incredibuild.com/Topic: Compilers and Interpreters (Request by Jessica W.)Machine CodeArchitecture SpecificAssemblySingle vs Two Pass CompilerHigh level LanguagesIntermediate RepresentationJVM ByteCode vs Machine Code for portabilityScripting/InterpretersJITProfile Guided OptimizationResourceshttps://www.craftinginterpreters.com/https://nandgame.com/Turing Complete ★ Support this podcast on Patreon ★
2/12/20241 hour, 25 minutes, 10 seconds
Episode Artwork

170: 2023 Holiday Special Live

Predictions:Jason  VR for Work Lowering AI training cost/ improved efficiency RISC-V takeoff Patrick Ai claim of AGI Ai peer reviewer Ai Video Generator More space vehicles reaching orbit Early career, finding role at FAANG, liaising vs shipping code. Startup?3 part. 1. How and when current hype for AI will end? 2. Shape of the show 3. Upcoming in techWhat are essential programmer knowledge items?CS Student, how to organize life and goals? What purpose life should serve?What kind of programmer were you in college?Happy Holidays! ★ Support this podcast on Patreon ★
12/24/20231 hour, 38 minutes, 34 seconds
Episode Artwork

169: HyperLogLog

Intro topic: Testing your car batteryNews/Links: Tech Layoffs still going on https://www.sfchronicle.com/tech/article/google-layoffs-california-companies-18465600.php  Real-time dreamy Cloudscapes with Volumetric Raymarchinghttps://blog.maximeheckel.com/posts/real-time-cloudscapes-with-volumetric-raymarching/ Robot Rascals https://en.wikipedia.org/wiki/Robot_Rascals  Meta Quest 3  https://www.theverge.com/23906313/meta-quest-3-review-vr-mixed-reality-headset Book of the Show Patrick:HyperLogLog Paper https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/40671.pdf  Jason: Eureka! NVIDIA Research Breakthrough Puts New Spin on Robot Learning  https://blogs.nvidia.com/blog/2023/10/20/eureka-robotics-research/  Patreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the Show Patrick: Techtonica: https://store.steampowered.com/app/1457320/Techtonica/  Jason: ESP32 development board: https://amzn.to/3Qpmb20  WEMOS Topic: HyperLogLog MotivationCardinality Counting LinearCounting Hash + expectation of collision based on how full Bloom Filter LogLog Use first N bits as bucket Use max sequential 0s in each bucket Average HyperLogLog Handle empty buckets Use correction factor like linear counting for low counts (number of empty buckets) and high counts Distributing Transfer bucket counts ★ Support this podcast on Patreon ★
11/27/20231 hour, 29 minutes, 33 seconds
Episode Artwork

168: Godot

Intro topic: What are expectations on developers that have nothing to do with programmingNews/Links: Pushing for a lower dev estimate is like negotiating weather with a Meteorologisthttps://smartguess.is/blog/your-estimate-is-less-than-that/ Announcing python in excelhttps://techcommunity.microsoft.com/t5/excel-blog/announcing-python-in-excel-combining-the-power-of-python-and-the/ba-p/3893439 7 Habits of Highly Effective Software Engineershttps://makingsmallercircles.com/articles/7-habits-of-highly-effective-software-engineers/ Raspberry pi 5 begins shipping https://www.phoronix.com/news/Raspberry-Pi-5-Shipping Book of the Show Patrick:Harry Potter and the Sorcerer's Stone Illustrated Editionhttps://amzn.to/3St3L35 Jason: The Pete and Sebastian Showhttps://podcasts.apple.com/us/podcast/the-pete-and-sebastian-show/id570256898 Patreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the Show Patrick: Obsidianobsidian.md Jason:Ink by Inkle https://github.com/inkle/ink Topic: Godot What is a game engine? Graphics, animation, particle effects Tilemaps Entity component systems Physics Sound I/O Input handling (touchscreen, joystick) GDScript Why use a game engine? Portability Allow for testing individual components of the game Libraries for ads, in-app-purchases Godot Open source Focused on 2-D but now many 3-D features Great development environment AI Hero Started in phaser (development rut) Moved to Godot, rapid prototyping ★ Support this podcast on Patreon ★
11/20/20231 hour, 28 minutes, 34 seconds
Episode Artwork

167: Desktop User Interfaces

Intro topic: Jogging MetricsNews/Links: Unholy LLM https://huggingface.co/Undi95/Unholy-v1-12L-13B  The reverse red herring  https://www.blameless.com/blog/the-reverse-red-herring The "ens–tification" of TikTok https://www.wired.com/story/tiktok-platforms-cory-doctorow/  Response letter to Godot is not the new Unity https://sampruden.github.io/posts/godot-is-not-the-new-unity/ https://gist.github.com/reduz/cb05fe96079e46785f08a79ec3b0ef21 Book of the Show Patrick: Math Games with Bad Drawings by Ben Orlin https://amzn.to/48qlg9A Jason:  The Invisible Hook: The Hidden Economics of Pirates https://amzn.to/3LChBff Patreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the Show Patrick: Factorio (Desktop Game) Jason:AI Hero (iOS and Android) Topic: Desktop user interfaces What is a user interface? Web and Mobile UI toolkits Desktop options Qt Cross platform, custom UI elements Qt creator, code generator WxWidgets Cross platform, uses native UI elements  WxFormDesigner, code generation Can look different on different operating systems Electron Local nodejs webserver Html/JavaScript technology Requires interprocess communication to use other languages   Jupyter notebooks Mathematica-like notebook  Not for distribution  StreamlitPython to web compiler Game EnginesUnity, Godot, Unreal Tips for building desktop UI UI is slow (startup time, interaction time) Separate the UI from the engine & business logic ★ Support this podcast on Patreon ★
10/23/20231 hour, 26 minutes, 6 seconds
Episode Artwork

166: Speedy Database Queries with Lukas Fittl

Links:https://pganalyze.comhttps://www.linkedin.com/in/lfittl/https://www.linkedin.com/company/pganalyze/ ★ Support this podcast on Patreon ★
10/16/20231 hour, 12 minutes, 12 seconds
Episode Artwork

165: Differential Equations

Intro topic: Revisiting the power of SpreadsheetsNews/Links: LK-99 Isn’t a Superconductorhttps://www.nature.com/articles/d41586-023-02585-7 Normalizing Flowshttps://pyro.ai/examples/normalizing_flows_i.html How is llama.cpp possible?https://finbarr.ca/how-is-llama-cpp-possible/ Chat with open source large language models https://chat.lmsys.org/ Book of the Show Patrick: Math with Bad Drawings by Ben Orlinhttps://amzn.to/44dsgDz Jason: Overboard! https://play.google.com/store/apps/details?id=com.InkleLtd.Overboard Nhl=en_US&gl=US  Patreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the Show Patrick: ffmprovisr https://amiaopensource.github.io/ffmprovisr/ Jason:Pandas read_ods() read_excel() Topic: Differential Equations Why should programmers learn about DiffEqLaw of Large Numbers What are differential equations? When you know the rate of change EigenVectors & EigenValues What is Jacobian What is Jacobian? | The right way of thinking derivatives and integrals Special cases Partial Differential Equations Ordinary Differential Equations Why solvers are important Numerical Stability at larger step sizes Example: https://medium.com/@pukumarathe/eulers-method-and-runge-kutta-4th-order-method-in-python-b4a0068a8ebe  Fun Examples Predator-Prey relationships in scipy https://scientific-python.readthedocs.io/en/latest/notebooks_rst/3_Ordinary_Differential_Equations/02_Examples/Lotka_Volterra_model.html  Physics Engines for games https://youtu.be/52n2qKgwW_Q  PageRank https://arxiv.org/pdf/2001.08973.pdf  ★ Support this podcast on Patreon ★
9/25/20231 hour, 16 minutes, 43 seconds
Episode Artwork

164: Choosing a Database For Your Project With Kris Zyp

Things to consider when choosing a database Speed & Latency Consistency, ACID Compliance Scalability Language support & Developer Experience Relational vs. Non-relational (SQL vs. NoSQL) Data types Security Database environmentClient vs Server access Info on Kris & Harper: Website: harperdb.io Twitter: @harperdbio, @kriszyp Github: @HarperDB, @kriszyp ★ Support this podcast on Patreon ★
9/11/20231 hour, 31 minutes, 21 seconds
Episode Artwork

163: Recursion

Episode 163 - RecursionIntro topic: Electric CarsNews/Links: Snake Game in 101 Bytes in a QR Codehttps://www.reddit.com/r/programming/comments/15ab4ct/my_qr_code_snake_game_is_now_only_101_bytes/ Superconductor Rumors aboundhttps://arstechnica.com/science/2023/08/whats-going-on-with-the-reports-of-a-room-temperature-superconductor/ OpenWormhttps://github.com/openworm/OpenWorm Creator of vim passes away https://news.itsfoss.com/vim-creator-passed-away/ Book of the Show Patrick:Little Book of Common Sense Investing by Jack Bogle https://amzn.to/43YqANR Jason: Mistborn Saga: https://amzn.to/3DJkUN8 Patreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the Show Jason:reMarkable https://remarkable.com/ Patrick: Stellarium (iOS and Android) Topic: Recursion What is it Divide-And-Conquer Fibonacci numbers How to (not) teach recursion Practical Applications Graph operations Tree retrieval, balancing Graph Search Spatial partitioning PitfallsStack size How to solve problems with recursion (1) Consider the base cases (2) Build the recursive step (3) Look for ways the recursion will not terminate and fix (4) (rest are optional) Remove global contexts (5) Add memoization (6) Build solutions incrementally ★ Support this podcast on Patreon ★
8/14/20231 hour, 29 minutes, 7 seconds
Episode Artwork

162: Interactive Fiction

In the latest episode of Programming Throwdown, we delve into the captivating world of interactive fiction. We explore: Wordnet, Inform, and how games in the past have been the forerunners of today’s NLP challenges. 00:00:22 Introductions00:00:39 To hard mode or not to hard mode00:08:58 No moats in Google00:16:37 Stable Diffusion blows Jason’s mind00:21:31 Putting beats together00:23:38 GPT4All00:27:44 White Sand00:35:28 Fortuna00:38:55 Patrick’s ‘dirty’ secret00:47:20 Wordnet00:53:56 Procedural generation00:57:29 On tabletop RPGs01:00:48 Inform01:07:27 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/programmingthrowdown?ty=h Subscribe to the podcast on Youtube: https://www.youtube.com/@programmingthrowdown4793 News/Links: Google: We have no moat and neither does OpenAIhttps://www.semianalysis.com/p/google-we-have-no-moat-and-neither Stable Diffusion QR Codes https://stable-diffusion-art.com/qr-code/  Beginning to Make Musichttps://learningmusic.ableton.com/ GPT4Allhttps://gpt4all.io/index.html Wordnet:https://wordnet.princeton.edu/ Inform:https://en.wikipedia.org/wiki/Inform Book of the Show Patrick:White Sand https://amzn.to/43CPMKA Jason: The Fortuna https://www.generativefiction.com/ Tool of the Show Jason:Gatsby.js https://www.gatsbyjs.com/ Patrick: Peglin https://store.steampowered.com/app/1296610/Peglin/   If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM | Youtube Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
7/24/20231 hour, 8 minutes, 15 seconds
Episode Artwork

161: Leveraging Generative AI Models with Hagay Lupesko

MosaicML’s VP Of Engineering, Hagay Lupesko, joins us today to discuss generative AI!  We talk about how to use existing models as well as ways to finetune these models to a particular task or domain. 00:01:28 Introductions00:02:09 Hagay’s circuitous career journey00:08:25 Building software for large factories00:17:30 The reality of new technologies00:28:10 AWS00:29:33 Pytorch’s leapfrog advantage00:37:24 MosaicML’s mission00:39:29 Generative AI00:44:39 Giant data models00:57:00 Data access tips01:10:31 MPT-7B01:27:01 Careers in Mosaic01:31:46 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/programmingthrowdown?ty=h Subscribe to the podcast on Youtube: https://www.youtube.com/@programmingthrowdown4793 Links: Hagay Lupesko: Linkedin: https://www.linkedin.com/in/hagaylupesko/ Twitter: https://twitter.com/hagay_lupesko Github: https://github.com/lupesko MosaicML: Website: https://www.mosaicml.com/ Careers: https://www.mosaicml.com/careers Twitter: https://twitter.com/MosaicML Linkedin: https://www.linkedin.com/company/mosaicml/ Others: Amp It Up (Amazon): https://www.amazon.com/Amp-Unlocking-Hypergrowth-Expectations-Intensity/dp/1119836115 Hugging Face Hub: https://huggingface.co/  If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM | Youtube Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
7/10/20231 hour, 32 minutes, 43 seconds
Episode Artwork

160: Position Localization

Where are you now? It’s a question that may seem easy to answer on the surface, but in truth hides more complexity than people expect. In today’s episode, we tackle the latest on AI, creative endeavors, and more before diving into the meaty discussion of position localization. 00:01:13 Steam Deck00:11:22 Summoning Salt on Mario00:16:49 100k stars00:24:26 ChatGPT spam call00:25:31 Build Your Own DB (from scratch)00:29:50 DuckDB00:35:07 Jason has an idea00:37:58 Fighting Fantasy Classics00:41:52 Patrick’s bread00:47:52 Support the show00:53:54 Awkward CRM emails00:56:07 Rill01:00:29 Position localization in detail01:17:15 Common filter01:25:22 Simultaneous localization01:28:59 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/programmingthrowdown?ty=h Subscribe to the podcast on Youtube: https://www.youtube.com/@programmingthrowdown4793News/Links: The History of Super Mario Bros 3 100% World Records (Summoning Salt)https://www.youtube.com/watch?v=_EsFyogVvkw AutoGPT hits 100k starshttps://twitter.com/AlphaSignalAI/status/1649524105647906819 Build Your Own Database from Scratchhttps://build-your-own.org/database/ Asking generative art AI to render mathematical theoremshttps://twitter.com/TivadarDanka/status/1649721970886594561 DuckDB:https://duckdb.org/ Book of the Show: Jason: Fighting Fantasy Classics https://play.google.com/store/apps/details?id=com.tinmangames.ffhub&hl=en_US&gl=US https://apps.apple.com/us/app/fighting-fantasy-classics/id1261201650 Patrick: Evolutions in Bread: Artisan Pan Breads and Dutch-Oven Loaves at Homehttps://amzn.to/44kW4iE Tool of the Show: Jason: Jinja https://jinja.palletsprojects.com/en/3.1.x/ Patrick: Rill https://www.rilldata.com/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM | Youtube Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
6/26/20231 hour, 30 minutes, 20 seconds
Episode Artwork

159: GraphQL with Tanmai Gopal

GraphQL is one of the biggest API enablers in software development, but just how complicated can things be? Tanmai Gopal – Hasura’s CEO extraordinaire – talks with Jason and Patrick about how the secret sauce gets made. They dive deeply from how APIs function to having them managed in practice – among several other topic, making this a must-listen episode.  00:01:19 Introductions00:01:48 Tanmai’s late start in programming00:05:48 Plinko00:13:06 Coursera00:23:28 The question of API development00:30:30 API layer functionality00:34:58 How Hasura leverages JSON00:39:08 GraphQL00:42:49 Worse than an API call00:49:15 The potential REST minefield00:53:41 JSON Web Tokens01:11:34 Scaling writes01:15:17 Careers with Hasura01:22:35 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/programmingthrowdown?ty=h Subscribe to the podcast on Youtube: https://www.youtube.com/@programmingthrowdown4793Links:  Tanmai Gopal:  Website: https://hasura.io/blog/@tanmaig/  Linkedin: https://www.linkedin.com/in/tanmaig/  Twitter: https://twitter.com/tanmaigo  Github: https://github.com/coco98  Hasura:  Website: https://hasura.io/  Careers: https://hasura.io/careers/  Twitter: https://twitter.com/HasuraHQ  Github: https://github.com/hasura  Linkedin: https://www.linkedin.com/company/hasura  Others:  Good Strategy, Bad Strategy (Amazon): https://www.amazon.com/Good-Strategy-Bad-Strategy-audiobook/dp/B07R6XQ8YP  Modern Application Development (IIT Madras, archived): https://archive.nptel.ac.in/courses/106/106/106106156/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM | Youtube Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
6/12/20231 hour, 23 minutes, 12 seconds
Episode Artwork

158: Software Supply Chain with Bill Manning

In today’s episode, Jason and Patrick dive deeply with JFrog’s Senior Solutions Engineer, Bill Manning. With the conversation tackling the depth and complexity of software supply chains, vulnerabilities and more, Bill deftly offers grounded advice to listeners old and new. 00:00:26 Introductions00:00:40 Bill’s plethora of job titles00:09:33 The excitement of learning a language00:15:08 Mechanical keyboards00:21:17 Bill’s advice on adapting00:27:55 What a supply chain is00:34:28 Castle analogies00:40:55 Unpacking legalities00:52:11 Log4J00:54:41 What JFrog does01:01:16 What can go wrong01:08:08 Getting started in this space01:14:15 Careers in JFrog01:20:23 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/programmingthrowdown?ty=h Subscribe to the podcast on Youtube: https://www.youtube.com/@programmingthrowdown4793Links: Bill Manning: Website: https://about.me/billmanning Linkedin: https://www.linkedin.com/in/williammanning/ Twitter: https://twitter.com/williammanning JFrog: Website: https://jfrog.com/ Careers: https://join.jfrog.com/ Artifactory: https://jfrog.com/artifactory/ Linkedin: https://www.linkedin.com/company/jfrog-ltd/ Others: Liquid Software: https://liquidsoftware.com/ SolarWinds hack incident: https://www.wired.com/story/the-untold-story-of-solarwinds-the-boldest-supply-chain-hack-ever/ Transitive dependencies: https://en.wikipedia.org/wiki/Transitive_dependency More Throwdown? Check out this prior episode:153: ChatGPT: https://www.programmingthrowdown.com/2023/03/153-chatgpt.htmlIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM | Youtube Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon  ★ Support this podcast on Patreon ★
5/22/20231 hour, 21 minutes, 54 seconds
Episode Artwork

157: Kubernetes with Craig Box

There’s more than what meets the eye when it comes to Kubernetes, and Craig Box – ARMO’s VP of Open Source & Community –is one of several who have seen its many twists and turns since its inception. He talks with Jason and Patrick about Kubernetes’ origins in pop culture, utility in the modern workflow, and possible future in today’s episode.  00:01:31 Introductions00:03:39 Craig’s early internet speed experience00:07:46 An adventure towards Google00:16:55 Project Seven00:21:17 Mesos00:26:42 The origin of Kubernetes00:28:36 DS9’s influence on naming conventions00:37:49 Getting more results with the same resources00:47:13 IPv400:53:44 Craig’s thoughts on learning Kubernetes01:06:59 Kubescape01:18:12 Working at ARMO01:23:16 Programming Throwdown on Youtube01:23:55 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/programmingthrowdown?ty=h Subscribe to the podcast on Youtube: https://www.youtube.com/@programmingthrowdown4793Links: Craig Box: Substack: https://substack.com/profile/107796914-craig-box Github: https://github.com/craigbox Linkedin: https://www.linkedin.com/in/crbnz/ Twitter: https://twitter.com/craigbox ARMO: Website: https://www.armosec.io/ Linkedin: https://www.linkedin.com/company/armosec/ Others: The Project Seven origin story: https://cloud.google.com/blog/products/containers-kubernetes/from-google-to-the-world-the-kubernetes-origin-story 7 of 9 on Memory Alpha: https://memory-alpha.fandom.com/wiki/Seven_of_Nine  More Throwdown? Check out this prior episode:E135: Kubernetes with Aran Khanna: https://www.programmingthrowdown.com/2022/06/135-kubernetes-with-aran-khanna.htmlIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM | Youtube Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
5/8/20231 hour, 24 minutes, 39 seconds
Episode Artwork

156: Perl and Regular Expressions

Should AI research be paused? How far ahead have deepfakes come? Join Patrick and Jason as they tackle their answers to these timely questions – plus an in-depth discussion on Perl in practice – with today’s episode of Programming Throwdown. Resources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/programmingthrowdown?ty=h News/Links: GPT4All & Stanford Alpacahttps://github.com/nomic-ai/gpt4all Giant AI Experiments 6 month pause open letterhttps://futureoflife.org/open-letter/pause-giant-ai-experiments/ Will Smith Eating Spaghetti generated videohttps://www.vice.com/en/article/xgw8ek/ai-will-smith-eating-spaghetti-hill-haunt-you-for-the-rest-of-your-life Robust image compression implementation from a NASA paperhttps://github.com/TheRealOrange/icer_compression Dig This Vegashttps://digthisvegas.com/ XKCD:https://xkcd.com/208/ AI Open Letter:https://futureoflife.org/open-letter/pause-giant-ai-experiments/ Godbolt:https://godbolt.org/ Book of the Show: Jason: It Doesn’t Have To Be Crazy At Workhttps://amzn.to/40PFgxH Patrick: Prince of Fools by Mark Lawrencehttps://amzn.to/3lWVEO9 Tool of the Show: Jason: ReMarkable 2: https://remarkable.com/store/remarkable-2 Patrick: Slay the Spire: https://store.steampowered.com/app/646570/Slay_the_Spire/  If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
4/24/20231 hour, 17 minutes, 39 seconds
Episode Artwork

155: The Future of Search with Saahil Jain

When it comes to untangling the complexities of what lies ahead for search engines in this age of AI, few are as deeply versed in the subject as You.com Engineer Saahil Jain. Jason and Patrick talk with him in this episode about what search even is, what challenges lie ahead, and where the shift in paradigms can be found. 00:01:16 Introductions00:02:06 How physics led Saahil to programming00:07:20 Getting started at Microsoft00:13:39 Analyzing human text input00:22:22 The exciting paradigm shift in search00:29:02 Rationales for direction00:33:40 Image generation models00:39:55 Knowledge bases00:45:12 FIFA00:49:29 Understanding the query’s intent00:51:18 Expectations00:55:38 A need to stay connected to authority repositories01:03:45 About working at You01:08:18 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/programmingthrowdown?ty=hLinks: Saahil Jain: Website: http://saahiljain.me/ Email: saahil @ you.com Github: https://github.com/saahil9jain/ Linkedin: https://www.linkedin.com/in/saahiljain/ Twitter: https://twitter.com/saahil9jain RadGraph: https://arxiv.org/abs/2106.14463 VisualCheXbert: https://arxiv.org/abs/2102.11467  You.Com: Website: https://you.com/ Twitter: https://twitter.com/YouSearchEngine Discord: https://discord.gg/f9jRFH5gHP  Others:On Thorium: https://www.youtube.com/watch?v=ElulEJruhRQ  More Throwdown? Check out these prior episodes: E143: The Evolution of Search with Marcus Eagan: https://www.programmingthrowdown.com/2022/09/143-evolution-of-search-with-marcus.html E94: Search at Etsy: https://www.programmingthrowdown.com/2019/10/episode-94-search-at-etsy.html  If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
4/10/20231 hour, 8 minutes, 56 seconds
Episode Artwork

154: Python Again with Jason C. McDonald

A second Jason joins this episode of Programming Throwdown! Jason McDonald – Python evangelist, author, and more – talks to Patrick and Jason about his experience with the programming language, how his disability helped and hindered his software career, and where its strengths and weaknesses lie. 00:01:05 Introductions00:02:27 Jason’s pivotal Doctor Who regeneration00:04:49 The power of dialog boxes00:10:10 Python’s power00:12:37 How disability discrimination can look00:17:40 Making vs playing games00:23:47 Jason’s POV on intention00:28:04 Why Jason stayed with Python00:40:11 Every language’s Thing00:49:42 Duck typing00:52:48 Global Interpreter Lock (GIL)01:14:16 Dependencies01:34:08 Finding Jason online01:35:20 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today: https://www.patreon.com/join/programmingthrowdownLinks: Jason C. McDonald: Mastodon.Cloud: https://mastodon.cloud/@codemouse92 Website: https://codemouse92.com/ Github: https://github.com/CodeMouse92 BugHunters Café @ iTunes: https://podcasts.apple.com/us/podcast/the-bug-hunters-caf%C3%A9/id1556496590 Rural Sourcing: Website: https://www.ruralsourcing.com/ Linkedin: https://www.linkedin.com/company/rural-sourcing/ Book Recommendations: Dead Simple Python (Jason C. McDonald): https://www.amazon.com/Dead-Simple-Python-Idiomatic-Programmers/dp/1718500920 Kill It With Fire (Marianne Bellotti): https://www.amazon.com/Kill-Fire-Manage-Computer-Systems/dp/1718501188 Dreaming In Code (Scott Rosenberg): https://www.amazon.com/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082471 Others: Monty Python (troupe): https://en.wikipedia.org/wiki/Monty_Python Monty Python (TV Show): https://en.wikipedia.org/wiki/Monty_Python%27s_Flying_Circus More Python? Check out these prior episodes: E52: Scientific Python: https://www.programmingthrowdown.com/2016/03/episode-52-scientific-python.html E139: Scientific Python with Guido Imperiale: https://www.programmingthrowdown.com/2022/07/139-scientific-python-with-guido.html If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
3/27/20231 hour, 36 minutes, 5 seconds
Episode Artwork

153: ChatGPT

ChatGPT has made a mark on the world as we know it, but that’s only the tip of the AI iceberg. Join us as we discuss how the field of artificial intelligence is growing – including some developments that might not be on your radar!00:00:23 Introductions00:02:01 Jason’s attic adventure00:06:09 Comparing saws00:10:57 Patrick’s surprisingly useful thing00:12:21 SpaceX00:17:31 Human motion diffusion model00:20:47 37Signals00:29:30 Polars00:35:37 Books of the Show00:46:11 Neon00:50:33 Patrick’s player search00:53:47 ChatGPT01:17:12 The threat to Google01:28:06 Jason and Patrick’s future prognostications01:32:13 FarewellsResources mentioned in this episode:Join the Programming Throwdown Patreon community today:  https://www.patreon.com/programmingthrowdown?ty=hNews/Links: SpaceX Starship Static Test Fire Plannedhttps://www.cnet.com/science/space/spacex-prepping-for-first-full-test-fire-of-its-mega-starship-rocket/ Human Motion Diffusion Modelhttps://guytevet.github.io/mdm-page/ 37Signals Leaving the Cloud and Details Cloud Costshttps://twitter.com/dhh/status/1613508201953038337 Polars: DataFrames in Rusthttps://docs.rs/polars/latest/polars/index.html Book of the Show: Jason: Build by Tony Fadellhttps://amzn.to/3wpLnLW Patrick: Age of Myth by Michael Sullivan (Riyria)https://amzn.to/3HlEsJ5 Tool of the Show: Jason: Neon: Serverless Postgres: https://neon.tech/ Patrick: 7 Billion Humans (Steam): https://store.steampowered.com/app/792100/7_Billion_Humans/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
3/13/20231 hour, 33 minutes, 1 second
Episode Artwork

152: The Future Database with Sam Lambert

Databases are key to almost any project, large or small.  Most database systems in the cloud are designed for heavy use and the costs can get expensive quickly, but database-as-a-service is a rapidly growing area, where many databases can share the same hardware for a much reduced rate, or even for free!  Sam Lambert, CEO of PlanetScale, joins Jason and Patrick to discuss database-as-a-service.00:01:41 Introductions00:02:34 Sam’s Github learning lesson00:07:08 The day after00:10:57 Getting started with databases00:14:21 Schema change difficulties00:19:47 Database transactions00:31:15 Why data recovery matters00:38:35 Planetscale00:49:24 Greetings from the past01:02:01 How Jason discovered Planetscale01:06:53 Branching01:14:00 The vision for Planetscale01:18:12 The rationale behind Planetscale’s work setup01:24:29 Careers at Planetscale01:28:06 Amp It Up01:33:10 FarewellsResources mentioned in this episode:Links: Sam Lambert:Linkedin: https://www.linkedin.com/in/isamlambert/ PlanetScale: Website: https://planetscale.com/ Twitter: https://twitter.com/planetscaledata Linkedin: https://www.linkedin.com/company/planetscale/ Github: https://github.com/planetscale Careers: https://planetscale.com/careers Amp It Up (Amazon): Paperback: https://www.amazon.com/Amp-Unlocking-Hypergrowth-Expectations-Intensity/dp/1119836115 Audiobook: https://www.amazon.com/Amp-Hypergrowth-Expectations-Increasing-Elevating/dp/B09QBRBKFB/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
2/27/20231 hour, 33 minutes, 51 seconds
Episode Artwork

151: Machine Learning Engineering with Liran Hason

Machine Learning Engineer is one of the fastest growing professions on the planet.  Liran Hason, co-founder and CEO of Aporia, joins us to discuss this new field and how folks can learn the skills and gain the experience needed to become an ML Engineer!00:00:59 Introductions00:01:44 How Liran got started making websites00:07:03 College advice for getting involved in real-world experience00:12:51 Jumping into the unknown00:15:22 ML engineering00:20:50 The missing part in data science development00:29:16 How to build skills in the ML space00:37:01 A horror story00:41:34 Model loading questions00:47:36 Must-have skills in an ML resume00:50:41 Deciding about data science00:59:08 Rust01:06:27 How Aporia contributes to the data science space01:14:26 Working at Aporia01:16:53 FarewellsResources mentioned in this episode:Links: Liran Hason:Linkedin: https://www.linkedin.com/in/hasuni/ Aporia: Website: https://www.aporia.com/ Twitter: https://twitter.com/aporiaai Linkedin: https://www.linkedin.com/company/aporiaai/ Github: https://github.com/aporia-ai The Mom Test (Amazon): Paperback: https://www.amazon.com/Mom-Test-customers-business-everyone/dp/1492180742 Audiobook: https://www.amazon.com/The-Mom-Test-Rob-Fitzpatrick-audiobook/dp/B07RJZKZ7F References: Shadow Mode: https://christophergs.com/machine%20learning/2019/03/30/deploying-machine-learning-applications-in-shadow-mode/ Blue-green deployment: https://en.wikipedia.org/wiki/Blue-green_deployment Coursera ML Specialization (Stanford): https://www.coursera.org/specializations/machine-learning-introduction Auto-retraining: https://neptune.ai/blog/retraining-model-during-deployment-continuous-training-continuous-testing If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
2/13/20231 hour, 18 minutes, 3 seconds
Episode Artwork

150: Code Reviews with On Freund

Patrick and I are always stressing the importance of code reviews and collaboration when developing.  On Freund, co-founder & CEO at Wilco, is super familiar with how code review processes can go well, or become a hinderance. In today’s episode with us, he shares his unique perspective on code reviews and maintaining high code quality!00:00:56 Introductions00:01:38 On’s first exposure to tech00:06:04 Game development adventures00:11:12 The difference between university and real-world experiences00:17:43 A context switch question00:24:41 Points of frustration00:30:53 Build versus Buy complications00:32:06 Code reviews00:39:58 Quality of code00:45:12 Using callouts for the right reasons00:49:57 Code reviews can be too late sometimes00:52:11 Using social interaction as pre-review orientation00:57:03 How not to use code reviews01:01:35 Where Wilco helps programmers learn01:09:11 Working in Wilco01:11:49 FarewellsResources mentioned in this episode:Links: On Freund:Linkedin: https://www.linkedin.com/in/onfreund Wilco: Website: https://www.trywilco.com/ Twitter: https://twitter.com/trywilco Linkedin: https://www.linkedin.com/company/trywilco  References:Micro-Adventure:https://en.wikipedia.org/wiki/Micro_Adventure  If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
1/24/20231 hour, 13 minutes, 15 seconds
Episode Artwork

149: Workflow Engines with Sanjay Siddhanti

At scale, anything we build is going to involve people.  Many of us have personal schedules and to-do lists, but how can we scale that to hundreds or even thousands of people?  When you file a help ticket at a massive company like Google or Facebook, ever wonder how that ticket is processed? Sanjay Siddhanti, Akasa’s Director of Engineering, is no slouch when it comes to navigating massive workflow engines – and in today’s episode, he shares his experiences in bioinformatics, workflows, and more with us.00:00:39 Workflow engine definitions00:01:40 Introductions00:02:24 Sanjay’s 8th grade programming experience00:05:28 Bioinformatics00:10:29 The academics-vs-industry dilemma00:16:52 Small company challenges00:18:18 Correctly identifying when to scale00:24:04 The solution Akasa provides00:31:38 Workflow engines in detail00:36:02 ETL frameworks00:45:06 The intent of integration construction00:47:13 Delivering a platform vs delivering a solution00:50:04 Working within US medico-legal frameworks00:53:28 Inadvertent uses of API calls00:55:47 Working in Akasa00:57:09 Interning in Akasa00:58:35 FarewellsResources mentioned in this episode:Sanjay: Twitter: https://twitter.com/siddhantis Linkedin: https://www.linkedin.com/in/sanjaysiddhanti/ Akasa: Website: https://www.akasa.com Sanjay’s Q&A https://akasa.com/blog/10-questions-for-sanjay-siddhanti-director-of-engineering-at-akasa/ Careers: https://akasa.com/careers/ Interning: https://www.linkedin.com/jobs/view/research-intern-ai-spring-summer-2023-at-akasa-3206403183/ References: Episode 33: Design Patterns:https://www.programmingthrowdown.com/2014/05/episode-33-design-patterns.html The Mythical Man-Month:https://en.wikipedia.org/wiki/The_Mythical_Man-Month If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
1/9/202359 minutes, 41 seconds
Episode Artwork

S1: Holiday 2022 Special

S1: Holiday 2022 SpecialToday we field questions from Programming Throwdown’s listeners about AI, machine learning, and more practical matters as developers in our annual holiday special!00:00:24 Introductions00:00:43 Programming Showdown merch00:02:13 Paul S00:03:28 Dealing with ergonomics00:10:39 On AI coding assistant tools00:16:43 Warren Y00:20:24 Ben inquires about performance testing00:27:39 Wild coding story00:29:37 AI coding’s disruption potential00:34:20 Jason’s Turing riddle00:35:50 ChatGPT00:43:59 Christian B00:45:13 Collection-of-Letters asks on documentation00:49:07 Zeh F00:50:51 Coding books that weren’t that great00:54:40 James K00:57:32 Jeremy S wonders about ML01:00:45 Virtual and live hangouts01:02:09 A retrospective01:07:49 Xu L01:09:22 Showing off the shirts01:11:31 FarewellsIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon. Happy holidays from Programming Throwdown to everyone! ★ Support this podcast on Patreon ★
12/26/20221 hour, 12 minutes, 39 seconds
Episode Artwork

148: Package Management with Max Howell

Package managers are an often-overlooked aspect of any operating system, but their importance is not to be underestimated – especially in today’s development environment. As both creator of Homebrew and CEO of tea.xyz, Max Howell is intimately familiar with the ins and outs of open-source development, software engineering, and balancing passion with practicality. He shares these experiences and more with us in today’s deep dive into the subject!00:01:00 Introductions00:01:29 When Max started Tea.XYZ00:03:51 British plugs00:08:10 Literally rolling out of bed to work00:11:49 The value of meetups00:13:14 Getting into open-source00:23:00 Mandrake00:25:02 Turning frustration into action00:30:47 Deno00:40:28 OSX’s relationship with Unix00:55:33 Trying out Ruby01:01:13 April Fools prank ideas01:04:13 The cause of sleepless nights with Homebrew01:14:41 What got Max inspired to do Tea01:19:53 From startup to company01:41:55 FarewellsResources mentioned in this episode:Links:Tea.XYZ: Website: https://tea.xyz/ Twitter: https://twitter.com/teaxyz_ Instagram: https://www.instagram.com/tea.xyz/ Github: https://github.com/teaxyz Reddit: https://reddit.com/r/teaxyz Discord: https://discord.com/invite/KCZsXfJphn References: 101 on Package Management:https://en.wikipedia.org/wiki/Package_manager Deno:https://deno.land/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
12/12/20221 hour, 43 minutes, 4 seconds
Episode Artwork

147: Quantum Computing with Yonatan Cohen

Yonatan Cohen – Co-Founder & CTO of Quantum Machines – joins us in this episode to tackle quantum computing!  Did you know anyone can run quantum programs on Amazon Web Services for mere dollars? Learn about this field early to take pole superposition in the race to understand and use quantum computers!00:00:45 Introductions00:01:20 Yonatan’s beginnings00:03:49 The simulation question00:05:51 How physics led to quantum computing00:14:56 Richard Feynman00:16:44 On the irreversibility of normal computers00:21:25 Logic gates00:25:04 Qubits00:30:11 An example of qubits00:38:19 Why simulating a quantum computer matters00:42:23 NP-complete problems00:48:57 More people at a higher development level are needed00:54:16 Quantum machines in the middle layer01:02:56 Working at Quantum Machines01:05:05 FarewellsResources mentioned in this episode:Links: Quantum Machines: Website: https://www.quantum-machines.co/ Careers: https://www.quantum-machines.co/careers/ Yonatan Cohen:Linkedin: https://www.linkedin.com/in/yonatan-cohen-10076b113/ References:Getting Started with Quantum Computinghttps://builtin.com/software-engineering-perspectives/how-to-learn-quantum-computing If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
11/28/20221 hour, 6 minutes, 10 seconds
Episode Artwork

146: RubyShield, Ruby Central, and Shopify with Mike Dalessio and Evan Phoenix

In this tour-de-force, Mike Dalessio – Engineering Director at Shopify – and Evan Phoenix – self-described “long-time Rubyist” – join us for a practical discussion of all things Ruby! Ruby is a beautiful language, and we're really excited to cover the history and present of this language with two experts. 00:01:03 Introductions00:01:49 Mike’s Ruby journey00:12:28 Evan’s own Ruby experience00:18:20 The pickaxe book00:20:34 Weird programming interests00:25:11 MINASWAN00:30:33 Language conferences00:36:38 Wrong answers on StackOverflow00:41:53 RubyCentral00:44:50 In-depth examination of Ruby00:47:57 How Shopify sticks to vanilla Rails00:50:28 A tale of two developers00:59:59 Bringing Ruby up to Python’s level01:04:48 Shopify’s largest app monolith01:11:12 Tuning the knobs01:18:01 How not to learn the hard way01:18:57 Opportunities at Shopify01:29:14 Working with the RubyShield program01:32:07 Rails for API servers01:33:21 Mike and Evan’s advice for listeners01:36:00 FarewellsResources mentioned in this episode:Links: RubyCentral: Website: https://rubycentral.org/ RubyShield: https://rubycentral.org/ruby-shield Twitter: https://twitter.com/rubycentralorg Shopify: Website: https://www.shopify.com/ Careers: https://www.shopify.com/careers Dev Degree Program: https://devdegree.ca/pages/program HashiCorp Website: https://www.hashicorp.com/ Careers: https://www.hashicorp.com/jobs Mike Dalessio: Website: http://mike.daless.io/ Twitter: https://twitter.com/flavorjones Evan Phoenix: Website: https://github.com/evanphx Twitter: https://twitter.com/evanphx RubyConf 2022 (Nov. 29 – Dec. 1, 2022):Website: https://rubyconf.org/ Other Episodes:Episode 47: RubyShow Link: https://www.programmingthrowdown.com/2015/10/episode-47-ruby.html  References:“The Pickaxe Book” aka Programming Ruby: The Pragmatic Programmer’s Guide 2nd Edition:Amazon: https://www.amazon.com/Programming-Ruby-Pragmatic-Programmers-Second/dp/0974514055  If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
11/14/20221 hour, 37 minutes, 20 seconds
Episode Artwork

145: Unsupervised Machine Learning

Today we discuss adventures, books, tools, and art discoveries before diving into unsupervised machine learning in this duo episode!00:00:22 Introductions00:01:28 Email & inbox organization is very important00:07:28 The Douglas-Peucker algorithm00:11:48 Starter project selection00:17:01 Tic-Tac-Toe 00:21:41 Artemis 100:26:25 Space slingshots00:29:47 Flex Seal tape00:32:38 The Meditations00:37:58 Flour, Water, Salt, Yeast00:40:55 Pythagorea00:46:13 Google Keep00:48:05 Visual-IF00:50:49 Data insights01:03:07 Self-supervised learning01:10:26 A practical example of clustering01:15:10 Word embedding01:24:02 FarewellsWant to learn more? Check out these previous episodes: Episode 27: Artificial Intelligence Theoryhttps://www.programmingthrowdown.com/2013/05/episode-27-artificial-intelligence.html Episode 28: Applied Artificial Intelligencehttps://www.programmingthrowdown.com/2013/06/episode-28-applied-artificial.html Episode 109: Digital Marketing with Kevin Urrutia https://www.programmingthrowdown.com/2021/03/episode-109-digital-marketing-with.html Resources mentioned in this episode:News/Links: Simplify lines with the Douglas-Peucker Algorithmhttps://ilya.puchka.me/douglas-peucker-algorithm/  How to pick a starter projecthttps://amir.rachum.com/blog/2022/08/07/starter-project/ Tic-Tac-Toe in a single call to printf()https://github.com/carlini/printf-tac-toe  Artemis 1https://www.nasa.gov/artemis-1/ Visual-IFhttps://www.visual-if.com/ Book of the Show: Jason’s Choice: “The Meditations” by Marcus Aureliushttps://amzn.to/3C3Kg7b Patrick’s Choice: “Flour, Water, Salt, Yeast” by Ken Forkishhttps://amzn.to/3CqFwKa Tool of the Show: Jason’s Choice: Pythagorea Android: https://play.google.com/store/apps/details?id=com.hil_hk.pythagorea&hl=en&gl=US iOS: https://apps.apple.com/us/app/pythagorea/id994864779 Patrick’s Choice: Google Keep https://keep.google.com/ References: Clustering: https://en.wikipedia.org/wiki/Cluster_analysis Autoencoding: https://en.wikipedia.org/wiki/Autoencoder Contrastive Learning: https://towardsdatascience.com/understanding-contrastive-learning-d5b19fd96607 Matrix Factorization: https://en.wikipedia.org/wiki/Matrix_factorization_(recommender_systems) Stochastic factorization: https://link.medium.com/ytuaUAYBjtb Deep Learning: https://en.wikipedia.org/wiki/Deep_learning If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
10/24/20221 hour, 25 minutes, 16 seconds
Episode Artwork

144: Kotlin Coroutines with Marcin Moskala

Today we go back to our programming language roots with author, KT Academy founder, and Kotlin rockstar Marcin Moskala.  We talk about how Kotlin makes itself doubly useful for app and backend development. 00:00:55 Introductions00:01:38 Java frustrations 00:09:37 Why a well-organized typing system is important00:11:59 What Kotlin is00:14:58 Obsidian 00:20:13 Learning new things can be a prudent future investment00:23:46 A pleasant coding experience00:26:41 Co-routines in Kotlin00:34:37 Where co-routines are best in app development00:44:54 Thread balancing in practice00:57:39 Kotlin’s integrated cancellation mechanism01:05:10 Getting started with Kotlin01:18:16 FarewellsResources mentioned in this episode:Marcin Moskala: Website: https://marcinmoskala.com/ Twitter: https://twitter.com/marcinmoskala KT Academy: https://kt.academy/ Kotlin Learning Resources Marcin on KT: https://kt.academy/user/marcinmoskala Kotlin Coroutines: https://leanpub.com/coroutines Effective Kotlin: https://leanpub.com/effectivekotlin Functional Kotlin (Early Access): https://leanpub.com/kotlin_functional More Kotlin Publications on Leanpub Information Organization Tools WorkFlowy: https://workflowy.com/ Obsidian: https://obsidian.md/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
10/10/20221 hour, 20 minutes, 39 seconds
Episode Artwork

143: The Evolution of Search with Marcus Eagan

Finding something online might seem easy - but as Marcus Eagan tells it, it’s not easy to get it right. In today’s episode, MongoDB’s Staff Product Manager on Atlas Search speaks with Jason and Patrick about his own journey in software development and how to best use search engines to capture user intent. 00:00:34 Introductions00:01:30 Marcus’s unusual origin story00:05:10 Unsecured IoT devices00:09:56 How security groupthink can compromise matters00:12:48 The Target HVAC incident00:17:32 Business challenges with home networks00:21:51 Damerau-Levenshtein edit distance factor ≤ 200:23:58 How do people who do search talk about search00:30:35 Inferring human intent before they intend it00:46:13 Ben Horowitz00:47:32 Seinfeld as an association exercise00:52:27 What Marcus is doing at MongoDB00:58:30 How MongoDB can help at any level01:01:00 Working at MongoDB01:08:14 FarewellsResources mentioned in this episode: Marcus Eagan: Website: https://marcussorealheis.medium.com The Future of Search Is Semantic & Lexical: https://marcussorealheis.medium.com/the-future-of-search-is-semantic-and-lexical-e55cc9973b63 13 Hard Things I Do To Be A Dope Product Manager: https://marcussorealheis.medium.com/13-hard-things-i-do-to-be-a-dope-database-product-manager-7064768505f8 Github: https://github.com/MarcusSorealheis Twitter: https://twitter.com/marcusforpeace MongoDB: Website: https://www.mongodb.com/ Atlas: https://www.mongodb.com/cloud/atlas/register Careers: https://www.mongodb.com/careers Others: Damerau-Levenshtein distance: https://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance Lucene: https://lucene.apache.org/core/ Target HVAC Incident (2014, Archive Link): https://archive.is/Wnwob  Mergify:Website: https://mergify.com/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
9/26/20221 hour, 10 minutes, 7 seconds
Episode Artwork

142: Data Ops with Douwe Maan

Douwe Maan’s journey sounds too fantastic to be true, yet the tale that Meltano’s founder shares with Jason and Patrick today is very, very real. Whether it’s about doing software development by 11, joining Gitlab while juggling college responsibilities, or building his own company during today’s challenging times, he has quite the story to tell. In today’s episode, he speaks on Twitter, his perspective on remote work, and why data operations are a critical part of developer stacks in today’s world.00:01:00 Introductions00:03:44 Hustling online at 1100:08:08 From iOS to web-based development00:10:20 How Douwe balanced school and work00:12:05 Sid Sijbrandij00:19:13 Why Twitter was integral in Douwe’s journey00:21:01 What Meltano offers for data teams00:22:01 Remote work00:30:59 Gitlab’s data team and what they do00:44:40 What tools do data engineers use00:47:40 Singer00:50:26 Game designer travails00:58:59 Where data operations come in01:05:12 Getting started with Meltano01:12:00 Meltano as a company01:22:09 FarewellsResources mentioned in this episode:Douwe Maan: Website: https://douwe.me/ Twitter: https://twitter.com/douwem GitLab: https://github.com/DouweM Meltano: Website: https://meltano.com/ Careers: https://boards.greenhouse.io/meltano Singer:Website: https://www.singer.io/ Mergify:Website: https://mergify.com/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
9/12/20221 hour, 23 minutes, 45 seconds
Episode Artwork

141: Social Gaming with Chip Morningstar

00:01:03 Introductions00:04:47 Mojovision00:06:07 Chips’ storied journey00:11:06 Project Xanadu00:18:45 Getting into Lucasfilm00:31:31 Artificial Intelligence in games00:39:48 GTA MP01:00:10 How the game industry drives people01:08:29 Agoric and its niche in the blockchain01:20:12 Javascript’s securability01:22:46 Working with Agoric01:32:20 What skills Agoric’s team looks for01:35:31 Chip’s parting thoughts01:37:00 FarewellsResources mentioned in this episode:Chip Morningstar:Twitter: https://twitter.com/epopt Agoric: Website: https://agoric.com/ Careers: https://agoric.com/careers/ Habitat Chronicles:Website: http://habitatchronicles.com/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
8/22/20221 hour, 38 minutes, 17 seconds
Episode Artwork

140: Developer Burnout and Infrastructure as Code with Ronak Rahman

00:00:57 Introductions00:01:51 How Ronak got started in programming00:06:03 The first encounter with burnout00:11:49 Double-edged benefits00:17:23 Spoon theory00:19:07 Why relationship clarity matters00:25:11 A cold room story00:30:59 Context switching’s relevance00:35:45 QTorque’s solution to monitor cloud automation costs00:39:19 Setting up lifetimes00:42:17 Bom lists00:49:19 How Quali helps with the challenges00:54:40 What to do to actualize your true self00:58:00 FarewellsResources mentioned in this episode: Ronak Rahman:    Twitter: https://twitter.com/ofronak Quali:          Website: https://www.quali.com/          Linkedin: https://www.linkedin.com/company/qualisystems/          QTorque Free Tier: https://www.qtorque.io/pricing/          Join QTorque: https://portal.qtorque.io/joinIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
8/9/202259 minutes, 27 seconds
Episode Artwork

139: Scientific Python with Guido Imperiale

00:00:45 Introductions00:02:22 The sluggish Python-based system that Guido revitalized00:06:03 Meeting the challenge of adding necessary complexity to a project00:11:59 Excel in banking00:18:15 Guido’s shift into Coil00:19:29 Scooby-Doo pajamas00:20:21 What motivates people to come in to the office today00:24:09 Pandas00:35:35 Why human error can doom an Excel setup00:39:29 BLAS00:46:20 A million lines of data00:51:43 How does Dask interact with Gambit00:54:40 Where does Coil come in00:59:34 The six-o-clock question01:03:53 Dealing with matters of difficult decomposition01:12:07 The Coil work experience01:15:37 Why contributing is impressive01:20:20 Coil’s product offering01:21:19 FarewellsResources mentioned in this episode:Guido Imperiale:Github: https://github.com/crusaderky Coiled: Website: https://coiled.io Careers: https://coiled.io/careers/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
7/25/20221 hour, 23 minutes, 37 seconds
Episode Artwork

138: Fixing the Internet with John Day

00:00:24 Introductions00:00:49 IP v600:04:50 OSI00:12:53 The IP v7 debate00:20:18 The definition of an address’s scope00:21:38 Why John feels DNS was a mistake00:26:40 How IP mobility works00:32:13 Bluetooth 00:41:41 Where will Internet architecture go from here00:49:49 Understanding the problem space00:59:04 The angels in the details01:00:53 Scientific thinking vs engineering thinking01:04:01 Victorian architecture01:06:11 John’s career advice01:11:18 Garbage Can Model01:14:38 How to make the most out of college today01:27:05 FarewellsResources mentioned in this episode: Professor John D. Day: Wikipedia: https://en.wikipedia.org/wiki/John_Day_(computer_scientist) Website: https://www.bu.edu/met/profile/john-day/ Book: https://www.oreilly.com/library/view/patterns-in-network/9780132252423/ Terminologies: CIDR: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing OSI: https://en.wikipedia.org/wiki/OSI_model Connectionless Network Protocol: https://en.wikipedia.org/wiki/Connectionless-mode_Network_Service SIP (Session Initiation Protocol): https://en.wikipedia.org/wiki/Session_Initiation_Protocol Garbage can model: https://en.wikipedia.org/wiki/Garbage_can_model If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
7/12/20221 hour, 28 minutes, 7 seconds
Episode Artwork

137: The Origins of the Internet with John Day

00:01:01 Introduction00:01:28 COVID and the challenge of teaching00:04:11 John’s academic and career path00:08:14 LSI technology00:12:13 Collaborative software development in the day00:15:24 ARPANET’s early use00:20:08 Atom bomb and weather simulations00:26:55 The message-switching network 00:34:57 Pouzin00:38:00 Every register had a purpose00:45:15 The Air Force in 197200:52:10 Low memory00:59:14 Early problems with TCP01:11:51 The separation of mechanism and policy01:23:25 FarewellsResources mentioned in this episode:Professor John D. Day: Wikipedia: https://en.wikipedia.org/wiki/John_Day_(computer_scientist) Website: https://www.bu.edu/met/profile/john-day/ Book: https://www.oreilly.com/library/view/patterns-in-network/9780132252423/  Pouzin Society:  Website: https://pouzinsociety.org/  Twitter: https://twitter.com/pouzinsociety If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
6/27/20221 hour, 24 minutes, 56 seconds
Episode Artwork

136: Metaverse with Daniel Liebeskind

136: Metaverse with Daniel LiebeskindDecentralizing the future can often lead to missing out on genuine human communication. Daniel Liebeskind, Cofounder and CEO of Topia, talks about how they’re working to avoid that pitfall while building the foundation of a better online experience. Whether its his lessons from Burning Man, keeping the human spirit alive in today’s technological frontier, or how Topia fits in the future, Daniel has something for listeners.00:01:34 Introduction00:02:15 Daniel and early programming experience00:07:51 How coding felt like sorcery00:09:35 Skill trees00:16:10 Second Life00:19:56 Enhancing versus replacing real life experiences00:26:28 A decentralized Metaverse00:29:54 Web 2 versus Web 3 00:34:15 /r/place00:44:16 Why boom cycles are important for tech00:46:03 Topia for consumers00:52:47 Topia as a company00:55:50 Opportunities at Topia00:58:00 Topia.io01:03:50 FarewellsResources mentioned in this episode:Daniel Liebeskind, Cofounder and CEO of Topia: LinkedIn: https://www.linkedin.com/in/dliebeskind/ Website: https://medium.com/@dliebeskind Twitter: https://twitter.com/dliebeskind Topia: Website: https://topia.io/topia/careers LinkedIn:  https://www.linkedin.com/company/topia-io/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
6/14/20221 hour, 4 minutes, 51 seconds
Episode Artwork

135: Kubernetes with Aran Khanna

00:00:15 Introduction00:01:03 Aran Khanna and his background00:05:12 The Marauder’s Map that Facebook hated(Chrome Extension)00:20:11 Why Google made Kubernetes00:31:14 Horizontal and Vertical Auto-Scaling00:35:54 Zencastr00:39:53 How machines talk to each other00:46:32 Sidecars00:48:25 Resources to learn Kubernetes00:52:59 Archera00:59:31 Opportunities at Archera01:01:08 Archera for End Users01:02:30 Archera as a Company01:05:46 Farewells   Resources mentioned in this episode:Aran Khanna, Cofounder of Archera: LinkedIn: https://www.linkedin.com/in/aran-khanna/ Website: http://arankhanna.com/menu.html Twitter: https://twitter.com/arankhanna Archera: Website: https://archera.ai/ LinkedIn: https://www.linkedin.com/company/archera-ai/ Twitter: https://twitter.com/archeraai Kubernetes: Website: https://kubernetes.io/ Documentary: https://www.youtube.com/watch?v=BE77h7dmoQU If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon  ★ Support this podcast on Patreon ★
6/6/20221 hour, 7 minutes, 19 seconds
Episode Artwork

134: Ephemeral Environments with Benjie De Groot

134: Ephemeral Environments with Benjie De GrootDownloadHow do you test changes to your web backend or database?  Many people have a "production" and one "development" database, but the development database can easily become broken by one engineer and thus unusable for the rest of the team.  Also, how would two engineers make changes in parallel to the development environment?  What if you could spin up hundreds or thousands of development databases as you need them? Today we have Benjie De Groot, Co-Founder and CEO of Shipyard to explain ephemeral environments and how virtual machines and containers have made massive improvements in devops! 00:00:15 Introduction00:00:24 Introducing Benjie De Groot00:01:26 Benjie’s Programming Background00:06:34 How Shipyard started00:09:17 Working in Startups vs. Tech Giants00:19:28 The difference between Virtual Machines and Containers00:26:17 Local Development Environment00:40:27 What is a DevOps engineer and what does it entail?00:45:42 Zencastr00:50:12 Shipyard as a company00:55:29 How Shipyard gets clients01:06:48 Farewells     Resources mentioned in this episode: Benjie De Groot, Co-Founder & CEO at Shipyard: LinkedIn: https://www.linkedin.com/in/bueller/ Podcast: https://www.heavybit.com/library/podcasts/the-kubelist-podcast/ Shipyard: Website: https://shipyard.build/ Careers: https://shipyard.build/careers/ LinkedIn: https://www.linkedin.com/company/shipyardbuild/ Twitter: https://twitter.com/shipyardbuild Community Website: https://ephemeralenvironments.io/ GitHub: https://github.com/shipyard Heavybit: Website: https://www.heavybit.com/ LinkedIn: https://www.linkedin.com/company/heavybit/ Twitter: https://twitter.com/heavybit                  If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
5/24/20221 hour, 7 minutes, 54 seconds
Episode Artwork

133: Solving for the Marketplace Problem with Andrew Yates

As anyone who listens to the show regularly knows, I've always been fascinated by marketplaces.  How do we figure out what to charge for something, and how do we match buyers and sellers?  How does a company like Uber match drivers to riders so quickly?  Today we have Andrew Yates, Co-Founder & CEO at Promoted.ai, to talk about marketplaces and how to optimize for this two-sided problem. 00:00:15 Introduction00:00:27 Introducing Andrew Yates00:00:50 Andrew’s Programming Background00:04:19 Andrew at Promoted.AI00:08:17 What is a Marketplace?00:17:45 Marketplace Rankings00:22:50 Short-term vs Long-term Experience00:24:43 Machine Learning and the Marketplace00:34:57 Measurements00:37:09 Promoted.AI Integration00:38:31 How Promoted.AI Measures Success00:41:14 Auction Theory00:46:08 Experience with YCombinator00:50:34 Promoted.AI as a Company00:55:47 Farewells   Resources mentioned in this episode: Andrew Yates, Co-Founder & CEO at Promoted.ai: LinkedIn: https://www.linkedin.com/in/andrew-yates-0217a985/ Twitter: https://mobile.twitter.com/ayates_promoted  Promoted.ai: Website: https://www.promoted.ai/ LinkedIn: https://www.linkedin.com/company/promoted-ai/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon  ★ Support this podcast on Patreon ★
5/9/202256 minutes, 4 seconds
Episode Artwork

132: Funding Open-Source Projects

00:00:15 Introduction00:01:24 Gaming setups00:12:25 News 00:12:27 I was wrong, CRDTs are the future 00:17:18 How we lost 54k Github stars 00:21:10 DALL-E  00:25:45 Inside the Longest Atlassian Outage of All Time 00:35:11: Sponsor00:36:22 Book of the Show 00:36:38 Indie Boardgame Designers Podcast 00:37:24 The Laundry Files 00:40:35 Tool of the Show 00:40:39 Zapier 00:42:21 Earthly 00:46:46 Funding open-source projects01:19:44 How to get funding for open-source projects01:22:47 Farewells  Resources mentioned in this episode:Media: The King of Kong: A Fistful of Quarters (2017) Class Action Park (2020) Indie Boardgame Designers Podcast: https://indieboardgamedesigners.com/ GitHub Stars Won’t Pay Your Rent: https://medium.com/@kitze/github-stars-wont-pay-your-rent-8b348e12baed News: I Was Wrong, CRDTs Are The Future: https://josephg.com/blog/crdts-are-the-future/ How We Lost 54k GitHub Stars: https://httpie.io/blog/stardust DALL-E: https://openai.com/blog/dall-e/ Inside the Longest Atlassian Outage of All Time: https://newsletter.pragmaticengineer.com/p/scoop-atlassian?s=r Books: Indie Board Game Designers Podcast The Laundry Files: https://amzn.to/3kdWWQg Tools: Zapier: https://zapier.com/ N8n: https://n8n.io/ Earthly: https://earthly.dev/ Adam Gordon Bell: Twitter: https://twitter.com/adamgordonbell Website: https://adamgordonbell.com/ LinkedIn: https://www.linkedin.com/in/adamgordonbell/ CoRecursive: https://corecursive.com/   If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
4/25/20221 hour, 24 minutes, 50 seconds
Episode Artwork

131: Supporting your Favorite Creators with Brave with Jimmy Secretan

I've been a big fan of Brave Browser ever since attending a presentation from Brandon Eich back in 2017.  Brave was one of the first browsers to aggressively block the ability for websites to share information on your computer without your consent (i.e. third party cookies).  I'm so excited to sit down with Jimmy Secretan, VP of Ads and Premium Services of Brave, and talk about all things Brave, from the Browser to the other products to the way Brave takes privacy on the internet to a whole new level, while also empowering content creators and advertisers who depend on ads for income and to promote their businesses.00:00:15 Introduction00:00:44 Introducing Jimmy Secretan00:01:10 How Brave started00:09:33 Brave and internet advertising00:21:13 Local machine learning00:32:07 What is BAT (Brave Attention Tokens) 00:42:59 Cross-platform data synchronization 00:44:28 Chromium00:50:22 Public and Private key encryption and authentication00:54:27 Brave for Content Creators00:59:03 Where is Brave now and what is its trajectory01:05:40 Opportunities in Brave01:13:10 FarewellsResources mentioned in this episode:Jimmy Secretan, VP of Ads and Premium Services: Twitter: https://twitter.com/jsecretan LinkedIn: https://www.linkedin.com/in/jimmysecretan/  Brave: Website: https://brave.com/ Brave Careers: https://brave.com/careers/ Twitter: https://twitter.com/brave LinkedIn: https://www.linkedin.com/company/brave-software/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
4/11/20221 hour, 14 minutes, 12 seconds
Episode Artwork

130: Ethical Hacking with Ted Harrington

"Hacking" is a word that evokes awe from the public, laughter from developers, and pure fear from technology leaders.  But what really is hacking?  What does trust really mean and how do we acquire and keep trust on the Internet?  It turns out that, while hacking is associated with computers, the methods behind it have been around since the dawn of time.  Today we have Ted Harrington from ISE to dive deep into hacking, all the way from the medieval times to today. 00:00:15 Intro00:01:25 Introducing Ted Harrington00:07:10 Ethical Hackers, Non-Ethical Hackers, and Productivity00:11:58 Starting out in Ethical Hacking/Security00:14:40 Imposter Syndrome00:19:34 What is Hacking?00:30:48 Is Hacking like magic?00:38:14 Defense in Depth00:42:04 Earning trust and The Departed movie (Spoiler alert)00:59:52 DEF CON® Hacking Conference01:02:46 Tips on how not to get hacked01:10:08 ISE.io culture and opportunities01:24:13 Farewells     Resources mentioned in this episode:  Companies:    ISE (Independent Security Evaluators)o    Website: https://www.ise.io/o    LinkedIn: https://www.linkedin.com/company/independent-security-evaluatorso    Twitter: https://twitter.com/ISEsecurityo    Facebook: https://facebook.com/ISE.infosec People:    Ted Harringtono   Website: https://www.tedharrington.com/o   LinkedIn: https://www.linkedin.com/in/securityted/o   Twitter: https://twitter.com/SecurityTedo   Book: https://www.amazon.com/Hackable-How-Application-Security-Right/dp/154451767X  Sponsor:    MParticleo   Website: https://www.mparticle.com/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon  ★ Support this podcast on Patreon ★
3/28/20221 hour, 25 minutes, 34 seconds
Episode Artwork

Episode 129 - Web3.0: Breaking free from the Client Server Model with Michelle Lee

Brief Summary: What is Web 3.0? Guest speaker Michelle Lee, Product Lead of Protocol Labs, shares how web 3.0 will revolutionize the Internet and bring trust back into the web. 00:00:25 Introduction00:01:36 Michelle Lee’s career 00:03:10 What is human-computer interaction?00:04:55 The Google Sheets user experience00:06:19 Google Checkout, user feedback, and emails00:10:23 Code for America00:13:47 The real power of Open Source00:14:14 Web 3.000:23:04 IPFS network accessibility00:26:14 How does IPFS handle bogus content?00:38:56 Network storage costs00:43:03 Privacy and identification on IPFS00:45:23 Content moderation from the Web 3.0 perspective00:49:48 Audius00:54:20 Protocol Labs and IPFS00:55:26 Working with Protocol Labs01:05:00 Farewells   Resources mentioned in this episode:   Companies: Protocol Labs: Website: https://protocol.ai/ Twitter: https://twitter.com/protocollabs LinkedIn: https://www.linkedin.com/company/protocollabs/ Youtube: https://www.youtube.com/ProtocolLabs Filecoin: https://filecoin.io/ Hackathons @ Protocol Labs: https://hackathons.filecoin.io/ Course Learning @ Protocol Labs: https://proto.school/ Metamask:https://metamask.io/ Fleek: Website: https://fleek.co/ Space Storage: https://fleek.co/storage/ Estuary:Website: https://estuary.tech/ Audius:Website: https://audius.co/    Social Media:Michelle Lee, Product at Protocol Labs Twitter: https://twitter.com/mishmosh LinkedIn: https://www.linkedin.com/in/michellelee3   Sponsor:Rollbar Website: https://rollbar.com/ Freebies: https://try.rollbar.com/pt/  Download the episode hereIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/ Reach out to us via email: [email protected] You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM  Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
3/15/20221 hour, 5 minutes, 44 seconds
Episode Artwork

128: WebAssembly with Kevin Hoffman

Summary:What is WebAssembly? Guest speaker Kevin Hoffman, CTO of Cosmonic shares what WebAssembly is, why it exists, and what kind of things you can do with it.Notes:00:00:16 Introduction00:00:52 Cosmonic during COVID00:02:45 Kevin Hoffman’s career and Cosmonic’s begginings00:12:39 WebAssembly integrations00:16:20 What is WebAssembly?00:27:30 The developer experience00:30:30 WebAssembly, JSON, and other object interactions00:36:35 Rollbar00:41:08 Compiler linking00:49:27 wasmCloud00:54:21 Decoupling clouds01:01:51 Cosmonic fostering wasmCloud/WebAssembly01:03:28 Cosmonic as a company01:09:33 Opportunities at Cosmonic01:13:03 FarewellsResources mentioned in this episode:Companies: Cosmonic Website: https://cosmonic.com/ Twitter: https://twitter.com/cosmonic LinkedIn: https://www.linkedin.com/company/cosmonic-corp/ People: Kevin Hoffman, Chief Technology Officer at Cosmonic Twitter: https://twitter.com/KevinHoffman LinkedIn: https://www.linkedin.com/in/%F0%9F%A6%80-kevin-hoffman-9252669/ Sponsor: Rollbar Website: https://rollbar.com/ Freebies: https://try.rollbar.com/pt/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown onFacebook | Apple Podcasts | Spotify | Player.FMJoin the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
2/28/20221 hour, 13 minutes, 54 seconds
Episode Artwork

127: AI for Code with Eran Yahav

Brief Summary:Programming is difficult as it is, but imagine how difficult it was without all the current tools, compilers, synthesizers, etc. that we have today. Eran Yahav, Chief Technology Officer at Tabnine shares how AI is currently helping with code writing and how it could change in the future.00:00:16 Introduction00:00:51 Eran Yahav’s programming background00:08:11 Balance between Human and the Machine00:11:49 Static Analysis00:29:42 Similarities in Programming Constructs00:25:30 Average vs Tailored tooling00:36:19 Machine Learning Quality Metrics 00:38:27 Rollbar00:40:19 Model Training vs Statistic Matching00:50:19 Developers Interacting with their Code in the Future01:00:18 Tabnine01:08:17 FarewellsResources mentioned in this episode:Companies:Tabnine:  Website: https://www.tabnine.com/ Twitter: https://twitter.com/Tabnine_ LinkedIn: https://www.linkedin.com/company/tabnine/ Social Media:Eran Yahav, Chief Technology Officer at Tabnine Twitter: https://twitter.com/yahave LinkedIn: https://www.linkedin.com/in/eranyahav/ Sponsor:Rollbar Website: https://rollbar.com/ Freebies: https://try.rollbar.com/pt/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
2/14/20221 hour, 8 minutes, 59 seconds
Episode Artwork

126 - Serverless Computing with Erez Berkner

Brief Summary:Erez Berkner, CEO of Lumigo, talks about his company, going serverless, and why you should too. He shares his experience and tips regarding serverless computing and its ever-growing opportunities in modern computing.00:00:16 Introduction00:01:43 Introducing Erez Berkner00:06:27 The start of Lumigo00:10:42 What is Serverless00:20:10 Challenges with going serverless00:39:53 Securing Lambdas00:46:50 Lumigo and breadcrumbs 00:55:46 How to get started with Lumigo 00:57:06 Lumigo and databases 00:58:20 Lumigo pricing 01:00:28 Lumigo as a company01:06:30 Contacting Lumigo01:11:01 FarewellsResources mentioned in this episode:Companies: Lumigo: https://lumigo.io/ Lumigo Free Trial: https://platform.lumigo.io/auth/signup Socials:Erez Berkner: Twitter: https://twitter.com/erezberkner LinkedIn: https://www.linkedin.com/in/erezbe/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
1/24/20221 hour, 11 minutes, 38 seconds
Episode Artwork

125 - Object Caching Systems

DownloadWe are sponsored by audible! http://www.audibletrial.com/programmingthrowdownWe are on Patreon! https://www.patreon.com/programmingthrowdownT-Shirts! http://www.cafepress.com/programmingthrowdown/13590693Join us on Discord! https://discord.gg/r4V2zpCObject Caching SystemsMany people have heard the names "redis" or "memcached" but fewer people know what these tools are good for or why we need them so badly.  In this show, Patrick and I explain why caching is so important and how these systems work under the hood.Intro topic: Public database & cache services (Planetscale & Upstash)News/Links: Log4J Vulnerability https://jfrog.com/blog/log4shell-0-day-vulnerability-all-you-need-to-know/ https://www.microsoft.com/security/blog/2021/12/11/guidance-for-preventing-detecting-and-hunting-for-cve-2021-44228-log4j-2-exploitation/ Scan of the Month: Gameboyshttps://scanofthemonth.com/game-boy-original/ Hyrum’s Lawhttps://www.hyrumslaw.com/ Make the Internet Yours Again With an Instant Mesh Networkhttps://changelog.complete.org/archives/10319-make-the-internet-yours-again-with-an-instant-mesh-network Book of the Show Jason: AI 2041https://amzn.to/3fOqnWQ Patrick: Dawnshard - Brandon Sandersonhttps://amzn.to/3tFmuMi Audible Plug http://www.audibletrial.com/programmingthrowdownPatreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the Show JasonSwagger: https://swagger.io/ Patrickripgrep https://github.com/BurntSushi/ripgrep Topic: Object Caching Systems The need Latency In memory Caching Disadvantages compared to DB Size limits (memory) Limited query support Limited persistence options Stale caches How it works Key-value stores Special operations for multi-get /multi-step Expiry timers on each key Hashing Examples Redis Memcached DynamoDB Google datastore Firebase database 00:00:15 Introduction00:00:54 New Year’s Resolutions00:03:59 Saving money on cloud servers00:17:20 Scan of the Month00:20:14 Hyrum’s Law00:25:30 Make the Internet Yours Again with an Instant Mesh Network 00:31:45 Book of the Show 00:31:56 AI 2041 00:35:25 Don Shard00:37:35 Tool of the Show00:38:17 Swagger00:59:10 ripgrep0:45:31 Object Caching Systems01:10:22 High Frequency Trading01:14:07 FarewellsIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordYou can also help support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
1/21/20221 hour, 14 minutes, 56 seconds
Episode Artwork

124 - Holiday Episode 2021!

In this holiday episode, Jason and Patrick answer questions from listeners. They also look back at the past year’s challenges and victories.00:15:35 (Kevin)What's been the biggest thing that pushed you to learn more during your career?Was it taking a new job and moving somewhere, doing stuff in your spare time or something like a new hobby or anything else?00:29:38 (Kevin)Favorite city to live in or visit?00:31:29 First Winner (James B.)00:32:21 (Clever Clover/James)Next biggest tech prediction.00:36:28 (Paul) If we could standardize all the code there is out there to one particular language, which language would it be and why would it be Python?00:40:40 Second Winner (Collin G.)00:41:21 (Necrous)If you could redo your career and education path, what would you change?00:47:12 Third Winner (Matt I.)00:47:48 (MQNC)What is the dirtiest hackiest anti-pattern piece of code you ever wrote in full consciousness and even maybe enjoying the thrill and why was it the way to go?00:54:36 (Leedle)Thoughts on server side rendering React and NextJS?00:57:00 Fourth Winner (Glenn S.)00:57:25 (NC Plattipus)The visual programming language, LabVIEW?01:05:02 Fifth Winner (James F.)01:05:53 (Gethan)Future technology or big technologies, what about AR? 01:10:18 (Gethan)On the topic of getting a master's degree or classes, do you see a benefit of getting certifications? 01:18:16 Sixth Winner (Don R.)01:19:38Predictions we made last 2020 and how they held up.01:26:00FarewellsIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
1/10/20221 hour, 27 minutes, 16 seconds
Episode Artwork

123 - Project Planning

How do you stay focused when working on large projects that span many months?  In this duo episode, we talk about Project Planning techniques and trends!  We also cover solving personal data storage problems and building CNC machines & printers. 00:00:15 Introduction00:01:33 UML00:05:22 Home NAS and other personal storage solutions00:18:09 Homebrew CNC machine00:29:37 Raft (Consensus Algorithm)00:36:54 The Mathematics of 204800:45:44 Book of the Show 00:45:57 Manager Tools  00:49:10 Make Magazine 00:57:50 Tool of the Show 00:57:51 Workflowy 00:59:10 GitHub Desktop 01:01:00 Project Planning01:22:11 FarewellsResources mentioned in this episode:Tools: Workflowy: https://workflowy.com/b/ Github Desktop: https://desktop.github.com/ Companies: Manager Tools: https://www.manager-tools.com/ Make Magazine: https://makezine.com/ Other references:  QT Designer: https://www.qt.io/ Shapeoko: https://carbide3d.com/shapeoko/ Curves and Surfaces by Bartosz Ciechanowski: https://ciechanow.ski/curves-and-surfaces/ Inkscape: https://inkscape.org/ Raft: https://raft.github.io/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
12/15/20211 hour, 23 minutes, 2 seconds
Episode Artwork

122 - Building Conversational AI's with Joe Bradley

When you ask Alexa or Google a question and it responds, how does that actually work?  Could we have  more in-depth conversations and what would that look like?  Today we dive into conversational AI with Joe Bradley and answer these questions and many more.Thanks for supporting the show!00:00:15 Introduction00:01:24 Introducing Joe Bradley00:04:44 How Joe got into Conversation AI00:21:35 Zork and WordNet00:27:48 Automatic Image Detection/Captioning00:39:31 MuZero00:45:27 Codex00:50:15 GPT and businesses00:55:16 Artificial General Intelligence01:00:05 What is LivePerson01:16:30 Working at LivePerson01:21:18 Job opportunities in LivePerson01:27:04 How to reach Joe01:32:40 FarewellsResources mentioned in this episode:Companies: LivePerson: liveperson.com PyTorch: pytorch.org TensorFlow: tensorflow.com ★ Support this podcast on Patreon ★
10/25/20211 hour, 34 minutes, 41 seconds
Episode Artwork

121 - Edge Computing with Jaxon Repp

What is "The Edge"?  The answer is that it means different things to different people, but it always involves lifting logic, data, and processing load off of your backend servers and onto other machines.  Sometimes those machines are spread out over many small datacenters, or sometimes they are in the hands of your customers.  In all cases, computing on the edge is a different paradigm that requires new ways of thinking about coding.  We're super lucky to have Jaxon on the show to share his experiences with edge computing and dive into this topic!!00:00:23 Introduction00:01:15 Introducing Jaxon Repp00:01:42 What is HarperDB?00:08:10 Edge Computing00:10:06 What is the “Edge”00:14:58 Jaxon’s history with Edge Computing and HarperDB00:22:35 Edge Computing in everyday life00:26:12 Tesla AI and data00:28:09 Edge Computing in the oil industry00:35:23 Docker containers00:42:33 Databases00:48:29 Data Conflicts00:55:43 HarperDB for personal use01:00:00 MeteorJS01:02:29 Netflix, as an example01:06:19 The speed of edge computing01:08:43 HarperDB’s work environment and who is Harper?01:10:30 The Great Debate01:12:17 Career opportunities in HarperDB01:18:56 Quantum computing01:21:22 Reach HarperDB01:23:53 Raspberry Pi and HarperDB home applications01:27:20 FarewellsResources mentioned in this episode:Companies HarperDB https://harperdb.io/ MeteorJS https://www.meteor.com/ Tools Raspberry Pi https://www.raspberrypi.org/ Docker https://www.docker.com/ If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
10/22/20211 hour, 28 minutes, 44 seconds
Episode Artwork

Machine Learning Embeddings with Edo Liberty

00:00:24 Introduction00:02:19 Edo's Background00:08:20 What are Embeddings?00:14:00 Self-Organizing Maps & how humans store data00:22:27 The lifecycle of a machine learning system00:34:40 The weirdness of high-dimensional spaces00:42:20 How to manage a vector database00:47:01 Pinecone the company ★ Support this podcast on Patreon ★
9/27/202159 minutes, 53 seconds
Episode Artwork

The Art of Vacations

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdownWe are on Patreon! https://www.patreon.com/programmingthrowdownT-Shirts! http://www.cafepress.com/programmingthrowdown/13590693Join us on Discord! https://discord.gg/r4V2zpCThe Art of VacationsTaking a good vacation is as important as getting a good night's sleep (*very important*).  It may sound silly on its face, but planning a vacation and planning around your vacation is extremely important to ensure that you are in the right headspace the rest of the year.  This is especially true in the COVID era where many of us are working from home.  In this episode, we dive into why vacations are so important, how to plan a relaxing vacation, and how to make sure that your team is supported while you are out.Intro topic: Virgin Galactic and Virgin Orbit and Blue OriginNews/Links: TextStyleBrush: Transfer of Text Aesthetics from a Single Examplehttps://deepai.org/publication/textstylebrush-transfer-of-text-aesthetics-from-a-single-example Berkshire Hathaway Stock Price integer overflowhttps://www.theregister.com/2021/05/07/bug_warren_buffett_rollover_nasdaq/ LineageOShttps://lineageos.org/ Crafting Interpreters is now an actual bookhttps://craftinginterpreters.com/ Book of the Show Jason: How to lead in product managementhttps://amzn.to/2UcPzPK Patrick: Holy Sister (Book of the Ancestor #3) by Mark Lawrencehttps://amzn.to/3fVZscn Audible Plug http://www.audibletrial.com/programmingthrowdownPatreon Plug https://www.patreon.com/programmingthrowdown?ty=hTool of the Show Jason: 7 Billion Humans Patrick: Moss (Oculus VR, PC VR, PS VR) Topic: Vacations Why 7 types of rest https://ideas.ted.com/the-7-types-of-rest-that-every-person-needs/ Gives you energy for the next crunch Stepping back provides perspective Preparing the team for unexpected absences Why not Can lose context Missed opportunities Slipped deadlines How to set up the perfect vacation Handing off responsibility Documenting code Decide how much to work on vacation How to be on vacation Pre-cation Handling crises / unexpected events Post-cation How to come back from vacation Create email filters / smart folders Skim new pull requests / scrum documents Review chat logs  Types of vacations 1-3 days: delay results 1-2 weeks: Deputize 3+ weeks: Replace If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordYou can also help support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
9/15/20211 hour, 25 minutes, 30 seconds
Episode Artwork

Building a Robotics Software Platform with Abhay Venkatesh

You’ve seen the dancing Boston Dynamics dogs, Honda’s ASIMO greeting people at malls, and the half-court-shooting robot at the Olympics, among other awe-inspiring robot stories that nowadays are getting increasingly more common. But equally fascinating, especially for us programmers, is the amount of programming and structure needed to make sure these robots work as intended. In this episode, we talk with Abhay Venkatesh, Software Engineer at Anduril Industries, about Platforms for Robotics (PFRs), and the intricacies happening inside these mechanical wonders.This episode touches on the following key topics and ideas:00:00:24 Introduction00:01:10 Introducing Abhay Venkatesh00:03:00 What robotics is as a field or practice00:07:18 Platform for Robotics (PFRs)00:10:07 OODA loop00:12:27 What makes up a Platform for Robotics?00:14:17 Raspberry Pi 00:15:30 Nvidia Tegra00:17:17 Edge computing00:19:29 Telemetry00:22:06 Ad: SignalWire, a next-gen video collaboration platform00:23:30 Real-time constraints and safety challenges00:28:31 Formal verification and defensive programming00:32:28 Operating systems in robotics00:34:27 Nix and reproducible hermetic builds00:37:52 Key aspects in robotics software development00:41:14 Deployment00:46:24 Simulation00:48:51 Google testing pyramid 00:52:01 Actuators00:55:27 Future of PFRs01:02:49 FarewellsResources mentioned in this episode:Companies Anduril Industries https://www.anduril.com/ Nvidia https://www.nvidia.com/en-us/ Boston Dynamics https://www.bostondynamics.com/ Tools Arduino https://www.arduino.cc/ Raspberry Pi https://www.raspberrypi.org/ Nvidia Tegra https://developer.nvidia.com/tegra-development NixOS https://nixos.org/ Docker https://www.docker.com/ Bazel https://bazel.build/ Our sponsor for this episode is SignalWirehttps://signalwire.com/Use code THROWDOWN for $25 in developer creditAbhay’s website: https://abhayvenkatesh.com/Abhay on Twitter: https://twitter.com/AbhayVenkatesh1If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordHelp support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
8/23/20211 hour, 4 minutes, 25 seconds
Episode Artwork

117 - Authentication with Aviad Mizrachi

Brief Summary:Authentication has become a necessity in a digital world that’s ever-increasing in complexity. What can you do to arm yourself against the constant threat of data breaches and hacks? In this episode Jason sits down with Aviad Mizrachi, CTO and Co-Founder of Frontegg, to give us valuable insight into how Authentication works, and how these help you become more defensible against attacks.This episode touches on the following key topics and ideas:00:00:24 Introduction00:01:10 Introducing Aviad Mizrachi00:04:36 The login00:06:32 The many intricacies of Authentication00:10:25 How are passwords sent to servers?00:11:26 Query param00:16:59 Multi-factor authorization (MFA)00:20:11 Time-based One-Time Password (TOTP)00:28:05 Single Sign-on (SSO) Cross-site scripting00:33:38 Ad: SignalWire, a next-gen video collaboration platform00:35:03 Session tokens00:36:36 Cross-site scripting (XSS)00:39:24 JSON web tokens (JWTs)00:41:24 Difference between session token and refresh token00:49:33 More about Frontegg, Aviad’s company00:54:14 SQL injection attack00:56:11 Auditing and audit logs00:59:42 Authentication in mobile apps01:00:50 Frontegg hiring and intern opportunities01:05:22 Frontegg product offeringsResources mentioned in this episode:Tools Frontegg https://frontegg.com/ TypeScript https://www.typescriptlang.org/ Angular https://angular.io/guide/architecture Microsoft Identity and Access Management https://www.microsoft.com/en-ww/security/business/identity-access-management Google Identity https://developers.google.com/identity Okta https://www.okta.com/ Articles:How Twitter CEO Jack Dorsey's Account Was Hacked https://www.wired.com/story/jack-dorsey-twitter-hacked/ Our sponsor for this episode is SignalWirehttps://signalwire.com/You can reach Aviad on:LinkedIn | GitHubIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordYou can also help support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
8/10/20211 hour, 15 minutes, 1 second
Episode Artwork

Hash Maps

In this duo episode, Jason and Patrick introduce us to the world of hash maps, from buckets and hash functions, to differences between open and closed addressing, to minimal perfect hashes and locality sensitive hashing. A familiarity with hash maps is an oft-overlooked but highly sought-after skill, and it can be a valuable asset for those eyeing a career in programming.Along with the main topic, Jason and Patrick also talk about some of their latest interests: books, gadgets, tools and games.This episode touches on the following key topics and ideas:00:01:27 Playing games with Oculus Quest: Acron, Racket: Nx, Gorn, Superhot 00:11:05 News: “I Made a Water Computer” by Steve Mould00:14:56 colinfurze00:15:52 News: Comprehensive guide to Attention Mechanisms00:21:53 News: Starship SN1500:25:18 News: MailSync now Open source (GPL)00:28:34 Jason’s Book of the Show: Elon Musk00:32:04 Patrick’s Book of the Show: Ready Player Two00:33:40 Jason’s Tool of the Show: Datadog00:38:44 Patrick’s Tool of the Show: I Expect You to Die 00:40:30 Escape rooms00:45:39 Sudoku00:48:35 Hash maps: the promise and idea00:50:59 Hash Functions00:52:34 Examples of hash functions: Cryptographically Secure and Non-Crypto01:01:05 Load Factors01:03:43 Open vs Closed Addressing01:15:10 Minimal Perfect Hash 01:16:25 salts01:19:00 Locality Sensitive HashingResources mentioned in this episode:Tools Mailsync http://mailsync.sourceforge.net/ Mailspring https://getmailspring.com/ Datadog https://www.datadoghq.com/ SHA https://en.wikipedia.org/wiki/Secure_Hash_Algorithms MD5 https://en.wikipedia.org/wiki/MD5 MurmurHash https://github.com/aappleby/smhashera xxHash https://cyan4973.github.io/xxHash/ MapReduce https://www.ibm.com/analytics/hadoop/mapreduce Books Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future by Ashlee Vance  Ready Player Two by Ernest Cline Gadgets Oculus Quest 2 https://www.oculus.com/quest-2/ Oculus Link https://www.oculus.com/accessories/oculus-link/ Games Acron: Attack of the Squirrels! https://www.resolutiongames.com/acron Racket: Nx https://www.oculus.com/experiences/quest/2255408847836468 Gorn https://www.oculus.com/experiences/quest/3349689215139117 Superhot https://www.oculus.com/experiences/quest/1921533091289407 I Expect You to Die https://www.oculus.com/experiences/quest/1987283631365460 The Legend of Zelda: Breath of the WIld https://www.zelda.com/breath-of-the-wild/ Videos: I Made A Water Computer And It Actually Works https://www.youtube.com/watch?v=IxXaizglscw colinfurze YouTube channel https://www.youtube.com/user/colinfurze Articles: Comprehensive guide to Attention Mechanisms https://www.analyticsvidhya.com/blog/2019/11/comprehensive-guide-attention-mechanism-deep-learning/ Starship SN15 https://www.space.com/spacex-starship-sn15-launch-landing-success MailSync is now Open Source (GPL) https://community.getmailspring.com/t/a-free-open-source-future-for-mailspring/484 If you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordYou can also help support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
8/4/20211 hour, 22 minutes, 29 seconds
Episode Artwork

Route Planning with Parker Woodward

Ever wondered how route planning apps, well, plan routes? In this episode, we navigate through this fascinating topic, a field as data-driven and systemic as it is magical and compelling. Joining us is Parker Woodward, Route Expert and Marketing Director for Route4Me. We discuss how route planning works, the intricacies behind it, and how services like Route4Me perform complex balancing acts between machine learning and user-generated feedback.This episode touches on the following key topics and ideas:00:00:23 Introducing Parker00:01:54 Becoming a Route Expert00:04:22 Getting started through smaller startups00:12:41 Leveraging technology for the greater good00:14:36 The magic of route planning00:23:30 Homomorphism and satisfiability00:31:18 Geocoding00:33:06 User-generated feedback00:37:08 Importance of statistics knowledge00:39:34 The degree of automation in route planning00:42:54 Inverse decision-making00:48:47 Operations Research00:53:42 Dwarf Fortress00:56:40 US vs European routes00:57:51 What Route4Me does01:05:38 Working at Route4Me01:10:26 Route4Me APIResources mentioned in this episode:Tools Route4Me https://route4me.com Route4Me API https://route4me.io Waze https://www.waze.com Google Maps https://www.google.com/maps OpenStreetMap https://www.openstreetmap.org MapQuest https://www.mapquest.com DeepMind https://deepmind.com BooksSapiens by Yuval Noah HarariGamesDwarf Fortress http://www.bay12games.com/dwarves/ Links Waymo https://waymo.com/ Upwork https://www.upwork.com/ Reach out to Parker via email: [email protected] Parker on LinkedInIf you’ve enjoyed this episode, you can listen to more on Programming Throwdown’s website: https://www.programmingthrowdown.com/Reach out to us via email: [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM Join the discussion on our DiscordYou can also help support Programming Throwdown through our Patreon ★ Support this podcast on Patreon ★
7/7/20211 hour, 15 minutes, 54 seconds
Episode Artwork

Code Documentation with Omer Rosenbaum and Tim Post

What makes for good documentation? In this episode, we dive into one of the most important yet overlooked facets of coding. With us are Omer Rosenbaum and Tim Post of Swimm.io. Swimm is an app that allows you to create docs coupled with your code, which are auto-synced and integrated into your workflow. It makes for much more efficient, elegant, and accessible documentation. Omer is the CTO of Swimm, and Tim is Principal Development Relations and User Advocate. They are the experts who will guide us through good code documentation practices and tools, as well as share some fascinating real-life examples and stories.This episode touches on the following key topics and ideas:00:01:20 Introducing Omer and Tim00:03:28 Omer: learning tech while in the military00:06:36 Israel Tech Challenge00:08:32 Impostor Syndrome00:12:15 Tim: the consulting career route00:18:15 Stack Overflow elected moderator00:20:59 ZFS and Btrfs 00:22:49 What is good code documentation?00:34:48 Documentation and remote work00:36:99 Good practices00:40:37 Code comments00:45:20 How to write documentation00:46:59 Signs of bad code documentation00:48:05 Swimm overview00:53:21 PyTorch documentation00:54:45 PHP documentation00:56:34 Swimm’s CLI tools01:01:16 Code documentation horror stories01:07:26 Swimm offers for open-source projects and enterprises01:13:47 Working at Swimm01:19:54 The value of remote workResources mentioned in this episode:Tools Swimm https://swimm.io/ ReiserFS https://en.wikipedia.org/wiki/ReiserFS PyTorch https://pytorch.org/docs/stable/index.html Electron https://www.electronjs.org/ Git https://git-scm.com/ Stack Overflow https://stackoverflow.com/ Catch Swimm on:Twitter | Facebook | LinkedInIf you’ve enjoyed this podcast, you can listen to more programming news and updates like this one on Programming Throwdown’s website: https://www.programmingthrowdown.com/, or send us an email at [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM You can also help support Programming Throwdown through our Patreon. ★ Support this podcast on Patreon ★
6/16/20211 hour, 25 minutes, 24 seconds
Episode Artwork

Episode 113 - Full Stack Web Apps Using Only Python with Meredydd Luff

In this episode, we’re excited to have Meredydd Luff, the founder of Anvil. Anvil is a powerful tool that allows you to build full stack web apps with just Python. Without the need to be fluent in Javascript or other languages, Anvil is easy enough for beginners, but robust enough for professional work. We talk to Meredydd about Anvil and its features, as well as delve into the importance of making programming more accessible to more people.This episode touches on the following key topics and ideas:00:00:17 Jason introduces Meredydd and Anvil 00:01:06 What is Anvil?00:09:27 Web hydration00:11:00 Jupyter Notebook00:12:49 The Uplink00:14:02 GraphQL00:23:06 How Anvil works00:24:19 Skulpt00:28:09 Brython00:29:04 Pyodide00:32:46 Javascript daisy chaining00:37:11 GRPC and protocol buffers 00:39:03 “Anvil is an abstraction.”00:40:09 Escape hatches00:43:10 Anvil and Webpack00:44:35 “Learn Python and build a website.”00:45:02 Accessibility00:47:16 Meredydd’s personal background, and Anvil’s beginnings00:52:56 Putting your work out there00:56:01 Logging and capturing what people want01:01:06 Ad: ConfigCat01:03:04 Anvil’s parent company, The Tuesday Project Ltd. 01:05:22 Meredydd’s take on venture capitalism on developer tools01:08:42 Working in Anvil01:17:02 Contact details for Meredydd and AnvilResources mentioned in this episode:ToolsAnvil https://anvil.works/Python https://www.python.org/Jupyter Notebook https://jupyter.org/GraphQL https://graphql.org/Skulpt https://skulpt.org/Brython https://brython.info/Transcrypt https://www.transcrypt.org/Pyodide https://pyodide.org/en/stable/VideosMeredydd’s Lightning Talk in PyCon 2017 https://www.youtube.com/watch?v=IHUw3N15v38Turning a Jupyter Notebook into a Web App with Anvil https://www.youtube.com/watch?v=yh0B4HjQxOUPodcastStories from the Workshop, Anvil’s podcast https://anvil.works/podcastCatch Meredydd on Twitter @meredyddAnvil’s features are offered completely free for teachers and educators. Send Meredydd an inquiry through email at [email protected] ConfigCat: https://configcat.com/Get Audible: http://www.audibletrial.com/programmingthrowdownIf you’ve enjoyed this podcast, you can listen to more programming news and updates like this one on Programming Throwdown’s website: https://www.programmingthrowdown.com/, or send us an email at [email protected] can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM You can also help support Programming Throwdown through our Patreon. ★ Support this podcast on Patreon ★
6/2/20211 hour, 25 minutes, 21 seconds
Episode Artwork

Trees

In another duo episode, Jason and Patrick give an in-depth introduction to trees, their many types, approaches and functions, and their importance in modern programming. Also, peppered throughout the episode are the games, books, tools, and ideas that have currently piqued their interest.This episode touches on the following key topics and ideas:00:00:17 Avoiding drama at work00:07:10 News: C++20 (7:10)00:09:37 News: Play Co-op Diablo II in the browser00:12:58 Wreckfest00:15:07 Kaboom00:17:45 The future of remote work00:24:46 Jason’s Book of the Show: Debt: The First 5000 Years00:27:08 fractional-reserve banking00:31:30 DeFi, distributed finance00:33:08 Patrick’s Book of the Show: Harry Potter and the Sorcerer's Stone, the Illustrated Edition00:35:49 (Ad) Audible00:37:05 Jason’s Tool of the Show: Vagrant00:41:04 Patrick’s Tool of the Show: Zach Gage Games00:45:03 (Ad) ConfigCat00:46:03 feature flags00:47:03 Trees: why are they important? 00:49:43 The divide and conquer approach00:51:34 The agglometric approach00:55:57 Choosing the right tree and algorithm00:57:56 Keeping trees balanced01:01:10 binary trees01:02:52 binary trees and machine learning01:05:28 b-trees01:10:04 spatial trees: the k-d tree01:16:50 k-d trees and multidimension01:18:42 quadtrees and octrees01:21:44 r-treesResources mentioned in this episode:Books Debt: The First 5000 Years, by David Graeber https://amzn.to/3uKEoe9 Harry Potter and the Sorcerer's Stone, The Illustrated Edition, by JK Rowling https://amzn.to/2R6ILSs Games Diablo II browser game http://clouddiablo.com/ Wreckfest https://www.thqnordic.com/games/wreckfest Zach Gage Games http://stfj.net/ Tools Vagrant https://www.vagrantup.com/ Kaboom https://replit.com/kaboom Articles Article on C++20: https://oleksandrkvl.github.io/2021/04/02/cpp-20-overview.html The debate over remote work: https://www.bbc.com/news/technology-56771539 Get ConfigCat: https://configcat.com/Get Audible: http://www.audibletrial.com/programmingthrowdownIf you’ve enjoyed this podcast, you can listen to more programming news and updates like this one on Programming Throwdown’s website: https://www.programmingthrowdown.com/You can also follow Programming Throwdown on Facebook | Apple Podcasts | Spotify | Player.FM You can also help support Programming Throwdown through our Patreon.  ★ Support this podcast on Patreon ★
5/12/20211 hour, 27 minutes, 34 seconds
Episode Artwork

Episode 111: Real-time Data Streaming with Frank McSherry

In this episode, we talk with Frank McSherry, Gödel Prize-winning data scientist, and Co-founder and Chief Scientist at Materialize, Inc. Frank shares expert viewpoints drawn from his years as an academic, as well as personal insights on helping run a company at the cutting edge of real-time data streaming.Show Notes: https://www.programmingthrowdown.com/2021/05/episode-111-real-time-data-streaming.html  ★ Support this podcast on Patreon ★
5/4/20211 hour, 34 minutes, 25 seconds
Episode Artwork

Episode 110: Security with Dotan Nahum

Programming Throwdown talks cybersecurity with Dotan Nahum, CEO and Co-founder of Spectral. Dotan provides us with a high-level overview of the role of cybersecurity, its definition, evolution, and current challenges. He also shares tips for small- and medium-sized ventures on how to develop best practices.The episode touches on the following key topics and ideas:00:01:12 Evolution of modern cybersecurity 00:06:06 When to integrate security in a design00:11:54 Shadow IT00:13:50 Hacker motives and motivations; SQL Injection explained00:16:48 Firewalls and WAFs00:20:29 Cybersecurity for small- and medium-sized companies 00:23:52 “The last mile of developers”00:26:47 dotfiles00:32:23 Simple tools and good practices00:40:42 Attack vectors, attack factors00:44:16 Ransomware and phishing00:48:19 Unsafe languages00:50:02 Fuzzing00:54:11 Rust programming language00:55:54 Example security scenario with IntelliJ00:59:42 More about Spectral, Dotan’s company01:03:40 Staying virtual using DiscordTranscript:Episode 110 Computer Security with Dotan NahumJason Gauci: Programming Throwdown Episode 110, Security with Dotan Nahum. Take away, Patrick. [00:00:21] Patrick Wheeler: Hey everybody. We're here with a hundred and tenth episode, which is pretty exciting. And we have our guest to-- oh, yeah, go ahead. You want to... [00:00:30] Jason Gauci: I'm just saying, yeah!  (laugh) [00:00:32] Patrick Wheeler: So we're here with our guest today, Dotan, and you are CEO of Spectral. Why don't you go ahead and introduce yourself briefly, and then we'll get started.[00:00:42] Dotan Nahum: Yep. So hi, guys. So I am Dotan, and by the way, 110 is binary, right? [00:00:48] Patrick Wheeler: Oh, there we go. That's right.  (laugh) [00:00:52] Dotan Nahum: So yeah, so I'm Dotan, CEO of Spectral. It's a cybersecurity company, geared towards developers. I mean, we like to say that we create tools for developers with security as a side effect. So yeah, so that's, that's, you know, that's what our focus is. [00:01:12] Patrick Wheeler: Awesome. Well, I mean, I guess that's a lot to unpack, so I think everybody would agree, security is very important, but maybe everyone doesn't understand what security is. So we were talking about this a little when we were doing, doing warmups. So if we talk about security, does that mean that you are developing antivirus for computers, for developers, or does it mean something more?[00:01:35] Dotan Nahum: Yeah, I mean, I mean, it's kind of all goes back to, I guess, evolution of our, I guess it is our domain, our, our world, which is kind of a high-tech or softer, softer world? Time really gets compact with all these revolutions. We have a, we have evolution revolution. [00:01:57] So, I mean, if you go back to 2007, that was just before Facebook and just before iPhone, I guess. And if you go back to 2005, that that was before the rise of Microsoft, I guess the major rise of Microsoft as a .net shop, which really made, you know, made all the enterprise software come along and then kind of '98, 2000, the first bubble.[00:02:27] So all these stages, they had, it's kind of a sprint to create technology. And, the focus is on creating technology that is supposed to give developers productivity, and supposed to make, you know, make companies very productive and create a very nice portfolio of products. [00:02:48] And almost always, I mean, maybe not intentionally, but almost always the security side of things, was kind of left behind. You know, I'm sure no one intended for it to be, but, there's a lot of more velocity under creating a great product at the time. Every, each and every step of this, like in the first bubble, and then in 2005, and then into 2007 and so on, rather than, okay, so let's create the technology and the product, and let's also make it, you know, kind of, dependent on making great security, be there for us. [00:03:35] So almost every time, security came after the revolution, after the evolution. So we had from, simple firewalls, to intrusion detection, which is, you know, the large kind of, systems that try, try their best to find anomalies in the, in the area of 2000, to the smarter firewalls. And even today, those like, this, mini kind of firewalls, of WAFs that you integrate as an SDK into your app. So yeah, so it's kind of come, it comes in waves, technology, and then, security comes in waves as well. [00:04:17] And yeah. So the latest, the latest we're seeing right now in terms of the evolution of software is that yeah, we know that software eats the world, but we are kind of feeling that it already ate the world? So, you know, you can do so much today that you couldn't have done, I mean, as little as three or four years ago, actually. You know, it can take a Lambda and you can pick up a bunch of SAS services and you're done. I mean, you build a product that used to be maybe three, four, five years ago, you know, used to take much more energy to build.[00:04:58] So in that sense, as a developer, you have so much more power and so many more paths to get to the same end goal that... I'm not sure, I mean, I feel it for myself. I'm not sure the security world can even begin to realize, because they need, I mean, if we, if we think about them as they, then they need to understand how to develop as well as developers in order to give, to create great solutions for that developer, that glue stuff together, and, you know, invent stuff from existing, existing parts.[00:05:37] Jason Gauci: Yeah, that that makes a bunch of sense. [00:05:39] Patrick Wheeler: I say, yeah, that covered, I mean, you, you went to the whole history of modern or last couple of decades of, computer software there, but I was going to say, so one of the interesting things I think before we get into the kind of specifics about, what needs to be secured, this, this kind of, thing you mentioned where people build a product first and then try to figure out security later.[00:06:02] I guess that's an interesting balance where, if you're building something until it's built, maybe it doesn't really need security. Right? If this was a thought in my head, I don't need security. If people are going to start using it though, immediately, you need to start having some amounts of security. Do you have opinion on like, what is the balance there?[00:06:19] So if you don't know yet what you're doing and what may be your risks, when is the right time to start considering security and what are some of the good, you know, first things to start considering? [00:06:30] Dotan Nahum: Yeah, so that, that's a great, great question. I mean, I think the balance is shifting towards really taking the time, in development time, in design time, and think about security on the security model.[00:06:46] So, you know, this was kind of theoretical, yeah, everyone should do threat modeling and everyone should do secure by design and so on. And, and frankly, you know, you'll, you'll find these people who are extremely into security that are actually doing these things. But the thing is, it wasn't being done properly or, you know, by everyone as kind of a development workflow. You know, when you come to develop a feature, then you have the design and you have maybe a POC and, and you're supposed to have this small, or maybe large threat modeling box, but, you know, no one actually does it, or, you know, most people kind of, focus on the other or other areas of developing a new feature.[00:07:35] So it is that way because we're used to, taking a product and pushing it into, you know, your traditional server farm, or you're really a secure and isolated cloud operation, whatever. And you're, you're pretty sure that within this closed garden, even if you didn't do the proper, you know, threat modeling as a developer, then things will be okay.[00:08:04] However, this kind of understanding is changing because it's no longer pushing to a server. Or to a kind of a closed garden environment. It's, you know, taking your function and placing it somewhere. And now someone can ask a question, which is, I don't know, I didn't have the answer. If I push a function to whatever, you know, I don't want to name any, any service, but, you know, it's kind of a, any of the new hip cool services out there that really, make you productive.[00:08:40] If you push that function, did the other side do everything they need to do in terms of their traditional threat modeling to keep you safe? Are they're obligated to do it? Do they have, you know, let's say a WAF to identify SQL injections for you maybe, or maybe to, drop someone who's attacking your service, and so on?[00:09:04] I'm not sure actually. So, so it kind of shifts the responsibility to the developer. Because you're building a function, you're dropping it on a whatever cloud provider and your function is now live, you know, it's up to you, right? [00:09:22] Patrick Wheeler: Yeah. I guess you were talking about deploying these functions and applications to public-facing cloud, or do you think that the same applies to, internally deployed app, like an enterprise software that would just be used, sort of within your corporate firewall? I think you were sort of referring to this when you mentioned walled garden approaches. Right? [00:09:45] Dotan Nahum: Right. So, so I, I believe like eventually the enterprises, the closed enterprises really adopt whatever's happening on the open, let's say end up on wild world. So, you know, maybe we need to give one realistic example.[00:10:03] So let's say I'm working at kind of an Acme Corp, some kind of corporation, doesn't matter. And I'm a developer and basically I have, you know, the service, small service to build, and I decide to build it on, I don't know, Heroku or I don't know, Vercel. I do that, no one is stopping me. I, I can do it.[00:10:27] And then I can plug it into my existing infrastructure inside the corporation. And I don't know if, if, you know, if that would be something that is, you know, okay. I mean, as a developer, I'm just, you know, shipping software, but here's something that, you know, an ability or a possibility that wasn't there.[00:10:52] Five years ago, you know, Heroku was there, but the culture of shipping things fast and, and being able to take things to the, you know, to the extreme, end to end, wasn't there. So here's one, you know, one path that is now open, you know, and, and now people can actually wake up tomorrow and figure out, scan their code and look for external services to, you know, exist in the code base and try to figure out how many are there that they know of.[00:11:25] And how many are they didn't, don't know of. And that's just, you know, SAS services. now we can take the same analogy and try to think about what kind of libraries do you use. And everyone remembers left-pad, right? When it was just suddenly pulled out of NPM, breaking half the internet. That's, that's kind of the new world that's happening, in the last few years that I'm not sure, ah, everyone are ready for.[00:11:54] Patrick Wheeler: So what would be an example of, like you mentioned, you know, building a Heroku based, you know, application and deploying it and scanning for, what services that you may not have been, may not have realized. Do you have examples there of like, what would be something that you may not intend to have exposed that got exposed?[00:12:11] Dotan Nahum: Well, yeah, I mean... Well first, there's this kind of a, the cyberworld calls it, Shadow IT, where people basically, what they want to do is be more productive inside the organization. So it's kind of two sides of the coin. One is, one is positive. One is negative. And the positive side is do you have a team that thinks it can move quickly and adopts, you know, unvetted software, so to speak, and then ships it to production.[00:12:44] And that creates a bunch of, you know, IT assets, I dunno, services, SAS services, whatever you, you, whatever you can think of that actually, no one knows exists, in production.[00:12:58] On the other side, if from a cyber perspective, that is an unauthorized use of software, which is kind of giving it a kind of a warfare kind of name, like a Shadow IT, like shadow ops.[00:13:14] So, so this is, this example, you know, if you guys even, check your, your stuff, then maybe you can find many examples of that, but, you know, it's, it's kind of a productivity thing. [00:13:27] Patrick Wheeler: Yeah, I think so. Maybe just, just stepping back a bit, like, like, it'd be really good to explain to folks like what, what are the different components of, of computer security, like what actually a firewall is and, and, and how to, protect and it's like, like, what is a SQL injection? You know, like what are the kinds of threats that you encounter, you know, and how do those things work? [00:13:50] Dotan Nahum: Oh, yeah. So I think first of all, let's, let's try to get the motives out there. Right? So there's hackers and there's the good people and bad people, right? So to speak.[00:14:01] So I guess developers build software and they're trying their best to actually add value. And the hacker is trying to, to, I dunno, remove value or try to, gain the system and gain some profit really quickly. So basically when I build, for example, when I build a function, I don't know, that takes, a parameter from a URL from a website.[00:14:27] And, you know, maybe it's a page number, you know, traditional paging, feature. Then I, I, take this parameter and I, you know, inject it into an SQL query that I have on my backend. And my goal is, is to just give you page number two. So that's, you know, that's my perspective as a developer, I see nothing, you know, no harm done.[00:14:52] I mean, I'm taking a value and dropping it in a inside the string, which contains an SQL query and I'm done, like I pushed this feature, I go home and that's it. [00:15:02] But the other side of it is that, when a hacker look at, looks at it, then first of all, there's, "what is it for me"? Like what's there to gain, but first of all, the company needs to be really attractive in terms of, hacking anything.[00:15:17] And there's has to be some kind of trophy on the other side. So if I'm looking at something, it's some company as a hacker, and I realized they might have sensitive data because they're, I don't know, healthcare, whatever. Then at least I have now the motive or incentive to actually, try to figure out where can I hack into.[00:15:41] So looking at this naive, SQL thing that the developer just built. So I'm looking at the parameter and what I'm trying to do is take, instead of giving the parameter, what it expects, which is a number, I'll try as a hacker to, you know, try to inject some malicious SQL code. Maybe if I, if I'm in for doing some damage, maybe I'll try some drop tables instead of a number.[00:16:08] If I have reason to believe that the backend will actually give me the results, as I wanted, then I, I'll try to inject an actual query into the number instead of a number. And what I'll hope for is for the developer not to actually be defensive, which means the developer forgot or didn't bother to actually sanitize the parameters and make sure that if the developer expects a number, there only should be a number there.[00:16:38] So that, that is kind of the gist of. SQL injection. So this is, you know, one, one kind of attack. [00:16:47] So just a little bit about firewalls. So basically a firewall is something that sits between a machine and the outside internet, or maybe internally, it doesn't matter, the outside world. And what it tries to do is to monitor traffic and figure out which traffic is strange, and which traffic is normal.[00:17:10] So it used to be, you know, it used to be very simple. It used to be basically looking at open ports and trying to block irregular ports on machines. That is like 20 years ago, and today it's a lot smarter. So today a firewall is maybe not the, you know, the correct name anymore, but it's, it's a system that looks at anomalies in your traffic.[00:17:39] And that is, the acronym is WAF, which is web application firewall. So many cloud providers have that and you can actually flip a switch and have the, have it as a feature. And basically it looks at your traffic and it can recognize what is normal and what is not normal. And usually that is backed by some kind of machine learning.[00:18:00] So, yeah, so these are two categories, I guess, of, of attacks. And basically the, the reality is that the amount of attacks always, you know, always grows. There are always new attacks because there's always new code and there's always new features and new products being launched. That makes sense?[00:18:21] Patrick Wheeler: Yeah. So you mentioned this, the WAF is web application framework and trying to understand, like, what is questionable traffic.[00:18:28] So if you're deploying, you know, some new new website and some new API, and it doesn't kind of know what to expect, how does it understand what is questionable and what is considered pretty normal traffic? [00:18:42] Dotan Nahum: Right. So, so there's that, I guess, like in every machine learning operation, there's the cold boot problem. So if you have something new, then obviously it hasn't yet learned enough traffic to tell you what's normal and what's not. But, luckily, you know, I guess if someone would look at most of the internet traffic, they realize there's like clusters of normal traffic and there's clusters of irregular traffic.[00:19:11] So, and again, probably this is a, you know, the secret recipe of every different, vendor of, of such firewalls.[00:19:19] Patrick Wheeler: Fair enough. [00:19:20] Dotan Nahum: But yeah, but, but you know, the generic cases, that there's, you know, there's normal behavior and you have so much traffic these days, public traffic, and so on that you can analyze and build on.[00:19:32] And there's like, you know, irregular traffic that is very specific to a certain service. And I can tell you from experience that yeah, definitely. It takes time for this, for these technologies to actually learn what is normal. Then you get a small amount of false positives at the, at the beginning. But the good news is that if you have traffic, then it learns, and if you don't have traffic, then maybe this service is not that, you know, popular or risky because you don't have traffic.[00:20:00] So yeah, so in this specific case, it's kind of, it kind of creates a nice, a nice closure on it. So there's no gaps.[00:20:09] Patrick Wheeler: So I'm going to take a step back and come back to this in a second and, and correct me if my, I could be completely wrong here. So, if I'm thinking from the shoes of an individual developer, like myself or Jason or anybody, who's just, you know, developing software and I'm going to assume which you might have to help correct me.[00:20:30] So if you're at a really big company, chances are, you're not able to deploy straight to the cloud, or at least that's been my experience, as they typically have it pretty locked down. There's like procedures and reviews to go through. And there's a whole organization kind of devoting to that. So if I flip to the other side, if you're a super, super small, like only a single developer or a couple of developers, then you probably are the whole entire stack.[00:20:55] And then my guess is there's a, a sort of gradient in the middle where like, you kind of mentioned before this, you know, Shadow IT, where maybe there's people who are trying to do IT or monitor it, but they're not everywhere, you could get around them. And it's not that you intentionally or unintentionally meant to, it just sort of, kind of happens.[00:21:12] Where along the spectrum, do you find that many of the developers kind of live in, like, I, I, I'm not clear from my side, like I've spent most of my life working at relatively large companies where these kinds of things you're talking about have always been of interest. They've always kind of been handled by someone else or handled by the platform.[00:21:32] So if you're building something yourself or in a company that's, let's say sort of medium or small sized, how do you sort of figure out like who the right people to contact are? How do you kind of figure out for yourself, what is the best development approaches to make sure that you aren't accidentally going to, you know, expose all your data to the world.[00:21:50] Dotan Nahum: Right. Right. So, so the thing is, is that, and that's why I kind of connect it to a kind of an evolution. So there used to be good news for this, you know, there used to be a good, a good answer for your question. And the good answer would be, Oh yeah. Once you have a few controls in your organization, basically 90% of the problem, of the risk, is gone, but that's no longer the answer, you know, for the big, big corporations, you know, that, I don't know, the Apples, Facebooks, Amazons, I believe it's so, it's so, you know, insanely sophisticated there that there's very little chances of, of a developer, adding risk in terms of, security, because the investment is probably huge.[00:22:39] But for the medium-sized and the emerging companies that have to deliver and ship fast, which is probably the majority of the companies these days, there, isn't this kind of resources. So, and, and also the times of one solution to rule them all, this is gone. So you can't really buy, a system, put it in, in your network and now all of your security issues are gone, because ways to, ways to do things are just growing.[00:23:13] So, so just for example, if you look at your machine right now, I mean, ignoring where you currently work at, if you look at your machine and, you know, have a, have a small thought: what's in your bash history, assuming you use the, you know, your terminal? What's... do you have a dotfiles? What's in your, if you use VIM what's in your VIM VMRC? Do you have any secrets there, any tokens, anything that is maybe issued by a company, organization, but you have it right there, and guess what's the first thing hackers want to steal, right?[00:23:50] Patrick Wheeler: It has logins and passwords. [00:23:52] Dotan Nahum: Exactly. So, and you know, don't tell me, but, by all means, have a look after, after this, just, you know, you know, do a less on your, seashell history, and figure out what's in there. What's the material? How many times do you export a token? Maybe, even if a mirror token, something temporary, but still it gives clues. It gives clues to how systems work and, you know, how many of the tokens are temporary and how many of them are permanent and how does one look like, and then so on and so forth. [00:24:31] So all these things are kind of happening on the last mile, which is us, the developers. So, you can look at an organization and say, wow, that's, that's a fully secure organization, but, the last mile is probably us.[00:24:46] We use all the, you know, in terms of R&D ,we use the assets, we connect them. We take on the risk of, yeah, I'm going to use this token and this password and this secret. And I'm going to connect this to this external service and to this external machine. And I'm going to store some stuff on my machines and all these things combined are just, you know, ways that I'm, I've adopted to be super productive.[00:25:17] And as the world of software grows, the ways to be super productive also gets, get more sophisticated. And that creates an impossible, an impossible problem for one, you know, one cyber or security solution to solve. It, it's basically, you need to solve all of the habits of developers at once. [00:25:44] Patrick Wheeler: Yeah, I guess I don't, I security is not my, not my background or my forte, but I always hear security and depth and layers of security. And, and I guess this is what you're sort of mentioning, like the last mile of developers. And, we were talking at, at my company a little bit about social engineering and just, my takeaway was basically like if someone targets to social engineer, you're kind of hosed, like, the amounts of sophistication in some of the attacks that have been uncovered.[00:26:12] It's just insane, that, no matter what you do that, someone could probably figure out your username and password without you, kind of knowing that you've turned it over. And I guess as you're mentioning, if you store stuff on your computer and your dotfiles, or even just in your history, and they get access to your computer, they're going to learn a lot.[00:26:32] And, I guess that makes sense. That kind of brings to light to me the why you have to have so many layers of security. It's not just the firewall, the outside or the intrusion detection on the inside, but also like, even on individual computers, like having people have good habits and stuff. [00:26:47] Dotan Nahum: Right, right. And you can't not, not have your dotfiles. Right. Because first of all, dotfiles indicate, a kind of, progression, right? Because you're, you're using something that supports 12 Factor Apps and is considered as a best practice. Right? [00:27:08] But, and there's like a huge warning here that I think we all miss, is that somewhere we should have a dotfile that is not meant to be in a repo, but it's laying on our, on our computers. And what's in these dotfiles, I don't know, but I'm quite sure that a hacker learning these best practices, they also want to learn how to abuse these best practices. So I would, I dunno, I would build a script that searches for dot and dot production.[00:27:44] Jason Gauci: Yeah. I think--[00:27:45] Dotan Nahum: And grabbing it from your computer, right? [00:27:47] Jason Gauci: Oh yeah. Yeah. I think, I think I took, I also like Patrick don't have a strong background in cybersecurity, but I did take the, a, a course on it in university. And I remember at one point someone was, you know, the, the, the lecture was talking about, you know, the magnetic hard drives and how, when you just erase something, it's not actually gone.[00:28:06] It's just, you know, some reference to the data's gone, you can still recover it. And someone started kind of challenging and saying, well, if I do all of these things in this course, then, you know, I'm totally untraceable. I'm totally secure. And the professor had a really insightful answer that always stuck with me.[00:28:23] He said, You know, yes, he said, but if you're a criminal, and this was for like cyber forensics type stuff, if you're a criminal, you know, you have to, you know, make sure like in the world of atoms, you're totally, you know, untraceable and in the world of bits, you're untraceable and you didn't leave any footprints and you didn't, you know?[00:28:41] And so when you, when you started accumulating all of this, it becomes harder and harder and harder to, to, to get away with something. And so, and so this is also true where there's so many different systems we work with, we, we, we use 10 different languages and we're, you know, having, we're on three different public clouds and there's four different machine type.[00:29:00] When you start adding it all up, if you have a problem, even once, that could be enough to get access to everything else. [00:29:08] Dotan Nahum: Right. And that, that is, I think this is completely what's, what's happening right now. And, you know, unfortunately a lot of it is happening, in our domain, like, in the developer space, because, because the general sense is that if we get more power and, you know, I can look at the, Docker, just as something that happened that gives us developers more power.[00:29:36] Because now I can, you know, I know previously I could use VMs, but now I can, you know, kind of juggle machines and  plug and play them and, you know, build so many things in a better way. So I have so much more power, using, using Docker and all these things kind of shift the power towards the developer and shift the responsibility also to the developer.[00:30:02] And, and the big question is, did you, or did we know that these, that happen, that we have more responsibility now? Because as far as we care. you know, we have more, stuff to play with. I mean, it's, you know, I'm super productive and much more productive than 10 years ago. But did I know that I, I now have much more responsibilities in terms of security?[00:30:29] So, so yeah, so I think that the answer for that is that, I'm seeing, we're seeing that not everyone realizes that, you know, with that extra, extra oomph that we got with all these technologies that we actually have now, we're taking more risk as developers. So that, that is, you know, that is the friction that, that we see.[00:30:55] And the answer is to try to use the same, the same tools that we use to build features in products. And to figure out what do we, you know, what do we miss? so I just said, yeah, if I'm a hacker, let me just build a scanner that, you know, tries to find your dot and dot production. Right? So how about we use that and build a developer tool that actually can tell me that before the hacker knows it.[00:31:28] So here's the goal. Here's an idea, build a tool that scans for all these kind of, of, of the, these files that you know, that you have in the back of your head, on your computer. And, and that is a tool that you build for yourself and put it in your own toolbox. And now you're, you feel much more secure and now you can work in a, in a safer, in a safer way.[00:31:53] It's like, you know, it's like a carpenter working with a security goggles, right? So this is how you can actually build the tools for yourself. So that you can actually take on more responsibility. So, so that, that is, that was basically my thinking, I guess, throughout all of my career. So that every step you need to actually make your toolbox bigger so that you can actually take on more responsibility.[00:32:23] Patrick Wheeler: Yeah. So when you talk about like, I guess your throughout your career, you're saying, you know, thinking about this, this toolbox, I guess it's probably bad, but I'll admit it. Like, I, I don't really spend much of my day thinking about what tools could I add to my toolbox to help make sure that I don't leak secrets.[00:32:40] I'm a bad, bad engineer, I guess. But how does someone go from the mindset of like, my job is to sit here and as you were mentioning faster and faster to, to ship a product, to see what sticks, so what is the phrase to move fast and break things. Right. I didn't invent that. [00:32:56] And like, how do you, go from that mindset to sort of culturing a sense of like, Hey, wait a second, I'm taking these risks. And they're really easy to not take these risks. You know, these are the common dotfiles that people would, would scan for. [00:33:12] I mean, it makes sense when you told it to me, it seems obvious, but I won't admit that I probably ever thought about it before. How does someone go from my sitting here and just developing code to, I also need to have tools in my toolbox for not just developing my code, but for making sure my code is safe and secure.[00:33:29] Dotan Nahum: Yeah. So, so actually it's, it's it can be very simple. I mean, to me it's, it's, it's very clear and I will try to give the same clarity in how I think about it. So I remember the day, when, we used to ship software and zero tests, that was around 2005-6, maybe. Yeah, no, no such thing as unit tests, no one even knew about that.[00:34:02] And basically you would ship your software you've you wouldn't even test it, you know, properly and you'll figure out, yeah, we have a QA somewhere down the line, they'll do the work, tell me what's wrong. And I'll just, you know, wake up and fix this stuff they found. [00:34:17] That, that was life. So, and that was not long ago in terms of, you know, in normal professions, like 15 years in, I dunno, in car making, that's nothing. Right? [00:34:30] So that's, that's 15 years in software. So that, that was the reality. But since then, in terms of, quality and, QA, I mean, we almost obliterated that, that kind of workflow and we have unit tests, end to end tests, and so on and so forth, and everyone knows that you need to have coverage. So here's, that's one thing to think about.[00:34:54] And another thing to think about is distributed systems, right? So there was a time where we built, you know, a server, you know, a server, a service doesn't matter, and we deployed it to one single server. And that again was at the same kind of, area of fears. and maybe we used views too. That was like amazing, you know, and the load balancer was kind of a hardware thing that you had to, you know, you had to put out from a box and install it somewhere.[00:35:28] And, and, and, you know, we never thought about redundancy in that in the way that we do today. and today it's, it's insanely more involved and so much, you know, so much better. And, and again, today, what we do is we plan a service. And, I mean, almost before the first line of code, we think about how is it going to be deployed in how many instances and how would it fail and so on and so forth.[00:35:58] And I think security will go through the same, same evolution. I mean, what changed? The only thing that changed is the responsibility. So on the QA story, there was a group of people who were responsible to test your code, but not you as a developer. And, on the, on the redundancy side, there was the group of people called it, not even ops, and they were supposed to make sure your service is always live, which is absurd these days, because how do, how would they even know back then?[00:36:35] And I mean, today, you, I mean, you guys just said it, I mean, in, in some organizations, do you build your code in this. A bunch of people who are responsible to make sure you don't do a mistake or don't put the company in risk. So, I mean, just, you know, just, from a history point of view the story should repeat itself, right?[00:36:59] Patrick Wheeler: Yeah. I mean, I think as you mentioned, like a single developer becoming more and more, I mean, in the beginning, there was only the developer and then there was the organization and then now we're going back to only the developer. So yeah, I would say it's a fair bet to say that it's going to go back to a combination of people and we'll see of it, I sometimes think that the, the roles can be embedded within the team.[00:37:24] So, you know, we talk about like deploying on Docker or whatever. Like it's not that you have an ops team that is responsible for deploying everything, but maybe you have, you know, a person or a consultant on your team who helps you do it. And so the team's responsibility, but there's someone there to help it.[00:37:40] So I guess if I hear what you're saying about security, you know, thinking, thinking similar to like having someone who isn't there to just, you know, send you emails when you've accidentally leaked your password. But actually, you know, help you guys develop good practices and sort of look over what you're doing and make good suggestions and is a shared goal with your team. Yeah. I think that can make a lot of sense. [00:38:05] Dotan Nahum: Yeah. And I mean, and you ask how, like how can actually, teams can improve and, you know, and take more, more of that ownership over security. So that's the first, that's the first step, realization, you know, history repeats itself. [00:38:22] And, I'm a huge fan of philosophy. And, what I see here is a pattern that repeats and I'm quite convinced it will repeat itself, because we are all people and humans and, we collaborate and work in fairly the same way. You know, what's the difference between quality and, and quality of service, which is actually kind of, you know, what distributed systems come to solve and then quality of your security.[00:38:53] So it's all the same. so that's, that's one part. And the other part that I, I believe in personally is trying to instill the mentality of, you know, fresh perspectives and learning from mistakes. So if you have these kinds of processes in your, in your company, in your culture, then you can always use these processes to actually have, you know, plugin a space for, Hey, we're doing a pre-mortem or a post-mortem, let's talk about how security is a in this whole picture. [00:39:29] So we talked about redundancy and deployment and, how's the, you know, capacity planning. how about we talk a little bit about, security, which means sometimes you can either simulate attacks. Sometimes you can either prove that, you know, prove that a certain service is secure, or sometimes you can just, you know, list what your, what your risks are. And that, that is a great conversation opener. [00:39:57] So if you have a billing service, you know, then you can actually state your fears and you can just say in that same form, your fear is that someone can go in and, I don't know, steal what? Credit cards, transaction numbers and so on. So just by stating, what's valuable for you in that same forum of a pre-mortem retrospective, whatever. You know, you can actually start a great conversation, and you can discover that people didn't even realize that the service you're building is actually holding a lot of value for a potential attacker. And that is, you know, 50% of the job. [00:40:42] Patrick Wheeler: Yeah. You're kind of describing now. We've kind of covered a lot of ground already, but you're describing now you were mentioning, sort of thinking about the attack vectors and what is, you know, where could people attack?[00:40:54] What would they think about evaluate sort of thinking about coming from someone on the outside, not just, Hey, I'm playing with your service, but I'm looking at it. I'm analyzing what I could get from it. And then I'm deciding how much time to spend, whether it's just to crash your site or to, to drop your data.[00:41:10] Or if there's something here I could extract. And I guess that even in itself is a useful way to think about it is I'm deploying the service, which is valuable to end users. But in some ways like the more personal data or credit card, whatever those things that might be most valuable to delivering really awesome experiences to end users would also be very juicy targets for attackers.[00:41:35] And I guess the juicier the target, the more concerned you have to be with, making sure your stuff is very secure. [00:41:42] Dotan Nahum: Right. And always, I try to keep it very, very simple. I mean, I mean, there's, you know, think about what you're doing in a day to day, you know, is your computer filled with, with sensitive material?[00:41:56] Did you encrypt your drive? Because, you know, once, you know, at the times when we used to go to conferences, then I literally saw, I won't name the company, but it's a big cloud company, to, solution architects, just living their, laptop on, on the chair and going for the restroom. And I was kind of looking at two laptops with, obviously the company sticker on them, just telling me, steal me, right? I mean, so once that happens, if you didn't encrypt your hard drive, basically, it's just, you know, five minutes and I have all of your data. So these are the small, simple stuff that, that I like to think that these are the terms that I like to think in.[00:42:45] So it's very, very simple. It's connect to the, you know, the stuff that you're doing on a day-to-day basis that you're feeling uncomfortable with and, try to figure out what that is. And on the other side is also, you know, in terms of organization and teams, it's also very, you know, very simple is connect to the things that you think you're fearing from, like your fears.[00:43:13] So basically when you, when you're about to deploy a service, I'm sure as hell, like as a developer, your fear is that this service is going down, right. So you'll try to figure out how to keep it alive and, you know, avoid waking up at night because, you know, you, you didn't, I dunno, throttle something properly or you didn't think of an edge case.[00:43:37] So, and so just add another layer of fear, which is, I think this service is storing sensitive data and I want to just state that. And that is just, you know, a simple way to start a conversation with other intelligent people and, you know, brainstorm and think what, what you can do. [00:44:02] And obviously when you do that a few times, you probably get to a more advanced levels of thinking of attack factors and, you know, kind of instilling this culture and it will, it'll just happen from itself.[00:44:16] Patrick Wheeler: Yeah, I, I think you're right. I think realizing it's an issue thinking about it, these things are, you know, important. I feel like it's a, yeah, like you said, from philosophy, you know, applies over and over again, not just that things repeat itself, but that kind of the path to learning about it is first realizing there is something to learn.[00:44:35] And I think the topics we're discussing here are interesting approaches. So we've talked about on a developer computer that, you know, having something that scans for maybe secrets that you wouldn't want pushed out, or that you wouldn't want someone to get on your computer. We talked about application firewalls and traditional firewalls.[00:44:58] We talked about a little about SQL injection. So we talked about a little bit like someone getting on your computer or stealing your computer hard drive. We talked a little bit about like the end deployed app. What are other areas? I mean, there's a whole pipeline there, I guess, of. You know, not just developing the code, but then pushing the code, serving the code, you know, like the distributed systems themselves, like what are other areas that are important to think about security?[00:45:23] Dotan Nahum: Yeah. So, so, so there's two, niche areas, I would say. I would be careful with calling these niche. But there's a reason I didn't mention these, first. So one is, I believe maybe the scariest of all, which is, you know, getting an email, clicking on something and then bam, your computer is now locked with all the data and you need to pay someone millions of dollars.[00:45:52] Right? So this is like the whole ransomware thing. And, and yeah, as you mentioned, the best way to combat this is to actually, you know, be aware, so have awareness training, and make sure, you know, what phishing is. [00:46:07] And, you know, some, sometimes, email specifically, sometimes, in terms of emails, that there is some email providers that are very advanced, that can tell you, listen, this email came from outside of your organization. And, you know, I, I'm a fan of Gmail in that sense. you know, they can color the out of your context thing. I don't know if that exists in other clients. I hope it is. [00:46:34] But this is a good part of awareness that I thought should be there. And it wasn't there for a long while. I mean, if you're an email client and you have any working in, you know, you're giving a service to an enterprise and, obviously you can identify who's in the organization, who's outside. And then just give me a color. Tell me, listen, someone from outside the organization is now sending you an email. That's a great, great thing to know.[00:47:02] Patrick Wheeler: And flagging hyperlinks that don't match the URL they point to as another one that shocks me, that email clients don't do today. [00:47:09] Dotan Nahum: Right, right, right. And obviously all the DNS typos, which is fun, you know, you have a company name and then someone changes a letter. Maybe it turns an "i" into a capital "I", which looks like an "L" and then you have something which looks familiar, but isn't, so that also, you know, that is also something. [00:47:33] I don't know if to call it funny, but it's, it's when you, when you realize that you can do it, then you go and buy the domain for like four bucks. And then, then you have something in your hand that, you know, someone can use for, for attacking. So basically by the way, this is something I do in almost every company I joined, they look at the domain and then I go and buy all the similar looking domains and hand them over to the ops and IT people to just have these domains, you know, just by them. So no one else can buy them and it's very cheap. So I really encourage everyone to do that for their companies. So yeah, so this is one, one category, which I, I would call niche of, of kind of attacks, because they are very, specific. [00:48:19] And the other one is, actually that would feel nice to people who works with embedded systems. Maybe more because in there, there is, there's a category of languages with are, which are considered unsafe, I guess that's, that's the category of languages that was kind of born these days. [00:48:41] And the idea is that, I mean, To me, it's strange because, I remember programming in C and C++ like it was yesterday and also assembly, I'm from this generation.[00:48:59] And these days, these languages are kind of portrayed as unsafe. And, you know, basically because they are not providing the right checks, for your, memory usage, out of the box by default. So this class of languages, you have a whole, I dunno, domain of proper usage so you could actually build secure software, but it is secure in the sense that when you, I don't know, when you put this software on a pacemaker, then no hacker can actually hack that I guess, or a spaceship or whatever.[00:49:44] So yeah, so there's this whole domain of security geared towards making sure these, these things are, are as safe as possible. And just to look at this from a developer point of view, then, when you build this kind of software. [00:50:02] So one of the most accessible tools to use is a fuzzer, which basically means it's a kind of a tool or a library that you can use. It's, I try to explain it in a simple term. If you have a function that is supposed to receive a string and an integer, for example, then this tool would look at this function, analyze it and try to inject kind of brute force all of the strings in the world, like strings, strings with binary characters in them, strings with Unicode characters in them, and we'll do it by brute forcing.[00:50:41] It won't try to be smart about it. And if it's an integer, it, obviously it will try to overflow it, or give it some bad numbers. And basically it takes some time. And then it will come up with a combination which is bad for your, for your software. So basically you you'll be fuzzing this for weeks and weeks and weeks, and then you'll be able to see if there's any result.[00:51:07] And this result would be gold for you because you just exchange time, with something which is very sensitive. If this, for example, if this was a spaceship, right? so that is a whole category of security and very geared towards the developer. And also, you know, in the realm of embedded or, or things that are, you know, in that sense are, can become very, very costly.[00:51:33] Patrick Wheeler: Just to rip on that for a second, for people who may not realize. So if you run a fuzzer and your program crashes, there's a number of different reasons why it could be a problem. So the first reason is that obviously, like if you were running a spacecraft or a service, if it crashes it down and then you have, you know, an outage, right? And so someone could keep sending malformed data and crashing your system.[00:51:59] And if they do that enough, then you have a sort of denial of service problem or, you know, even worse. And so in that way, you know, that's kind of like the first class of problems. The second class of problem though, is that sometimes it crashes because you are not checking the data properly, and the crash can actually lead to a buffer overflow that allows someone to exploit your code and then actually read contents of your computer or your memory, and actually, steal results, which is much worse than just, crashing it.[00:52:30] And so running a fuzzer and finding those things is super useful, because in, many times it's an obvious, especially if you depend on, another library for doing something like json parsing or your, you know, any kind of data consumption, and someone can feed in there. And if there's a problem in that library, which you used, because you liked the fact that it had a lot of, convenient functions in it, you could be opening yourself to a whole host of problems that you didn't realize.[00:52:57] Dotan Nahum: Right. You just said it much better than me, (laughs)  [00:53:01] But yeah, I, you know, you can, you can, you can claim, I dunno, maybe, you know, as you know, we have Space X and all these, maybe there's many more developers that are being called in shipping, shipping into a spacecraft these days, then, you know, there was when there was only NASA. So I don't know, maybe fuzzers will come into fashion. [00:53:29] Patrick Wheeler: Yeah. So we talked about, okay. A couple other, other niche areas, and then one of the other things I know people kind of mentioned is, you see every so often is someone will publish a report where they scanned a GitHub and they found, you know, 10,392 places where someone had their database password stored.[00:53:52] What are the, so obviously, like that's a huge problem. Like, is that something that you see people doing? Is pushing code itself up to repository where they put something in there? Unintentionally? [00:54:02] Dotan Nahum: Yeah, yeah. I mean, first of all, a quick disclaimer, this is part of what we do at Spectral. [00:54:08] Patrick Wheeler: Okay. Well, I guess I teed one up for you then.  (laugh) [00:54:11] Dotan Nahum: Yeah. And by the way, just to close a small circle, which, you know, it's, it's so much fun to recommend when I can recommend it. So I've been through, I don't know, since assembly, probably through almost every programming language. Including Haskell and Erlang and some wacky languages. And, at Spectral we use Rust, which on the, on the, on the, on the, fuzzing, unsafe languages, part of things, is, supposed to be safe.[00:54:41] And, as far as I can tell it is. And, and there hasn't been a morning where I wake up and look at the code and say, this is an amazing program language that gives, you know, it gives me the Holy Grail. [00:54:56] So just to encourage, encourage people to just try out Rust, it's an amazing, language that, is, you know, for me it's as performant as C++ and as expressive, with none of the disadvantages.[00:55:12] It's amazing. And, and back to your question, so yeah, so people do, tend to do these mistakes. And I mean, it all, it's actually a reflection of, of the situation right now, which is there's so many tools. So many technologies, so much is being asked from a developer these days, that there's, you know, there's so much opportunity to make a mistake, and making a mistake is yeah, is, is, let me give you an example.[00:55:47] Is using an IDE, that you think, you know, let's, let's use a concrete example. So, you have IntelliJ and IntelliJ likes to save some, some settings in a folder called .idea. And, as far as I can tell, and anyone else can tell, this folder is clean, it's safe. [00:56:12] So if you like, you can actually push it to your GitHub repo, which is public and everything is great. because you get the guarantee that the common, the common sense thing to do from a intelligence point of view is, yeah, is make sure it's clean and, and let you publish your settings so that if someone else takes the project, then they will get a nicely configured environment for them in their own IntelliJ editor.[00:56:40] So that's, that's the understanding that almost every developer has. But here's the twist, there's also plugins. And some developers would choose to install various plug-ins, unofficial ones. and I've seen in my own eyes, a plugin, that is actually doing something more than a search, like some hyper search something. And basically, I've seen a project where a developer pushed their own private settings. And in there they had this plugin installed. And what this plugin did is break the environment that I guess IntelliJ has that this folder has to be clean. So basically the plugins saved and cached the search terms of the developers inside this folder.[00:57:35] Patrick Wheeler: Oh no.[00:57:37] Dotan Nahum: And it's really funny because you could see how the developer cleaned up the project before publishing it. So you would see, the searches right there in a public repo. You would see, Amazon and then AWS and then Easy2, and then you'll see the actual Amazon key and secret. So basically what, what, what I've watched is the entire history of the developer, trying to clean up the project before publishing it and they search for the actual secrets, in order to remove them from the code, but the plugin re--[00:58:16] Patrick Wheeler: Oh, they were trying--[00:58:17] Dotan Nahum: Exactly. The plugin recorded everything and dropped it inside this .idea folder, which is supposed to be clean. That is that, you know, that is the understanding that every developer has a. So they pushed the project, published it.[00:58:33] And basically, because it's a dotfile, I guess they all always, you know, they were all also on windows and by default on windows, you don't see hidden files or whatever. Yep. Completely didn't know about it. It was sitting there for at least six months until we reported it to the company that, that we saw this, exposing.[00:58:56] And yeah, the story that we got after that was, basically, you know, they had minors and breaking into the cloud and whatever. So it was a mess for them. [00:59:07] Patrick Wheeler: Oh, no. [00:59:08] Dotan Nahum: So this is just one, one small example of, you know, so much, there's so much freedom, so much technology, so much to use and to experiment with.[00:59:18] But you don't always get, you know, the best offering. Basically this one was down to adopting some plugin, which looks cool. but I guess the developer of the plugin didn't have security first, or didn't really understand, realize that, there's this kind of agreement that his folder needs to be clean. Yeah.[00:59:42] Patrick Wheeler: I guess that serves as a, a pretty good transition as we, as we sort of wrap up here to, for you to talk a little bit about what Spectral is and sort of what it does. [00:59:51] Dotan Nahum: Yeah. So Spectral is a, is a tool for developers. It's a security scanner. And it tries to do kind of things that we talk about today, which is, follow the habits of a developer and, be the best buddy and make sure that, you know, everyone can use it for themselves and make sure they scan the work and scan their computer and make sure that they don't do mistakes.[01:00:16] And we say mistakes because that, that is what it is. It's, you know, you can say vulnerability, that's a different term, but, basically at Spectral, we'll, we're 50% coming from cyber and 50% pure engineers. So we like to keep this balance of productivity and security. So we just call it, you know, mistakes. I think that that is what it is. [01:00:43] And a mistake is something that was made on a good intention. And, basically a whole class of mistakes is, you know, using and misplacing sensitive data, secrets, passwords, credentials, and so on, and, you know, placing different files somewhere you don't want them to be.[01:01:04] And realizing we as a company are trying to realize the habits, and, and the workflows of a developer, and making sure there's always a great solution for that. So I think this week, or next week, we're going to release, an open source product. We're going to open source it. And what it does... so I want to, I don't want to jump the gun, but what it does is acknowledge that the whole, usage of vaults or dotfiles is not perfect.[01:01:38] So it acknowledges it and gives you instead a nice tool, which is open source and you can build it and, you know, do whatever you want with it, which gives you a clean way to actually handle secrets, grab secrets from a vault or grab it from your disc, or from any other service and leave zero footprint on your hard drive.[01:02:01] So basically everything is in memory. So this is something that we identify that, you know, developers are struggling with. So yeah, so this is just another example of something we, we do and we will launch next week. [01:02:16] Patrick Wheeler: Oh, nice. I'll have to keep an eye out for that. And then what about Spectral as a company? So you said you were 50% sort of cyber 50% engineers. Are you guys looking for interns? Are you hiring? What is it like to work at Spectral? [01:02:29] Dotan Nahum: Yeah, so, so first of all, we're hiring, basically we have kind of positions for, Rust engineers and go engineers and, no GS. And, I guess you could say we are always hiring.[01:02:45] I mean, we're always, willing to meet great people. and in terms of the company, it's a, you know, the COVID thing, kind of caused us to be fully remote. But lucky enough, we're kind of, in terms of the experience in the company, then, some of us come from distributed companies by definition. So, we, we were able to create a really great infrastructure for being a nice, remote first or distributed company. [01:03:17] And, and yeah, so we're being super productive, making sure we have all of the advantages of distributed and zero of the disadvantages. and yeah. [01:03:30] Patrick Wheeler: Nice. Nice. So do you guys think you'll, I mean, you don't have the answer, but do you think you, will stay virtual, or are you guys, think you'll go back to a somewhat normal thing when this is all over?[01:03:40] Dotan Nahum: Yeah, so, so, so we basically try to always think about the balance and think about the people first. so, you know, there's that, first of all, it's finding the right tools. So is Slack, the right tool is, email the right tools, right? So what we found is we use Discord, and, that was on a simple thesis, where if gamers are really lacking that platform, that coders properly would, and we found that it actually proved itself because when you share your screen and, and, share multiple screens and people can watch, you know, every everyone else's screens.[01:04:20] And what I mean is editors, right, writing code, not games.  (laugh) So you have zero latency and you have really great audio and everything just works. So you realize that this whole thing was optimized for sharing games and it's, it's more than enough for sharing code and doing, you know, pair programming, all these things.[01:04:44] So, and you also have rooms, which are, we actually made a few rooms, just a few, not too many, just like in a real office. So we have, we have rooms that everyone wants, but are taken, right, the same, same frustrations. So basically our discord resembles a real office. You can just drop in a room, drop into a conversation, and it's, it's really, really fun.[01:05:09] So that is one thing we realized and experiment with, experimented with, and really works well for us. But yeah, we're trying to create a balance and also, you know, when, when possible meet physically, but yeah, we're always thinking about this as a problem. How do we solve it? Kind of like an engineer's, like an engineering problem.[01:05:28] Patrick Wheeler: Nice. This is a great heuristic that, if gamers like it, engineers might too. Yeah, I think that's a, that's a great takeaway. [01:05:36] Dotan Nahum: Yeah, It's, it's great. [01:05:38] Patrick Wheeler: And then what about you personally? You have a, are you on social media? Do you have any, I think you might be doing some other stuff. Anything you want to share with people?[01:05:47] Dotan Nahum: Yeah. So I'm, I'm on a GitHub, Medium and Twitter. I'm Jondot, J O N D O T. And yeah, I kind of, I'm trying to be on everything at the same time. It doesn't work (laugh) so I'm dividing my energy. So you'll see me active, you know, periods of times on GitHub and periods of times on Twitter. So I, I just load balance. I can't do everything in parallel, so yeah. [01:06:17] Patrick Wheeler: All right. Very cool. Well, thank you for your time, Dotan. We really appreciate it, that was really awesome. A high- level overview of security. I had a good time. Thank you for coming onto the show. [01:06:26] Dotan Nahum: Perfect. Me too. [01:06:36] VO: Music by Eric Barndollar. [01:06:41] Jason Gauci: Programming Throwdown is distributed under Creative Commons, Attribution ShareAlike 2.0 license. You're free to share, copy, distribute, transmit the work, to remix, and adapt the work, but you must provide attribution to Patrick and I, and sharealike in kind. ★ Support this podcast on Patreon ★
4/26/20211 hour, 7 minutes, 2 seconds
Episode Artwork

Digital Marketing with Kevin Urrutia

We chat with Kevin Urrutia about why marketing is so important to any project, how digital marketing is different than traditional marketing, and what tools we can use to market our ideas.  Thanks for listening!Show notes: https://www.programmingthrowdown.com/2021/03/episode-109-digital-marketing-with.html ★ Support this podcast on Patreon ★
3/31/20211 hour, 22 minutes, 55 seconds
Episode Artwork

Kotlin

We’re having a duo episode for this month! Patrick and I discuss the relevance of Kotlin, a JVM language used for web backends and android development, and why you should look into it. Also we are testing out adding transcripts to the show notes. Let us know what you think! Show notes: https://www.programmingthrowdown.com/2021/03/episode-108-kotlin.html ★ Support this podcast on Patreon ★
3/3/20211 hour, 14 minutes, 28 seconds
Episode Artwork

Holiday 2020!

Happy Holidays! In this show we make predictions about 2021 and take questions from YOU, our loyal fans! Show notes: https://www.programmingthrowdown.com/2021/01/episode-107-holiday-episode-2020.html ★ Support this podcast on Patreon ★
1/29/20211 hour, 7 minutes, 16 seconds
Episode Artwork

Augmented Reality

This month we are speaking with Connel Gauld from Zappar about Augmented Reality. Connel is an AR genius and blows our mind with details on how AR works under the hood and how it's easy for anyone to make AR apps and websites. AR is the next great platform, so it's good to get in early. Give it a listen and tell us what you built! Show notes: https://www.programmingthrowdown.com/2020/11/episode-106-augmented-reality-with.html Teamistry: https://link.chtbl.com/teamistry?sid=podcast.throwdown ★ Support this podcast on Patreon ★
11/21/20201 hour, 22 minutes, 55 seconds
Episode Artwork

A Chatbot with a Brain

The September episode did arrive.... somewhat delayed, but it's worth the wait!! We have NEW INTRO MUSIC by amazing recording artist Eric Barndollar. We have a NEW PODCAST DEPLOYMENT SCRIPT which means the podcast timestamp will be correct and people won't have to hunt for our latest episodes. Last but not least, we have an AMAZING EPISODE where we interview Peter Voss, founder and CEO of aigo.ai and inventor of the term "Artificial General Intelligence", to discuss chatbots and general AI. Geeking out about AI may be my favorite thing to do on Earth, so I can't put in words how incredibly excited I am to share this episode with everyone. Show notes: https://www.programmingthrowdown.com/2020/10/episode-105-chatbot-with-brain-with.html Teamistry: https://link.chtbl.com/teamistry?sid=podcast.throwdown ★ Support this podcast on Patreon ★
10/15/20201 hour, 22 minutes, 31 seconds
Episode Artwork

DevOps and Site Reliability

How do the most popular websites stay online? How do mobile app developers release new versions safely and monitor them? Today we have Matt Watson from Stackify on the show to talk about Developer Operations (DevOps) and site reliability. These two areas are critical for writing software that people depend on. DevOps is both a software exercise but also an exercise in process creation and process management. In this episode, we unpack these topics and do a deep dive to explain how to deploy software that other people can trust to remain online and secure. Do you have any questions about DevOps? Ask away in our #questions channel on Discord! https://discord.gg/r4V2zpC Show notes: https://www.programmingthrowdown.com/2020/08/episode-104-devops-and-site-reliability.html ★ Support this podcast on Patreon ★
8/21/20201 hour, 2 minutes, 35 seconds
Episode Artwork

Working From Home

Many of us have found ourselves working from home due to current events. In this show, we chat with Adam Bell who has been working from home for the past decade. We also do the show interactive on Twitch.tv and take your questions! Give it a listen for a ton of great advice on working from home and some pitfalls to avoid. Thanks again for your donations in these tough times. We really appreciate your support! Feel free to continue the discussion on Discord (link in the show notes)! Show notes: https://www.programmingthrowdown.com/2020/07/episode-103-working-from-home.html ★ Support this podcast on Patreon ★
7/29/20201 hour, 12 minutes, 57 seconds
Episode Artwork

Bayesian Thinking

Many people have asked us for more content on machine learning and artificial intelligence. This episode covers probability and Bayesian math. Understanding random numbers is key to so many different technologies and solutions. Max and I dive deep and try to give as many pointers as possible. Give it a listen and let us know what you think! Max also has an awesome podcast, The Local Maximum. Check out his show on any podcast app or using the link in the show notes! Show notes: https://www.programmingthrowdown.com/2020/06/episode-102-bayesian-thinking-with-max.html ★ Support this podcast on Patreon ★
6/22/20201 hour, 33 minutes, 33 seconds
Episode Artwork

ReactJS

Hey all! In this episode we chat with Guillermo Rauch, co-founder of Next.js, about ReactJS. ReactJS is an amazing framework for web development that I've been a huge fan of for years. We dive deep into how ReactJS works and why it can lead to clean, structured development. We Introduce Next.js, a ReactJS framework that supercharges web development at scale. I recently built a site using Next.js and loved the developer experience! Check out the show notes for links to learn more about Vercel and Next.js. Show notes: https://www.programmingthrowdown.com/2020/05/episode-101-reactjs-with-guillermo-rauch.html ★ Support this podcast on Patreon ★
5/22/20201 hour, 18 minutes, 52 seconds
Episode Artwork

One Hundredth Episode

I hope everyone out there is safe and healthy during these crazy times. The silver lining on all of this is that many of us have more time. Time is one of the greatest gifts that one can get. I hope you are able to spend more time with family and learning new skills. I'm looking forward to seeing all of the amazing innovations that people create when the world is back open for business. This is our 100th episode!!! In this milestone show, we reflect on our early episodes and how the field has changed over the years. Happy hacking! Show notes: https://www.programmingthrowdown.com/2020/04/episode-100-one-hundredth-episode.html ★ Support this podcast on Patreon ★
4/21/20201 hour, 7 minutes, 28 seconds
Episode Artwork

Squashing bugs using AI and Machine Learning

The best part of hosting Programming Throwdown is reading emails from people who listened to this show before they had any coding experience and went on to land jobs in tech. Thanks so much for inspiring us with your stories. My second favorite part of hosting the show is hearing about so many awesome programming tools and resources, often when they are just starting out. DeepCode is one of these amazing resources. DeepCode is a static analysis tool that looks at your code and, using AI trained on all code in github (!!!), finds common mistakes and offers suggestions on how to resolve. I am a heavy user of static analysis tools, and yet DeepCode was still able to find real issues in one of my python projects above and beyond pylint and mypy. Best of all, it's completely free to use for open source projects! Give it a shot and let us know what you think! Show notes: https://www.programmingthrowdown.com/2020/02/episode-99-squashing-bugs-using-ai-and.html ★ Support this podcast on Patreon ★
2/18/20201 hour, 2 minutes, 30 seconds
Episode Artwork

Agile Thinking With ZenHub

One of the most exciting but also overwhelming feelings in software engineering is starting a new project. Staring at an empty main.py file is intimidating for everyone. A great way to keep motivated and stay on course is to start by making a list of tasks. This is the first step to project management, and Agile is a set of methodologies for great project management. In this episode, we talk with Aaron Upright, cofounder of ZenHub, about Agile and project management. ZenHub is a quick and easy platform for Agile development that integrates seamlessly with GitHub. If this interview piques your interest and you are a GitHub user, grab a copy of ZenHub and check it out! In case you missed our last promotion with Educative, it's still possible to get 10% off if you sign up for one of their courses now! Try them out for free! educative.io/ProgrammingThrowdown Show notes: https://www.programmingthrowdown.com/2020/01/episode-98-agile-thinking-with-zenhub.html ★ Support this podcast on Patreon ★
1/21/20201 hour, 28 minutes, 45 seconds
Episode Artwork

Christmas Episode

Hey all! Patrick and I are so lucky to be spending another year with you all. In this episode, we answer a bunch of listener questions and give away some great prizes. Thanks to all of our listeners for helping us bring the power of programming to so many people. We have some super exciting content coming up in 2020, so stay tuned! ★ Support this podcast on Patreon ★
12/30/201951 minutes, 32 seconds
Episode Artwork

Continuous Integration

Most developers that I know use CircleCI every single day. It's both an honor and an amazing experience to learn about continuous integration and continuous deployment from Rob Zuber, CTO of CircleCI. We also cover a range of topics from staying motivated to working remotely. If you ever plan on writing software with a team of folks, you need to give this episode a listen! Also, I'm super excited to announce our partnership with Educative! Educative is an interactive way to learn how to code. Check out educative.io/ProgrammingThrowdown to get a 20% discount! Show notes: https://www.programmingthrowdown.com/2019/11/episode-96-continuous-integration-with.html ★ Support this podcast on Patreon ★
11/13/20191 hour, 53 minutes, 27 seconds
Episode Artwork

WebRTC

Everyone has used programs that talk to a server: Uber, podcast apps, etc.. Most people also know about peer-to-peer applications such as bittorrent, but did you know that video chat programs such as Skype and Google Hangouts are also peer-to-peer? You can even write your own peer-to-peer applications to communicate or share information without the need for a server to relay everything. In this episode, we sit down with Sean DuBois, creator of Pion, to talk about WebRTC: a specification and set of tools for peer-to-peer communication over the internet. We also discuss Pion, an implementation of WebRTC that you can embed in almost any program you write. Happy Hacking! Show notes: https://www.programmingthrowdown.com/2019/10/episode-95-webrtc-with-sean-dubois.html ★ Support this podcast on Patreon ★
10/24/20191 hour, 17 minutes, 58 seconds
Episode Artwork

Search at Etsy

What actually happens when you type something in the search bar at the top of etsy.com and hit enter? This awesome interview with Liangjie Hong, Director of Data Science and Machine Learning, answers that question all the way from the philosophical (what should we show first?) to the inner workings (what is a reverse index and how does it work?). We also dive into what it's like to intern at a tech company. Happy Hacking! Show Notes: https://www.programmingthrowdown.com/2019/10/episode-94-search-at-etsy.html ★ Support this podcast on Patreon ★
10/7/20191 hour, 18 minutes, 42 seconds
Episode Artwork

A Journey to Programming Mastery

Every interview we do is such an exciting and unique experience. Patrick and I had great pleasure in hosting Andy and Dave, authors of "The Pragmatic Programmer". We pick their brains on a variety of topics including rapid prototyping, the 10x engineer, tech leadership, and how to get your first coding job. Their new book, "The Pragmatic Programmer: 20th Anniversary Edition" comes out today! I hope that this interview inspires you all to grab their new book; it will definitely be a book-of-the-show for me. Show notes: https://www.programmingthrowdown.com/2019/09/episode-93-journey-to-programming.html ★ Support this podcast on Patreon ★
9/14/20191 hour, 11 minutes, 17 seconds
Episode Artwork

Basics of UI Design for Engineers

Surprise! Weekend episode :-D Every piece of code you write is either going to be for computer-to-computer interaction, or for human-machine interaction. For the latter, how do you make your interface easy to understand and use? Erik Kennedy, independent UX/UI designer, dives into user interface (UI) design. We cover the best tools for making quick prototypes, common design mistakes, and his journey from software engineer to freelance designer. This episode is a great way to get excited about design and has plenty of resources for first-time designers. Check out the show notes for details! Show notes: https://www.programmingthrowdown.com/2019/07/episode-92-basics-of-ui-design-for.html ★ Support this podcast on Patreon ★
7/13/20191 hour, 6 minutes, 27 seconds
Episode Artwork

Functional Programming

Hey all! Since episode 82, we received a ton of email asking for more info on functional programming (FP). To cover FP in great detail we are thrilled to chat with Adam Bell. Adam is the host of the Corecursive podcast and an engineer with many years of experience in FP. In this episode, we dive into what FP is all about, when it's useful, static/dynamic typing (our favorite topic), and other areas of FP. Thanks again for all of your emails and support. It is a treasure to hear your inspirational stories and we are so greatful to be creating content for over eight years. Happy hacking! Show notes: https://www.programmingthrowdown.com/2019/06/episode-91-functional-programming-with.html ★ Support this podcast on Patreon ★
6/19/20191 hour, 6 minutes, 34 seconds
Episode Artwork

Terminal and Shells

Hey all!! Ask and ye shall receive! Someone in the Programming Throwdown discord suggested that we cover terminals and shells, so here we are! Despite sounding simple on the surface, there's decades of complexity around terminal emulators and system shells. Patrick and I unpack this and more in today's episode! Thanks so much for all of your emails and support on Patreon! It's your enthusiasm and financial support that enable us to teach so many people, and we are eternally grateful for your support! Show notes: https://www.programmingthrowdown.com/2019/05/episode-90-terminals-and-shells.html ★ Support this podcast on Patreon ★
5/21/20191 hour, 15 minutes, 16 seconds
Episode Artwork

From Combat to Code

Hey all!! Today we are sitting down with Jerome Hardaway. Jerome is an Air Force Veteran and the founder of Vets Who Code: a non-profit dedicated to training Veterans in web development and connecting Veterans to hiring managers around the World. Whether you have served in the military or not, this inspiring podcast gives us all a glimpse into the boots of someone who rotated into a career in software development after school, and is full of great advice for newcomers to the field. Learn more about Vets Who Code, including how to donate to the cause, in the show notes below! We have more interviews in the future, but the next two months will just be Patrick and I. Keep sending us emails with topics that you want us to cover! Show notes: https://www.programmingthrowdown.com/2019/04/episode-89-from-combat-to-code.html ★ Support this podcast on Patreon ★
4/30/20191 hour, 37 minutes, 40 seconds
Episode Artwork

Image Processing

If you use ASCII encoding, the entire Oxford dictionary is about 5 million bytes. A single 4K image contains 25 million bytes. If you watch a 4K video running at 60 frames-per-second, over 300 dictionaries worth of data are going through your tv every second. Let that sink in for a moment. One of the most magical areas of engineering is image processing. Everything from the way the images are stored to advanced AI techniques like face recognition have mind-boggling complexity. In this episode, we scratch the surface of image processing, but if an area from this show interested you and you would like to learn more, let us know! Show notes: https://www.programmingthrowdown.com/2019/04/episode-88-image-processing.html ★ Support this podcast on Patreon ★
4/1/20191 hour, 15 minutes, 58 seconds
Episode Artwork

Typescript

While the web is one of the easiest platforms for deploying software, it can also be one of the trickiest to debug. People have many different browsers, and some have plugins or settings that restrict functionality. It may be extremely difficult to reproduce errors on your development machine. As a result, we want to discover as many errors as possible before we launch a new site. With node.js and people running javascript on the server, static checks become even more important. Enter typescript! Typescript is a language that transpiles to javascript, but along the way it adds type checking and advanced javascript features. After checking the types, typescript produces javascript that can run in almost any browser. Show notes: https://www.programmingthrowdown.com/2019/03/episode-87-typescript.html ★ Support this podcast on Patreon ★
3/4/20191 hour, 9 minutes, 32 seconds
Episode Artwork

Wolfram Language and Mathematica

Happy New Year! Today we are sitting down with Stephen Wolfram, inventor of Mathematica, Wolfram Alpha, and Wolfram Language! In this super interesting episode, Stephen talks us through his journey as a mathematician, software architect, and language inventor. It was truly an honor to talk to Stephen and hear about his decades of experience. Check this interview out and give us feedback! Show notes: https://www.programmingthrowdown.com/2019/01/episode-86-wolfram-language-and.html ★ Support this podcast on Patreon ★
1/15/20192 hours, 17 minutes, 5 seconds
Episode Artwork

Holiday Party

Hey all! This is our annual holiday show! We give away prizes and talk about random news stories :-D. Thanks to everyone who chatted with us on Discord, and looking forward to a super exciting 2019! I'll be sending an email to all prize winners later today! Show notes: https://www.programmingthrowdown.com/2019/01/episode-85-holiday-party.html ★ Support this podcast on Patreon ★
1/2/201958 minutes, 23 seconds
Episode Artwork

Customer Bug Handling

Hey all! How do you find and triage bugs on other people's machines when they don't have the source code (or the knowledge to build it)? That's what we explain in today's episode! It's one of the topics that's rarely spoken about but extremely important to get right before shipping any software product. Happy hacking! This is the last episode before our Christmas special! If you are a patron, make sure Patreon has your up to date address so we can mail prizes! If you aren't on Patreon, sign up before our Christmas show to be entered in our raffle!! Show notes: https://www.programmingthrowdown.com/2018/12/episode-84-customer-bug-handling.html ★ Support this podcast on Patreon ★
12/4/20181 hour, 6 minutes, 27 seconds
Episode Artwork

Teaching Kids to Code

Hey all! First of all, sorry for the delay in publishing Oct's episode. There are some pretty intense wildfires close to where we live, but it looks like things are getting under control. Huge thanks to all the firefighters! In this episode Patrick and I talk about teaching kids to code! We discuss how we learned to code and what are ways to build logic and reasoning skills in kids of all ages. Also we talk about ways to get kids excited about the fundamentals behind coding and solving problems. Check out the show notes here: https://www.programmingthrowdown.com/2018/11/episode-83-teaching-kids-to-code.html Do you have any good resources for teaching coding to kids? Let us know in the comments and we'll mention it in the next episode! Also this is the last chance to become a Patreon subscriber if you want to be entered in this year's annual give-a-away episode which will happen sometime in Dec! Last year we had a lot of trouble mailing the tokens to everyone, but our gears are turning around gift ideas for this year. Either way, a few lucky patrons will get free t-shirts! Become a patron here: https://www.patreon.com/programmingthrowdown Happy Hacking! ★ Support this podcast on Patreon ★
11/13/20181 hour, 12 minutes, 54 seconds
Episode Artwork

Reactive programming and the Actor model

Hey everyone! This episode is an absolutely fascinating interview with Jonas Bonér, creator of Akka. We dive into reactive programming, the actor model, and the Akka toolkit. Jonas also describes his journey as a developer that led him to create Akka and found Lightbend with Martin Odersky, the creator of Scala. Jonas brings a ton of in-depth technical discussion, so buckle up! :-) Show Notes: https://www.programmingthrowdown.com/2018/09/episode-82-reactive-programming-and.html ★ Support this podcast on Patreon ★
9/28/20181 hour, 25 minutes, 43 seconds
Episode Artwork

2018 Mailbag

Hey all! Since setting up the #questions channel in discord, a lot of you have written some phenominal and thought-provoking questions both there and via email, so this is a great time to go back through our favorites and answer them in a Mailbag episode! Thanks for your support by checking out our Books of the Show links and our audible and patreon links! I was able to send out all the domestic Christmas gifts (email me if you haven't gotten yours!) but we could not ship them Internationally. I'm still looking for a solution there, and will keep you posted! Show Notes: https://www.programmingthrowdown.com/2018/09/episode-81-2018-mailbag.html ★ Support this podcast on Patreon ★
9/6/20181 hour, 13 minutes, 59 seconds
Episode Artwork

Concurrency

What is a thread/process? How can you speed up a program that requires a lot of compute resources? How can you have a single machine serve web pages to 100s of people, some of whom have slow connections? Patrick and I answer these questions on today's show: Concurrency! We have also set up a discord channel! We will be posting news stories as we find them and also record the show live! Check out our channel here: https://discord.gg/r4V2zpC Show Notes: https://www.programmingthrowdown.com/2018/07/episode-80-concurrency.html ★ Support this podcast on Patreon ★
7/31/20181 hour, 7 minutes, 7 seconds
Episode Artwork

Technical Arguments

Sunday is a non-traditional day for a new episode and this is definitely a non-traditional episode! Today we are talking about Technical Arguments. We cover the most common arguments/debates you will have on the job as a software engineer and how to make the best arguments to reach the best decisions with the least amount of friction. Patrick and I tried not to inject our own opinions, but it's hard not to add our two cents (yes, spaces really are better). This episode is the first of a potential new genre of show, where we talk about non-technical facets of being a software engineer. Listen to this episode and report back on whether we should do more shows like this one! If you want us to stick to our existing formats (technical topic and interview) let us know that too! Show Notes: https://www.programmingthrowdown.com/2018/07/episode-79-technical-arguments.html ★ Support this podcast on Patreon ★
7/1/20181 hour, 31 minutes, 45 seconds
Episode Artwork

Building and Testing Web Services with Postman

Web services are for much more than building websites: they are one of the most common techniques for passing information among programs. Creating a web API for your program is a great way to access it from a browser, another program, or a mobile app. Today we chat with Abhinav Asthana, CEO of Postman, about building, scaling, and testing web services! Show Notes: https://www.programmingthrowdown.com/2018/05/episode-78-building-and-testing-web.html ★ Support this podcast on Patreon ★
5/31/20181 hour, 13 minutes, 9 seconds
Episode Artwork

Julia

Julia may be the most requested language we have ever received on the show, so Patrick and I took some time of the past few weeks to get familiar with Julia and share our findings. Overall, it's a really slick language that has data and process parallelism built into the language, so it will run on many threads or even many machines without having to design a communication system by hand. Show Notes: https://www.programmingthrowdown.com/2018/05/episode-77-julia.html ★ Support this podcast on Patreon ★
5/2/20181 hour, 20 minutes, 54 seconds
Episode Artwork

Code Documentation

Writing documentation is an art and there aren't many cut-and-dry rules that will guarantee the right documentation quality. In this episode Patrick and I chat about our lessons learned and also cover a bunch of ways to document and write self-documenting code. Show Notes: http://www.programmingthrowdown.com/2018/04/episode-76-code-documentation.html ★ Support this podcast on Patreon ★
4/4/20181 hour, 24 minutes, 53 seconds
Episode Artwork

Arduino

Ever want to build your own robot? We explain how to do this using Arduino! Show notes: http://www.programmingthrowdown.com/2018/03/episode-75-arduino.html ★ Support this podcast on Patreon ★
3/5/20181 hour, 38 minutes, 3 seconds
Episode Artwork

Cryptocurrency and Smart Contracts

Today we discuss Cryptocurrency and Smart Contracts with Amy Wan, CEO of Sagewise. Amy has a legal background and combines this with expertise in cryptocurrency, blockchain, ICOs, and smart contracts. Show Notes: http://www.programmingthrowdown.com/2018/01/episode-74-cryptocurrency-smart.html ★ Support this podcast on Patreon ★
1/30/201858 minutes, 57 seconds
Episode Artwork

Parallel Computing with Incredibuild

How can you use all of the computers in your lab/office at the same time to speed up tasks? Today we talk with Dori Exterman, CTO of Incredibuild, about parallel computing and the awesome tool Incredibuild has created that can run any multi-process program on several machines. Show Notes: http://www.programmingthrowdown.com/2017/12/episode-73-parallel-computing-with.html ★ Support this podcast on Patreon ★
12/19/20171 hour, 5 minutes, 8 seconds
Episode Artwork

Internationalization

How can you maintain a separate version of your app/site in all langauges and locales? How do you handle right-to-left text, various currencies, and a bunch of languages with non-ascii characters? We explain all this and more in Internationalization! Show notes: http://www.programmingthrowdown.com/2017/11/episode-72-internationalization.html ★ Support this podcast on Patreon ★
11/28/20171 hour, 6 minutes, 36 seconds
Episode Artwork

Office Spaces

Today, we are going to talk about... office space! Not the hilarious 1999 movie directed by Mike Judge, but modern office spaces for engineers and developers. We cover office setups, desk setups, amenities, and more! We won't cover IDEs (check out episode 55 for that) but we do cover how to code comfortably. Show Notes: http://www.programmingthrowdown.com/2017/10/episode-71-office-spaces.html ★ Support this podcast on Patreon ★
10/30/20171 hour, 21 minutes, 34 seconds
Episode Artwork

COBOL and Mainframe Computing

Did you know that there was a programming language co-invented by a consortium of government offices and top businesses (at the time)? Today we talk about that language: COBOL, and also discuss the mainframe computers of that era that ran COBOL. Show notes: http://www.programmingthrowdown.com/2017/09/episode-70-cobol-and-mainframes.html ★ Support this podcast on Patreon ★
9/28/20171 hour, 20 minutes, 58 seconds
Episode Artwork

Puzzle Games with Mark Engelberg

Today we chat with Mark Engelberg about his background in software engineering and game design. Show notes: http://www.programmingthrowdown.com/2017/08/episode-69-puzzle-games-with-mark.html ★ Support this podcast on Patreon ★
8/17/20171 hour, 52 minutes, 24 seconds
Episode Artwork

Soft Skills with SimpleProgrammer

Today we chat with John Sonmez about soft skills: communication, self-motivation, learning to learn, and negotiation, Show notes: http://www.programmingthrowdown.com/2017/07/episode-68-soft-skills-with.html ★ Support this podcast on Patreon ★
7/19/20171 hour, 42 minutes, 59 seconds
Episode Artwork

Cryptocurrency

Today we explain how cryptocurrency works and why it is possible to buy and sell electonic currency. Show notes: http://www.programmingthrowdown.com/2017/06/episode-67-cryptocurrency.html ★ Support this podcast on Patreon ★
6/30/20171 hour, 26 minutes, 23 seconds
Episode Artwork

Code Reviews

In this episode we explain how code reviews work and why they are so important. Show notes: http://www.programmingthrowdown.com/2017/05/episode-66.html ★ Support this podcast on Patreon ★
5/30/201756 minutes, 39 seconds
Episode Artwork

Testing on Mobile with Kobiton

In this episode we interview Josh and Adam from Kobiton. They describe the challenges with releasing a mobile app for many platforms, and how Kobiton allows one to test their app on many devices in the cloud. Show notes: http://www.programmingthrowdown.com/2017/05/episode-65-testing-on-mobile-with.html ★ Support this podcast on Patreon ★
5/15/201748 minutes, 55 seconds
Episode Artwork

Cryptography

In this episode we explain how data is encrypted and decrypted, and how you can use encryption in the things you build. Show notes: http://www.programmingthrowdown.com/2017/03/episode-64-cryptography.html ★ Support this podcast on Patreon ★
3/30/20171 hour, 12 minutes
Episode Artwork

Spring Framework

In this episode we interview Spencer Gibb and Mark Heckler from Pivotal, the company behind Spring Framework: a set of powerful enterprise Java libraries and services. Show notes: http://www.programmingthrowdown.com/2017/02/episode-63-spring-framework.html ★ Support this podcast on Patreon ★
2/28/20171 hour, 3 minutes, 35 seconds
Episode Artwork

PHP and Hack

On this show we discuss PHP and Hack, an language that extends PHP. Show notes: http://www.programmingthrowdown.com/2017/01/episode-62-php-and-hack.html ★ Support this podcast on Patreon ★
1/24/20171 hour, 8 minutes, 46 seconds
Episode Artwork

Clojure with Eric Normand

On this show we discuss Clojure and ClojureScript, and all the amazing things you can build with them. Show notes: http://www.programmingthrowdown.com/2016/12/episode-61-clojure-with-eric-normand.html ★ Support this podcast on Patreon ★
12/22/20161 hour, 8 minutes, 29 seconds
Episode Artwork

Javascript For Mobile with Burke Holland

How to build great mobile apps with Javascript. Show notes: http://www.programmingthrowdown.com/2016/11/episode-60-javascript-for-mobile.html ★ Support this podcast on Patreon ★
11/23/20161 hour, 3 seconds
Episode Artwork

Deploying Software

How to distribute software so it works on other people's computers. Show notes: http://www.programmingthrowdown.com/2016/10/episode-59-deploying-software.html ★ Support this podcast on Patreon ★
10/31/20161 hour, 11 minutes, 1 second
Episode Artwork

Scaling Web Sites with Daniel Moore

This show is an interview with Daniel Moore about scaling web sites. Show notes: http://www.programmingthrowdown.com/2016/09/episode-58-scaling-web-sites.html ★ Support this podcast on Patreon ★
9/27/201655 minutes, 54 seconds
Episode Artwork

Optimization

This show covers software optimization (how to make software run faster). Show notes: http://www.programmingthrowdown.com/2016/08/episode-57-optimization.html ★ Support this podcast on Patreon ★
8/31/20161 hour, 15 minutes, 34 seconds
Episode Artwork

Robotics

This show is an intro to robotics. Blog post: http://www.programmingthrowdown.com/2016/07/episode-56-robotics.html ★ Support this podcast on Patreon ★
7/22/20161 hour, 7 minutes, 38 seconds
Episode Artwork

Editor Wars

This show covers many different editors. Blog post: http://www.programmingthrowdown.com/2016/06/episode-55-editor-wars.html ★ Support this podcast on Patreon ★
6/24/20161 hour, 20 minutes, 19 seconds
Episode Artwork

Programming for the GPU

On this episode we invite Mark Harris, Chief Technologist at NVIDIA, to talk about programming for the GPU. Show notes: http://www.programmingthrowdown.com/2016/05/episode-54-programming-for-gpu.html ★ Support this podcast on Patreon ★
5/25/20161 hour, 5 minutes, 12 seconds
Episode Artwork

Open Source Communities

On this episode we invite Mikeal Rogers, Community Manager at the Node.JS Foundation, to talk about open source communities and organizing large open source projects. ★ Support this podcast on Patreon ★
5/2/20161 hour, 2 minutes, 6 seconds
Episode Artwork

Scientific Python

This show covers Scientific Python: A platform for data analysis, visualization, and reporting built on top of python. Book of the Show Jason: Masterminds of Programming Patrick: Redshirts ★ Support this podcast on Patreon ★
3/28/20161 hour, 11 minutes, 16 seconds
Episode Artwork

Udacity: Democratizing Education

This show covers Online/Continuing education. We ask the experts: How can more people get jobs in programming? ★ Support this podcast on Patreon ★
2/24/20161 hour, 6 minutes, 42 seconds
Episode Artwork

Congratulations!

This show celebrates 50 episodes of Programming Throwdown! We answer questions from the audience live on livecoding.tv . ★ Support this podcast on Patreon ★
1/21/20161 hour, 10 minutes, 42 seconds
Episode Artwork

Tamper Protection

This show covers Tamper Protection: How hackers are able to tamper with compiled programs and the programs that prevent tampering. ★ Support this podcast on Patreon ★
12/21/20151 hour, 22 minutes, 41 seconds
Episode Artwork

Source Control

This show covers Source Control: Various tools that keep history of your code and enable code collaboration. Book of the Show Jason: Kobolds Ate My Baby Patrick: Firefight ★ Support this podcast on Patreon ★
12/7/20151 hour, 3 minutes, 14 seconds
Episode Artwork

Ruby

This show covers Ruby: a multipurpose interpreted language for rapid development. Book of the Show Jason: Paranoia RPG Player’s Handbook Patrick: Lock In ★ Support this podcast on Patreon ★
10/12/20151 hour, 9 minutes, 56 seconds
Episode Artwork

R

This show covers R: a language suitable for data mining and machine learning. Book of the Show Jason: The hard thing about hard things http://amzn.to/1UqMjDD Patrick: Steel World http://amzn.to/1JMcsa5 ★ Support this podcast on Patreon ★
9/10/20151 hour, 6 minutes, 2 seconds
Episode Artwork

Inside Video Game Programming

This show covers game development at a AAA company, featuring Dave Smith from Naughty Dog Inc. and Florent Devillechabrol from Ubisoft. Jason: The Mythical Man Month http://amzn.to/1DGOwbW ; Patrick: Armada http://amzn.to/1L4j2Pj ★ Support this podcast on Patreon ★
8/11/20151 hour, 22 minutes, 32 seconds
Episode Artwork

Logo Scratch Lego

This show covers several programming languages we used as kids. Book of the Show Jason: Gödel, Escher, Bach: An Eternal Golden Braid http://amzn.to/1LWYOpJ ; Patrick: Leviathan Wakes http://amzn.to/1HjpfAo ★ Support this podcast on Patreon ★
7/10/20151 hour, 6 minutes, 10 seconds
Episode Artwork

Debugging

This show covers Debugging: how to fix and maintain code across any language. Book of the Show Jason & Patrick: Mindhacking http://www.mindhacki.ng/ ★ Support this podcast on Patreon ★
6/3/20151 hour, 39 minutes, 6 seconds
Episode Artwork

Fortran

This show covers Fortran: An old (but still very useful!) imperative language for numerical calculations. Books of the Show Jason: A Theory of Fun in Game Design http://amzn.to/1FShtR6 Patrick: Monster Hunter International http://amzn.to/1EeqWO2 ★ Support this podcast on Patreon ★
5/7/20151 hour, 10 minutes, 57 seconds
Episode Artwork

Node.js

This show covers Node.js: A server-side platform for developing network applications. Books of the Show Jason: You Can Draw in 30 Days: The Fun, Easy Way to Learn to Draw in One Month or Less http://amzn.to/1CsrFsO Patrick: Abyss Beyond Dreams (Peter F. Hamilton) http://amzn.to/1NYmqJZ ★ Support this podcast on Patreon ★
4/6/20151 hour, 1 minute, 49 seconds
Episode Artwork

Unity

This show covers Unity: A Toolchain and set of three scripting languages primarily for making games. Tools of the show: Jason: Meld http://meldmerge.org/ Patrick: Space Marshals http://www.pixelbite.se/pbsite3/?page_id=7675 ★ Support this podcast on Patreon ★
2/2/20151 hour, 11 minutes, 50 seconds
Episode Artwork

Rust

This show covers Rust: A memory-safe systems programming language. Tools of the show: Jason: This War of Mine Patrick: Vainglory. ★ Support this podcast on Patreon ★
1/7/20151 hour, 4 seconds
Episode Artwork

SIMD

This show covers SIMD: A set of languages for fast array operations. Tools of the show: Jason: OpenEmu Patrick: Mint.com. Books of the show: Jason: Emacs Quick Reference Card: http://www.gnu.org/software/emacs/refcards/pdf/refcard.pdf Patrick: The Mote in God’s Eye http://amzn.to/1AwlOaf ★ Support this podcast on Patreon ★
11/22/20141 hour, 12 minutes, 57 seconds
Episode Artwork

Funky Languages

This show covers Funky Languages: esoteric languages that are created mostly for fun. Tools of the show: Jason: Open Broadcaster Software Patrick: Plex. Books of the show: Jason: Impro for Storytellers: http://amzn.to/1sMohKv Patrick: The Android’s Dream (John Scalzi): http://amzn.to/1wHkOL0 ★ Support this podcast on Patreon ★
10/15/20141 hour, 11 minutes, 34 seconds
Episode Artwork

Swift

This show covers Swift, a language developed by Apple for iOS and OS/X. Tools of the show: Jason: Nextdoor Patrick: Waze. Books of the show: Jason: Denial: Why Business Leaders Fail... http://amzn.to/1rvKXbP Patrick: Red Seas Under Red Skies http://amzn.to/1oZplmS ★ Support this podcast on Patreon ★
9/8/20141 hour, 2 minutes, 32 seconds
Episode Artwork

Haskell

This show covers Haskell, a statically-typed functional language. Tools of the show: Jason: Uber Patrick: Store Coupon Apps. Books of the show: Jason: Start With Why http://amzn.to/1uNg61I Patrick: Childhood's End http://amzn.to/1s8Fmv ★ Support this podcast on Patreon ★
8/1/20141 hour, 2 minutes, 32 seconds
Episode Artwork

Databases

This show covers Databases. Tools of the show: Jason: nvAlt / nvPy Patrick: Arduino. Books of the show: Jason: Negotiating For Dummies http://amzn.to/1jS9Yem Patrick: Steelheart http://amzn.to/1lsRxBv ★ Support this podcast on Patreon ★
6/26/20141 hour, 14 minutes, 26 seconds
Episode Artwork

Design Patterns

This show covers Design Patterns. Tools of the show: Jason: VirtualBox Patrick: Bittorrent Sync. Books of the show: Jason: HTML5 Game Development Insights http://amzn.to/1g94JVS Patrick: The Martian http://amzn.to/1smEYc8 ★ Support this podcast on Patreon ★
5/7/20141 hour, 9 minutes, 33 seconds
Episode Artwork

OpenSCAD

This show covers OpenSCAD and 3d modeling. Tools of the show: Jason: uSelect iDownload Patrick: Skulls of the Shogun. Books of the show: Jason: My Friend Dahmer http://amzn.to/1eOLNL8 Patrick: Make Magazine http://makezine.com/ ★ Support this podcast on Patreon ★
3/18/20141 hour, 16 minutes, 34 seconds
Episode Artwork

Unix Commands

This show covers Unix Commands and How to Ace an Interview. Tools of the show: Jason: Duolingo Patrick: 123D Design. Books of the show: Jason: Locke and Key http://amzn.to/L2LmEq Patrick: Lies of Locke Lamora http://amzn.to/1dIUJjy ★ Support this podcast on Patreon ★
1/27/20141 hour, 18 minutes, 18 seconds
Episode Artwork

FPGAs

This show covers Field Programmable Gate Array (FPGA) programming. Tools of the show: Jason: Kaggle http://www.kaggle.com/ Patrick: KiCad http://www.kicad-pcb.org/ . Books of the show: Jason: Mahout in Action http://amzn.to/1eizgRS Patrick: Bebop to the Boolean Boogie http://amzn.to/1cGRdaD ★ Support this podcast on Patreon ★
11/20/20131 hour, 21 minutes, 13 seconds
Episode Artwork

CUDA and OpenCL

This show covers CUDA and OpenCL, languages targeting the Graphics Processing Unit (GPU). Tools of the show: NES/SNES Together https://play.google.com/store/apps/details?id=com.github.mistertea.android.emu.nes https://play.google.com/store/apps/details?id=com.github.mistertea.android.emu.snes, JODA-Time http://www.joda.org/joda-time/. Books of the show: Understanding Computational Bayesian Statistics http://amzn.to/1cGrjEX and Going Postal http://amzn.to/13egaIw ★ Support this podcast on Patreon ★
9/4/20131 hour, 4 minutes, 26 seconds
Episode Artwork

Applied Artificial Intelligence

This show covers Applied Artificial Intelligence, techniques for applying AI to work or hobby projects. Tools of the show: WebM and FFMpeg. Books of the show: 2br02b http://www.gutenberg.org/ebooks/21279 and The Code Book (Kindle: http://amzn.to/14zADaL), (Paperback: http://amzn.to/11j2l7G) ★ Support this podcast on Patreon ★
6/13/20131 hour, 8 minutes, 29 seconds
Episode Artwork

Theoretical Artificial Intelligence

This show covers Theoretical Artificial Intelligence, a deep dive into what AI is all about. Tools of the show: TypeScript and Ridiciulous Fishing. Books of the show: Dungeon (Paperback: http://amzn.to/11Iares) and Hitchhiker's Guide to the Galaxy (Kindle: http://amzn.to/117nNv3) (Hardcover: http://amzn.to/11IaEyj) ★ Support this podcast on Patreon ★
5/31/20131 hour, 13 minutes, 14 seconds
Episode Artwork

Image Processing

This show covers Image Processing, techniques for manipulating images and extracting other useful information from them. Tools of the show: Moon+ Reader Pro and Spaceteam. Books of the show: Do Androids Dream of Electric Sheep? (Kindle: http://amzn.to/14mk17G ), (Paperback: http://amzn.to/XamtLA) and Foundation (Kindle: http://amzn.to/XamMWD), (Paperback: http://amzn.to/WUb1Cg) ★ Support this podcast on Patreon ★
3/26/20131 hour, 6 minutes, 49 seconds
Episode Artwork

Unit Testing

This show covers unit testing, a way to put your code through the ringer before you show it to your users. Tools of the show: JsFiddle and towel.blinkenlights.nl. Books of the show: The Lean Startup (Kindle: http://amzn.to/157xbEl ), (Hardcover: http://amzn.to/12HwaDp) and Ender’s Game (Kindle: http://amzn.to/VcfVtD), (Paperback: http://amzn.to/Wg32hx) ★ Support this podcast on Patreon ★
2/22/20131 hour, 14 minutes, 47 seconds
Episode Artwork

JVM Languages (Jython, Clojure, Scala)

This show covers some JVM languages, languages that are built on top of Java. Tools of the show: Ripple Emulator and Battle of the Bulge. Books of the show: Reinforcement Learning: An Introduction http://amzn.to/X6DpwS and Ready Player One http://amzn.to/Yg3zzP ★ Support this podcast on Patreon ★
1/29/20131 hour, 26 seconds
Episode Artwork

Hadoop

This show covers Hadoop, a set of several languages and libraries for working with big data. Tools of the show: Emacs and Chrome Browser Sync. Books of the show: Hadoop: The Definitive Guide http://tinyurl.com/cp3mw32 and Anathem http://tinyurl.com/cas8bux ★ Support this podcast on Patreon ★
12/26/20121 hour, 7 minutes, 8 seconds
Episode Artwork

LaTeX

This show covers LaTeX, a digital typesetting language. Tools of the show: Cocos2d-X and Snapseed. Books of the show: Algorithms in C++ http://tinyurl.com/agbc8t7 and Head First Design Patterns http://tinyurl.com/ayxb7q6 ★ Support this podcast on Patreon ★
12/9/20121 hour, 6 minutes, 46 seconds
Episode Artwork

Mailbag

This show covers some of the top questions asked by the fans. ★ Support this podcast on Patreon ★
11/19/20121 hour, 20 minutes, 58 seconds
Episode Artwork

Query Languages

This show covers Query Languages, programming languages designed at accessing data from databases. Tools of the biweek: Pixen and Downcast ★ Support this podcast on Patreon ★
10/28/20121 hour, 27 minutes, 33 seconds
Episode Artwork

BASIC

This show covers Beginner's All-purpose Symbolic Instruction Code (BASIC), a starter language for many programmers. Tools of the biweek: Dungeon Crawl Stone Soup and Wireshark ★ Support this podcast on Patreon ★
9/22/201252 minutes, 59 seconds
Episode Artwork

Go

This show covers Go, an interpreted, low-level language that has native coroutine support. News:100000 DPI printer, Joyent Cloud ending lifetime support, Apple buys fingerprint company, Twitter caps 3rd party apps. ★ Support this podcast on Patreon ★
9/6/20121 hour, 12 minutes, 41 seconds
Episode Artwork

Java

This show covers Java, a semi-compiled language used heavily in web and mobile development. News: Ouya android gaming console, Is C/C++ Worth It?, Engineered Jellyfish. Tools of the BiWeek: Cygwin, MinGW and Macports, uShare. ★ Support this podcast on Patreon ★
8/3/20121 hour, 18 minutes, 14 seconds
Episode Artwork

Build Automation

This show covers build automation, scripts to streamline the build process. News: New Top Level Domains, Anatomy of Freemium, LinkedIn Passwords Leaked, $100 Masters Degree. The tools of the biweek are Apache Cordova (Formerly PhoneGap), Xbox Media Center (XBMC). ★ Support this podcast on Patreon ★
6/27/20121 hour, 9 minutes, 13 seconds
Episode Artwork

Lua

This show covers Lua, an interpreted language designed to be embedded into larger applications. News: Facbeook IPO, Javascript Arduino programming, Brain Controlled Robots. The tools of the biweek are JDBM/BerkeleyDB and Audacity. ★ Support this podcast on Patreon ★
5/29/20121 hour, 9 minutes, 42 seconds
Episode Artwork

Interface Description Languages (IDLs)

This show covers Interface Descrption Languages (IDLs), such as thrift and protocol buffers. News: Sony fighting with PSP hackers, Pebble smartphone watch, Pacman runs on 0x10C, UF Computer Science cuts. The tools of the biweek are Sublime Text Editor and Luminance HDR. ★ Support this podcast on Patreon ★
4/26/20121 hour, 13 minutes, 54 seconds
Episode Artwork

C++

This show covers C++, a general-purpose programming language. News: Visualizing code to fail faster, the future of the used game market, Prince of Persia source code found. The tools of the biweek are sfxr and DC universe online. ★ Support this podcast on Patreon ★
4/9/20121 hour, 15 minutes, 15 seconds
Episode Artwork

Dart

This show covers Dart, a client-side browser alternative to javascript. Dart currently only runs in Chrome, but dart code can be compiled to javascript and then run in any browser. News: Raspberry Pi, California allows autonomous cars, Stanford online courses. The tools of the biweek are Disk Usage Programs (WinDirStat, Disk usage Analyzer, and Disk Inventory X), and Spelunky. ★ Support this podcast on Patreon ★
3/20/201256 minutes, 54 seconds
Episode Artwork

Lisp

This show covers Lisp, one of the first functional langauge that is often used for academic purposes, but also has a place in industry. The episode talks about Cuda, how to write a Roguelike, becoming a good programming, and DOS games on Chrome. The tools of the biweek are Google Native Client (NaCl), a way to run native C/C++ code in a browser, and Handbrake, a way to make copies of your video DVDs. ★ Support this podcast on Patreon ★
2/26/20121 hour, 6 minutes, 39 seconds
Episode Artwork

Javascript

This show covers Javascript, the only client-side scripting language built into most modern browsers. The episode talks about Patrick's move to Silicon Valley, Codecademy, The HP Touchpad Fire sale, and Minecraft's Notch challenging Bethesda to Quake 3. The tools of the biweek are Low-Level Virtual Machine (LLVM), an open source virtual machine and suite of compilers that compile and run code from many languages. and Hamachi, a free virtual private networking solution. ★ Support this podcast on Patreon ★
8/29/20111 hour, 25 minutes, 34 seconds
Episode Artwork

HTML and CSS

This show covers HyperText Markup Language (HTML) and Cascading Style Sheets (CSS), two of the three languages that make up most client-side Internet programming. The episode talks about the Humble Indie Bundle 3, Linux Kernel reaching 3.0, and the end of manned space flight program. The tools of the biweek are Freemind, an open source brainstorming assistant, and Picasa, a free photo editing and hosting service. ★ Support this podcast on Patreon ★
8/5/20111 hour, 14 minutes, 43 seconds
Episode Artwork

Prolog

This show covers Prolog (Programmable Logic), a rule based language based on deductive inferencing. The episode talks about the Zynga IPO, Google+, and types of coders (Computer Scientist, Programmer, and Developer). The tools of the biweek are FreeNX, a remote desktop server and client, and Evernote, a note taking application that stores notes in the cloud. ★ Support this podcast on Patreon ★
7/4/20111 hour, 20 minutes, 44 seconds
Episode Artwork

Objective-C

This show covers Objective-C, the premier language for iphone, ipad, and os/x app development. The episode talks about the upcoming Wii U console and Duke Nukem Forever, (possibly) the most offensive game ever made. After the news, the show discusses why and how Patrick and Jason got into programming. The tools of the biweek are JavE, an ascii art drawing and conversion tool, and Ascii Flow Diagram, an ascii art flowchart creator. ★ Support this podcast on Patreon ★
6/18/20111 hour, 19 minutes, 46 seconds
Episode Artwork

Assembly

This show covers Assembly, the lowest level language used to program a computer. This episode talks about the amount of traffic Netflix is generating, how many ebooks Amazon now sells, Apple not standing up for its developers, how young is too young for facebook, working on open source projects, and a new tool called Hype. The tools of the day are FileZilla, a cross platform ftp client, and PuTTY, a Windows SSH tool. ★ Support this podcast on Patreon ★
5/21/20111 hour, 14 minutes, 43 seconds
Episode Artwork

C#

This show covers C# a CLI language designed by Microsoft. This episode talks about over the air updates, decompiling, and Ubuntu. The tools of the day are VLC, a cross-platform video player and PortableApps, a collection of applications able to run off a USB drive. ★ Support this podcast on Patreon ★
5/13/20111 hour
Episode Artwork

Matlab and Octave

This show covers Matlab, a matrix-based interpreted multiprocessing function language. This episode talks about cloud computing, gaming, and then DIY hardware. The tools of the day are TI MSP430 Launchpad, a hobbyist single board computer (SBC) and Sketchup, a 3d prototyping software. ★ Support this podcast on Patreon ★
4/27/20111 hour, 13 minutes, 4 seconds
Episode Artwork

Erlang Programming Language

This show covers Erlang, a multiprocessing function language. The show talks about latest updates in C++ and java, then talks about open sourcing hardware. The tools of the day are MS Dependency Walker, a DLL resolver and Keepass, a password multiplexer. ★ Support this podcast on Patreon ★
4/8/20111 hour, 1 minute, 37 seconds
Episode Artwork

Python Programming Language

This show covers Python, a popular interpreted language. The show begins with discussion on javascript and browser updates, then goes into the Goldman Sach's stolen code trial, eco-friendly programming, and the origins of Oregon Trail. The tools of the day are Fossil a distributed version control system and Unison, a two-way file synchronization utilities. ★ Support this podcast on Patreon ★
3/25/20111 hour, 9 minutes
Episode Artwork

C Programming Language

This show covers C, the foundation of all programming languages. We begin by introducing ourselves, then jump into talking about the PS3 hack and Nokia cell phone strategy. The tools of the day are Comix the comix book reader and Bitcoin, a virtual currency. ★ Support this podcast on Patreon ★
3/9/201157 minutes, 31 seconds