Three Devs and a Maybe

Three Devs and a Maybe

By Michael Budd, Fraser Hart, Lewis Cains, Edd MannTechnologyEducation
Download on the App Store

Three Devs and a Maybe episodes

  • 164: Delving into Elixir with Keyvan Akbary

    In this weeks episode we are lucky to have Keyvan Akbary back on the show.

    We start off by discussing the job role he has taken since moving back to Madrid, and the importance of building autonomous teams.
    From here, we talk about the technology stack they are using at Cabify, highlighting some of the interesting features found in Elixir and Go.
    Finally, we touch upon Cabify’s infrastructure and deployment strategy, showcasing how awesome GitLab is along the way.

    Show Links
    • Keyvan Akbary
    • Keyvan Akbary on GitHub
    • Keyvan Akbary on Twitter
    • Life as a Software Developer with Keyvan Akbary - Three Devs and a Maybe
    • Cabify
    • TransferWise
    • Elixir
    • The Go Programming Language
    • Erlang/OTP
    • The Phoenix Framework
    • 100 functions, 1 data structure vs. 10 functions, 10 data structures
    • Erlang — dialyzer
    • phoenixframework/phoenix_live_view - Rich, real-time user experiences with server-rendered HTML
    • Programming Elixir 1.6 - The Pragmatic Bookshelf
    • Programming Phoenix 1.4 - The Pragmatic Bookshelf
    • Exercism - Elixir
    • CodeWars - Elixir
    • GitLab
    • GitLab - Auto DevOps
    • Nomad by HashiCorp
    • asdf-vm/asdf - Extendable version manager with support for Elixir
    • 1 hr 8 min
    • 163: Building SaaS Products with Simon Bennett

      In this weeks episode we chat to Simon Bennett about his experience bootstrapping SaaS products.

      We start off with how he got into software development and highlight some of his previous/current business ventures.
      This leads us to highlight treating each failure as an experiment, and the danger (as a developer) of using a new product idea as a platform to learn new technology.
      From here, we discuss the success he has had from SnapShooter, his new product Automaily, and the unique challenges building products targeted at developers.
      Finally, we touch upon how he comes up with new ideas, the necessity to quickly validate them, and advice for any listener who has an idea and is thinking of building a product from it.

      Show Links
      • Simon Bennett on Twitter
      • Simon Bennett - Software Consultant
      • Simple Scheduled DigitalOcean and AWS Backups - SnapShooter
      • Eliminate SaaS Churn - Automaily
      • Simon Bennett - Building SaaS Automaily
      • How Starting Small Helped Me Build a Server Backup Company
      • Smooth PHP - GitHub
      • Simple Scalable Secure Backup - Backup Stream
      • Manage Team SSH Keys - Authorized.sh
      • Artisan.host
      • 49 min
      • 162: PHP + JIT = GR8 with Joe Watkins

        In this weeks episode we have good friend of the show Joe Watkins back on to discuss the recent developments in PHP.

        We start off by highlighting how code is currently compiled and executed using the Zend VM, and distill how the recently approved JIT (for PHP 8) will change this.
        From here we mention the reasoning for going down this path now, the difference between I/O vs CPU bound code, and the use-cases where the JIT will improve performance.
        This leads us to the PHP compiler project Anthony Ferrara is working on (with the goal of Ahead-of-Time PHP compilation), and the new parallel concurrency API Joe is working on which uses a model similar to Goroutines.
        Finally, we discuss his recently approved Weak References and Abolish Narrow Margins RFC’s.

        Show Links
        • Musings, ninja ones - PHP GR8
        • PHP RFC - JIT
        • nikic/php-ast - Extension exposing PHP 7 abstract syntax tree
        • ircmaxell/php-ast-visualizer - An AST visualizer, for PHP
        • PHPNG
        • PHP OPcache
        • ircmaxell/php-compiler - A compiler. For PHP
        • ircmaxell/php-compiler-toolkit - A compiler toolkit. For PHP
        • ircmaxell/FFIMe - A FFI Wrapper library and header parser!
        • Anthony Ferrara - High Performance PHP - YouTube
        • Musings, ninja ones - Parallel PHP - The Next Chapter
        • krakjoe/parallel - A succinct parallel concurrency API for PHP7
        • Joe Watkins on Twitter - “parallel+jit+php-nes-emulator = 80’s fun at full speed”
        • PHP RFC - Weak References
        • PHP RFC - Abolish Narrow Margins
        • 52 min
        • 161: Exploring Bitcoin with Mattias Geniar

          In this weeks episode we are lucky to have Mattias Geniar back on the show to discuss his experiences delving into Bitcoin and Cryptocurrencies.

          We start off by chatting about his introduction to Bitcoin, the ‘bear market’ of 2018 and how valuable the ‘Mastering Bitcoin’ book is to understanding its’ internals.
          From here we move on to the concept of ‘Code is Law’ and the implications of such an approach, the pros n’ cons of being a developer in this space, and how he stores his private keys (not your keys, not your coins!).
          This leads us to highlight second-layer scaling solutions such as the Lighting Network, and the confusion around projects reusing the Bitcoin name.
          We then touch upon the power of Ethereum, its’ planned consensus transition from PoW to PoS, and how different it is developing on a distributed platform.
          Finally, we look at the Mimblewimble protocol and Atomic Swaps, discussing their use-cases and how they can improve the space.

          Show Links
          • Mattias on Twitter
          • Initial impressions on running a Bitcoin Core full node
          • Run a Bitcoin Lightning Node on CentOS 7
          • Run a Bitcoin Core full node on CentOS 7
          • Bitcoin Core
          • Mastering Bitcoin
          • The Internet of Money
          • Mastering Ethereum
          • Andreas M. Antonopoulos - The open blockchain expert
          • jack on Twitter - “…hiring 3-4 crypto engineers and 1 designer to work full-time on open source contributions to the bitcoin/crypto ecosystem”
          • Trezor - Hardware Wallet
          • Ledger - Hardware Wallet
          • Truffle Suite - Sweet Tools for Smart Contracts
          • Michelson - the language of Smart Contracts in Tezos
          • What is Mimblewimble? The Complete Beginner’s Guide
          • Grin
          • What is Merged Mining? Can You Mine Two Cryptos at the Same Time?
          • #CryptoTwitter on Twitter
          • 1 hr 15 min
          • 160: Serverless PHP using Bref with Matthieu Napoli and Neal Brooks

            In this weeks episode we are lucky to have both Matthieu Napoli and Neal Brooks on the show to discuss all things Serverless PHP.

            We start off by discussing what drew Matthieu to Serverless, the creation of the Bref project and the technical challenges encountered with getting PHP to work within the Lambda environment.
            From here, we touch upon the reasons behind moving from the Serverless Framework to SAM (for the 0.3 release) and how Bref uses the new Lambda Layers and Runtime API.
            This leads us on to highlight how a typical PHP project would use Bref, the decision to be opinionated in order to stay minimal and the experimental Loop SAPI.
            Finally, we envision what the future holds for the Bref project and Serverless compute.

            Show Links
            • Matthieu Napoli - Software consultant expert with PHP and Symfony
            • Matthieu Napoli on Twitter
            • Neal Brooks on Twitter
            • Bref - Serverless PHP applications made simple
            • Running your PHP site on AWS Lambda - Speaker Deck
            • Running Symfony on AWS Lambda with Neal Brooks - Three Devs and a Maybe
            • What Is the AWS Serverless Application Model (AWS SAM)?
            • return true to win
            • Serverless PHP news
            • AWS Lambda Layers
            • New for AWS Lambda - Use Any Programming Language and Share Common Components
            • AWS Builders’ Day - re:Invent Deep Dive on Lambda Layers and Runtime API - YouTube
            • A Serverless Journey - AWS Lambda Under the Hood - YouTube
            • Add loop mode (-L) in the CLI SAPI by mnapoli - GitHub
            • mnapoli/bref-bootstrap-benchmarks - Benchmark of possible solutions for Bref and the new AWS Lambda runtime API
            • HTTP performances with Bref v0.3 - Matthieu Napoli
            • Bref Slack Workspace
            • awslabs/aws-lambda-container-image-converter - The AWS Lambda container image converter tool
            • Firecracker - Lightweight Virtualization for Serverless Computing
            • 52 min
            • 159: PHP Test Tooling and RFC Roundup with Joe Watkins

              In this weeks episode we are joined by Joe Watkins for a long overdue catchup.

              We start off the show by discussing what Sandboxing is and the new Sandbox extension he has developed.
              From here, we touch upon test-doubles/mocking frameworks, the reasoning behind building uopz in the past, and now componere/mimus to aid in testing.
              This leads us on to highlight what test coverage is, the history of coverage tooling within PHP, and the new exciting pcov extension he has released.
              Finally, we do a big ol’ RFC roundup, discussing RFCs that have been accepted for PHP 7.4 (FFI, Typed Properties and Preloading) and ones under discussion (JIT and Weak References).

              Show Links
              • Boxes of Sand
              • krakjoe/sandbox - A sandbox environment for PHP 7.1+
              • Faking It
              • krakjoe/uopz - User Operations for Zend
              • krakjoe/componere - Complex Type Composition and Manipulation
              • krakjoe/mimus - mocking framework as light as a bird
              • Running for Coverage
              • krakjoe/pcov - PCOV - CodeCoverage compatible driver for PHP
              • krakjoe/pcov-clobber - Run PCOV in versions of PHPUnit before 8, if you must
              • PHP RFC - FFI (Foreign Function Interface)
              • PHP RFC - Typed Properties 2.0
              • PHP RFC - Preloading
              • PHP RFC - JIT
              • PHP RFC - Weak References
              • 57 min
              • 158: Hexagonal Architecture (Ports and Adapters) with Matthias Noback

                In this weeks episode we are lucky to have Matthias Noback on the show to discuss software architecture design.

                We start off the show by highlighting why we should invest time in the architecture of our software, and what is meant by ‘layers’ of an application.
                This leads us to discuss what Hexagonal Architecture (Ports and Adapters) actually is, Infrastructure vs. Core (Domain, Application) and the Dependency Inversion Principle.
                From here we mention the different responsibilities Ports and Adapters have, the different forms of testing you can do within this architecture and Use-cases/Command Buses.
                Finally, we touch upon the new book ‘Style Guide for Object Design’, which Matthias is currently in the process of writing.

                Show Links
                • Matthias Noback’s Blog
                • Matthias Noback on Twitter
                • Hexagonal Architecture - training by Matthias Noback
                • Layers, ports & adapters - Part 1, Foreword
                • Layers, ports & adapters - Part 2, Layers
                • Layers, ports & adapters - Part 3, Ports & Adapters
                • A wave of command buses
                • Exceptions and talking back to the user
                • SimpleBus/SimpleBus
                • sensiolabs-de/deptrac - Keep your architecture clean
                • The Clean Architecture
                • The Onion Architecture
                • Style Guide for Object Design - Leanpub
                • 1 hr 2 min
                • 157: The Symfony Ecosystem with Nicolas Grekas

                  In this week’s episode Edd and guest co-host Neal Brooks chat to Nicolas Grekas about all things Symfony.

                  We start off discussion with how he got interested in programming, his introduction to Symfony, and his journey to now working on the code-base almost daily.
                  This leads us on to talk about how he helped build the performance profiler Blackfire, and the importance of quantitative measurements whilst making performance improvements.
                  From here we highlight managing pull requests, the social factors when leading open-source projects and Symfony’s continuous migration path.
                  Finally, we touch upon the recently released Messenger component and upcoming Symfony Contracts initiative.

                  Show Links
                  • Nicolas Grekas on Twitter
                  • Nicolas Grekas - GitHub
                  • Symfony, High Performance PHP Framework for Web Development
                  • What is Symfony
                  • Blackfire.io - Continuous PHP Performance Testing
                  • Symfony 4.2 roadmap
                  • The Cache Component - Symfony
                  • Making Symfony’s Router 77.7x faster 1/2
                  • Making Symfony router lightning fast 2/2
                  • The Messenger Component - Symfony
                  • symfony/contracts: A set of abstractions extracted out of the Symfony components
                  • PHP-FIG - PHP Framework Interop Group
                  • 50 min
                  • 156: Running Symfony on AWS Lambda with Neal Brooks

                    In this weeks episode we are lucky to be joined by Neal Brooks, a fellow developer of Edd’s at MyBuilder.

                    We start off by discussing how he got into programming, QBasic and video driver shenanigans.
                    From here, we move on to introduce his SymfonyLive London talk ‘Running Symfony on AWS Lambda’.
                    We highlight what drew him to Lambda, and the new tooling that is making it easier to run PHP and frameworks (such as Symfony) on it.
                    This leads us to cover his demo application, and explore handling assets using S3, database migrations and AWS resources using CloudFormation.
                    Finally, we debate using catch-all gateway endpoints vs. dedicated gateway endpoints and Lambda performance.

                    Show Links
                    • Neal Brooks on Twitter
                    • Neal Brooks - Medium
                    • SymfonyLive London 2018
                    • Running Symfony on AWS Lambda with Neal Brooks
                    • QBasic
                    • mnapoli/bref - Serverless framework for PHP
                    • return true to win
                    • Everything Serverless with Andy Raines - Three Devs and a Maybe
                    • Creating a ‘Winning’ Audio Lambda Service using Serverless, Polly and compiled SOX
                    • The Twelve-Factor App
                    • Session Management - Symfony
                    • Uploading Objects Using Pre-Signed URLs - Amazon S3
                    • Using a CDN - Symfony
                    • dittto/serverless-s3-assets - Uploads requested assets to S3 as part of Serverless deploy
                    • Mince Pie Challenge - Building a Serverless RESTful API and React Client
                    • MyBuilder Careers
                    • MyBuilder Tech Blog
                    • 58 min
                    • 155: Bridging the Security Gap with Scott Arciszewski

                      In this weeks episode we are lucky to be joined by Scott Arciszewski to discuss all things Security.

                      We start off by chatting about a recent talk he gave at DEF CON 25 and the importance of secure API design.
                      From here we highlight Google Tink, misunderstandings of how PHP has changed over the years and what CVE’s are.
                      This leads us on to delve into the tools and processes used within the reconnaissance phase of a security engagement.
                      Finally, we briefly mention Quantum Computing and its impact on cryptography - followed by best practises for securely managing secrets within web applications.

                      Show Links
                      • Paragon Initiative Enterprises
                      • Scott Arciszewski on Twitter
                      • NaCl - Networking and Cryptography library
                      • google/tink
                      • PHP Implementation? - google/tink - GitHub
                      • PHP RFC - Flexible Heredoc and Nowdoc Syntaxes
                      • Common Vulnerabilities and Exposures (CVE)
                      • Common Weakness Enumeration
                      • Shodan
                      • Nmap - the Network Mapper
                      • Burp Suite Scanner
                      • Puppy Linux
                      • klange/ponyos - My Little Unix, Kernels are Magic!
                      • Fiddler - Web Debugging Proxy
                      • Charles Web Debugging Proxy
                      • OWASP Zed Attack Proxy Project - OWASP
                      • How and Why Developers Use Asymmetric (Public Key) Cryptography in Real-World Applications
                      • Secrets, Secrets, Are No Fun - PHP Roundtable
                      • Keeping Credentials Secure in PHP
                      • Securing Credentials for PHP with Docker
                      • Vault by HashiCorp
                      • AWS Secrets Manager
                      • 1 hr 13 min

                      About Three Devs and a Maybe

                      From the publisher's feed

                      Join us each week as we discuss all things software development. Frequently joined by a far more intelligent guest on the show's topic, we by no means know everything, but love what we do. Topics…