POPULARITY
Watch the live stream: Watch on YouTube About the show Sponsored: RedHat: Compiler Podcast Special guests Mark Little Ben Cosby Michael #1: libgravatar A library that provides a Python 3 interface to the Gravatar APIs. If you have users and want to show some sort of an image, Gravatar is OK PyPI uses this for example (gravatar, not necessarily this lib) Usage: >>> g = Gravatar('myemailaddress@example.com') >>> g.get_image() 'https://www.gravatar.com/avatar/0bc83cb571cd1c50ba6f3e8a78ef1346' Brian #2: JSON to Pydantic Converter Suggested by Chun Ly, “this awesome JSON to @samuel_colvin's pydantic is so useful. It literally saved me days of work with a complex nested JSON schema.“ “JSON to Pydantic is a tool that lets you convert JSON objects into Pydantic models.” It's a live site, where you can plop JSON on one the left, and Pydantic models show up on the right. There's a couple options: Specify every field as Optional Alias camelCase fields as snake_case It's also an open source project, built with FastAPI, Create React App, and a project called datamodel-code-generator. Mark #3: tailwindcss, tailwindui Not python, but helpful for web UI and open source business model example tailwindcss generates CSS Used on the Lexchart app Benefits of tailwindcss and tailwindui: Just-in-Time makes it fast. Output includes only classes used for the project. Stand on shoulders of design thinking from Steve Schoger and Adam Wathan. See also refactoingui.com. Use in current projects without CSS conflicts. Custom namespace with prefix in tailwind.config.js. Bonus: custom namespace prefixes work with the tailwind plug-ins for VS Code and PyCharm. Works well with template engines like, Chameleon. We use tailwind for our app UI. Toolbar template example. Another example of docs and tutorials being a strategic business asset. Resources tailwindcss.com tailwindlabs on YouTube, great tutorials from Simon at Tailwind Beginner friendly tutorials: Thirus, example of tailwind install methods Michael #4: PEP 690 – Lazy Imports From Itamar Discussion at https://discuss.python.org/t/pep-690-lazy-imports/15474 PEP proposes a feature to transparently defer the execution of imported modules until the moment when an imported object is used. PEP 8 says imports go a the top, that means you pay the full price of importing code This means that importing the main module of a program typically results in an immediate cascade of imports of most or all of the modules that may ever be needed by the program. Lazy imports also mostly eliminate the risk of import cycles or crashes. The implementation in this PEP has already demonstrated startup time improvements up to 70% and memory-use reductions up to 40% on real-world Python CLIs. Brian #5: Two small items pytest-rich Suggested by Brian Skinn Created by Bruno Oliveira as a proof of concept pytest + rich, what's not to love? Now we just need a maintainer or two or three…. Embedding images in GitHub README Suggested by Henrik Finsberg Video by Anthony Sottile This is WITHOUT putting the image in the repo. Upload or drop an image to an issue comment. Don't save the comment, just wait for GitHub to upload it to their CDN. GH will add a markdown link in the comment text box with a link to the now uploaded image. Now you can use that image in a README file. You can do the same while editing the README in the online editor. Ben #6: pyotp A library for generating and verifying one-time passwords (OTP). Helpful for implementing multi-factor authentication (MFA) in web applications. Supports HMAC-based one-time passwords (HOTP) and time-based one-time passwords (TOTP). While HOTP delivered via SMS text messages is a common approach to implementing MFA, SMS is not really secure. TOTP using an authenticator app on the user's device such as Google Authenticator or Microsoft Authenticator is more secure, fairly easy to implement, and free (no SMS messaging fees and multiple free authenticator apps available for users). TOTP works best by making a QR code available to simplify the setup for the user in their authenticator app. Lots of easy to implement QR code generators to choose from (qrcode is a popular one if you use javascript on the front end). TOTP quick reference: import pyotp def generate_shared_secret(): # securely store this shared secret with user account data return pyotp.random_base32() def generate_provisioning_uri(secret, email): # generate uri for a QR code from the user's shared secret and email address return pyotp.totp.TOTP(secret).provisioning_uri(name=email, issuer_name='YourApp') def verify_otp(secret, otp): # verify user's one-time password entry with their shared secret totp = pyotp.TOTP(secret) return totp.verify(otp) Extras Brian: PyConUS 2022 videos now up A few more Python related extensions for VSCode black, pylint, isort, and Jupyter PowerToys Work has begun on a pytest course Saying this in public to inspire me to finish it. No ETA yet Sad Python Girls Club podcast Michael: PyTorch M1 Mission Encodable PWAs and pyscript Michael's now released pyscript PWA YouTube video cal.com (open source calendly) Supabase (open source Firebase) Joke: Beginner problems
I wonder how you created the design for kentcdodds.com.It would be great if some resources or tips are shared. Design for Developers by Sarah Drasner Refactoring UI by Adam Wathan and Steve Schoger
Hallo zusammen, kennt ihr Refactoring UI von Adam Wathan und Steve Schoger? Beide besser bekannt als die Macher von Tailwind CSS, haben dieses Buch vor ihrer Tailwind Zeit geschrieben und was wir davon halten, erfahrt ihr in dieser Folge. Viel Spass beim hören Jurek und Benny Links der Woche: Jurek: Addy Osmani Image Optimization (https://heyper.link/UpYeDz) Benny: Steve Schoger Youtube (https://heyper.link/IK3BjP) --- Send in a voice message: https://anchor.fm/schaffdichgluecklich/message
2020 was one of the biggest years in the history of e-commerce. In fact, the pandemic spurred such a growth in e-commerce that the industry as a whole moved forward about 10 years in 3 months’ time. Whether you’re interested in starting your own store or learning how to develop for e-commerce, this week on the podcast we’re breaking it all down for you. Episode Notes [02:40] Platforms [07:22] Why e-commerce over brick & mortar [11:08] Starting your own store [41:16] Developing for e-commerce [49:03] Shoutouts Resources The Originals - https://www.amazon.com/Originals-How-Non-Conformists-Move-World/dp/014312885X The Power of Habit - https://www.amazon.com/Power-Habit-What-Life-Business/dp/081298160X Printful - https://www.printful.com/ Printify - https://printify.com/ TeeLaunch - https://teelaunch.com/ Creative Market - https://creativemarket.com/ Steve Schoger's Episode - https://www.ladybug.dev/episodes/design-for-devs?rq=design Placeit.net - https://placeit.net/ Jenna Kutcher Writing a Bio - https://jennakutcherblog.com/5-ways-write-better-bio-page/ Accessibility Episode - https://www.ladybug.dev/episodes/web-accessibilitiy?rq=accessibility Growth Hacker Marketing - https://www.amazon.com/Growth-Hacker-Marketing-Primer-Advertising/dp/1591847389 Such a Fun Age - https://www.amazon.com/Such-Fun-Age-Kiley-Reid/dp/052554190X Think Again - https://www.amazon.com/Think-Again-Power-Knowing-What/dp/1984878107 Jamstack Ecommerce - https://github.com/jamstack-cms/jamstack-ecommerce Next.js Ecommerce Starter - https://nextjs.org/commerce Shopify.dev - https://shopify.dev/concepts/shopify-introduction Shopify Devs Twitch - https://www.twitch.tv/shopifydevs Shopify Partners - https://www.shopify.com/partners Transcript https://github.com/ladybug-podcast/ladybug-website/blob/master/transcripts/68-ecommerce.md
Deze aflevering bespreken Rick en Michele een artikel (7 Practical Tips for Cheating at Design), Apple Airpods Max en de gebruiksvriendelijkheid (User Experience) van domotica. 7 Practical Tips for Cheating at Design: https://medium.com/refactoring-ui/7-practical-tips-for-cheating-at-design-40c736799886 Steve Schoger: https://twitter.com/steveschoger Apple Airpods Max: https://www.apple.com/nl/airpods-max/ Onderzoek naar het lettertype Dyslexie: https://www.yumpu.com/nl/document/read/19850288/sanne-kuster-en-tom-braams-anna-bosman Philips Hue: https://www.philips-hue.com/nl-nl Ikea TRÅDFRI: https://www.ikea.com/nl/nl/cat/slimme-verlichting-36812/ KlikAanKlikUit: https://klikaanklikuit.nl/ Lidl Smart Home: https://www.lidl.nl/smart-home Homey: https://homey.app/nl-nl/ UX advent calendar: https://ux.christmas/ Oculus Quest 2: https://www.oculus.com/quest-2/
Die Trennung von HTML und CSS aufheben, um User Interfaces schnell und flexibel gestalten zu können – klingt gut für euch? Dann könnte Tailwind CSS etwas für euch sein! In dieser Folge erzählt uns Alexander von Studnitz von dem utility-first CSS Framework, das super einfach zu bedienen ist. Was auf den ersten Blick unübersichtlich wirken mag, macht bei genauerem Hinsehen einen großen Unterschied zu klassischen CSS-Lösungen: Mit Tailwind wird Design direkt im Code erkennbar. Während bspw. Bootstrap mit vordefinierten Stilen arbeitet, bietet Tailwind die passenden Werkzeuge zum individualisierbaren Bau von Webapplikationen an. Unser Gast Alexander studiert Informatik an der TU Darmstadt und codet für die junge und dynamische Digitalagentur clickbar., wo er bereits einige jahrelang Erfahrungen mit dem Framework sammeln konnte. Deshalb ist er unser Experte für einen Blick auf das von Adam Wathan und Steve Schoger entwickelte Open Source Framework. Folgt Alexander und clickbar. auf Twitter oder schaut euch den Tailwind CSS Account an! Weitere Links aus der Folge: Alexander hat mit einer kleinen Gruppe beim WirVsVirus-Hackathon im März 2020 teilgenommen, über den wir in Folge in Folge 58 gesprochen haben. Seht euch den frühen Vorgänger Corona-Warn-App namens “Logbook” an, der mit Tailwind kreiert wurde! Adam Wathan und Steve Schoger, die Entwickler von Tailwind, bieten ein Set von Komponenten an, die kostenpflichtig für das Open Source Framework nutzbar sind. Funfact: Das letzte Redesign von Spiegel.de wurde mit Tailwind CSS umgesetzt.Picks of the Day Alexander: Kostenlose Icon-Sammlung, die mit Tailwind CSS verwendet werden kann auf Heroicons.dev. Sebi: Ein Buch über Design, das jeder Entwickler gelesen haben sollte. Wathan, Adam u. Schoger, Steve (2018): Refactoring UI. Fabi: Kennt ihr die Theorie des 10x Engineers? Keep cool, hier ist eine Liste, was einen 1x Engineer ausmacht. Dennis: Obwohl Tailwind nicht viel für euren persönlichen Stil vorgibt, hat es hübsche, ausgewählte Grundfarben. Dennis' Lieblingsfarbe ist Gray-300 mit dem Hex-Code E2E8F0. Schreibt uns! Schickt uns eure Themenwünsche und euer Feedback. podcast@programmier.bar Folgt uns! Bleibt auf dem Laufenden über zukünftige Folgen und virtuelle Meetups und beteiligt euch an Community-Diskussionen. Twitter Instagram Facebook Meetup YouTube Musik: Hanimo
In this episode, Adam talks to Jason Cohen of WP Engine about hiring people to join the Tailwind team, figuring out what to focus on, and learning how to manage.Topics include:How do you decide what role to hire for?Why it's so important to figure out exactly what your biggest struggle is before hiringHow to decide what the most important thing to focus on is when it feels like there's too much to doWhy it's important to consider the impact of hiring for a specific role on your own happiness vs. just the company's bottom lineComing to terms with the fact that you can't do everything, and why it's important to focus on something instead of spreading yourself thin across everythingMistakes people make when they start managing a team for the first timeLinks:Jason's blog, one of the greatest treasure troves of startup advice on the internetDesigning the Ideal Bootstrapped Business, one of Jason's MicroConf talksSupporting the show:I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.If you do want to support the show, the best way to do it is to purchase one of my products:Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS.Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer.Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain.Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code.Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam talks to Jason Fried about growing the Tailwind team and how to best use Basecamp to keep his particular company organized. He also walks through tons of real examples from their recent work on HEY, sharing lots of behind-the-scenes stuff about how Basecamp use Basecamp themselves.Topics include:How did Basecamp evolve from being a team/client communication tool to focusing on keeping your whole company organized, and is it really even that different?How exactly should we set up Basecamp on day one to support a small 3-5 person remote software team? What tools should we use and which ones should we ignore for now?Finding the balance between being organized enough and splitting things up too muchHow big should projects be? Is "HEY v1" a project, or is a project something more like "HEY File Attachments"?What tools do you normally enable for regular projects, and how do you use them?How are you normally using chat at the individual project level?Why todo lists should be created by the individuals doing the work, and not the people assigning the workHow should we use the company HQ project? What are some less obvious ideas we can apply there that can make a big difference?Using a "what we're working on" project to keep everyone on the team in the loop and feeling connectedUsing "heartbeats" to summarize the work a team has been doing over a period of time for the rest of the companyAdvice on bringing on new employees and how to assign them their first projectWhen you're such a writing-driven company, how do you make sure decisions get written down when they are made in real-time instead of naturally occurring within Basecamp?Screenshots:Example of a "what did I work on?" check-inExample of a heartbeatExample of the "What Works" projectExample of an announcement in the HQ projectExample of a conversation on a todoLinks:BasecampShape Up, Basecamp's recent book on how they workGoing Remote: Basecamp Walkthrough, a livestream where Jason and DHH go over their real Basecamp accountSupporting the show:I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.If you do want to support the show, the best way to do it is to purchase one of my products:Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSSRefactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer.Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain.Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code.Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam talks to Evan You about Vite, a new dev server and build tool for modern JavaScript projects.Topics include:What is Vite and what makes it different than existing tools like Webpack?How do ES Modules actually work in the browser and what are the limitations?Will we ever be able to use ES Modules in production for large complex projects?How does Vite work under the hood, and how does it support non-JS files like Vue files, or CSS files?How hot module replacement is implemented under the hood in ViteOptimizing modules with many dependencies to keep the development experience fastWhat is VitePress and how does it compare to VuePress?Bundling sites for production with ViteWhat's the roadmap for Vite 1.0?Links:ViteVitePressRollupSupporting the show:I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them.If you do want to support the show, the best way to do it is to purchase one of my products:Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSSRefactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer.Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain.Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code.Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam is talks to Alex DeBrie about DynamoDB, and how it compares to relational databases like MySQL. Topics include: Does DynamoDB only make sense for things like your cache, or is it a good choice for a primary data store? An overview of the terminology used in DynamoDB and how the terminology compares to a relational database How primary keys work in DynamoDB What data types are available in DynamoDB How DynamoDB is a schemaless database Why it's important to understand your access patterns in advance with DynamoDB, unlike in a relational database Understanding why and how you usually have multiple record types in a single DynamoDB table What "index overloading" is in DynamoDB Understanding partition keys and sort keys How to structure your data in DynamoDB to make it possible to query related data, and how those queries work How secondary indexes work, allowing you to access the same data in different ways How to accommodate access patterns you didn't know about before you designed your schema When to flatten relationships vs. nest them Should you use DynamoDB if you aren't "web-scale"? How local development works with DynamoDB Links: DynamoDB Homepage Alex's blog, loaded with great DynamoDB content The DynamoDB Book, Alex's recent book DynamoDB Guide Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to purchase one of my products: Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer. Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain. Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code. Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam is talks to Tom Preston-Werner about Redwood.js, a new full-stack JavaScript framework for building edge-ready web applications. Topics include: What does it mean for Redwood to be a JAMStack framework? What does the React layer look like? What’s new, and what’s leveraging existing community tools? Why Redwood ships with it’s own routing layer What “cells” are in Redwood, and how they aim to provide a declarative abstraction on top of data fetching How Redwood tries to provide clear decoupling behind the front-end and back-end, even though it is providing a full-stack solution What “services” are in Redwood Using Prisma 2 to fetch data from your database in your services What database solutions exist today that work well with Redwood in a serverless environment? Links: Redwood.js homepage PredictCovid.com, a Redwood app in production Example blog application built with Redwood Prisma Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to purchase one of my products: Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer. Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain. Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code. Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam is talks to Tim Neutkens about what's new in Next.js 9.3 and how it's changing the way applications are built at ZEIT. Topics include: An overview of the new getStaticProps, getStaticPaths, and getServerSideProps APIs How Next.js helps you serve static pages from an edge CDN automatically, without affecting the actual authoring experience Using getStaticPaths to statically pregenerate dynamic routes How the fallback feature of getStaticPaths works and lets you statically render pages on-demand to avoid long build times How the upcoming incremental static generation feature will work in Next.js Deploying Next.js to a platform other than Zeit, and how you retain all of Next’s benefits automatically How getServerSideProps is different from getInitialProps Why getServerSideProps actually improves performance, even though it introduces another hop How getServerSideProps results in smaller bundle sizes vs. getInitialProps Using getServerSideProps to safely talk directly to a database, skipping the need for an API Why Zeit as a company has started to favor client-side data fetching with SWR over getInitialProps/getServerSideProps, and how they are combining that with statically pregenerated “shells” for incredibly fast feeling experiences What’s coming next in future releases Links: Next.js Next.js 9.3 Announcement Incremental Static Generation RFC Next.js Code Elimination Demo SWR, ZEIT's data fetching library Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to purchase one of my products: Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer. Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain. Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code. Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam is joined by Michael Chan to talk about how people who identify as React developers are building real web applications, and why it seems like nobody is talking about databases or background jobs anymore. Topics include: What do people actually mean when they say "I used to use Rails, but now I use React"? Why back-end development is still a crucial part of building any web application What third-party services people are using to try and replace custom back-end code Would you default to building a Rails back-end for a React side project, or is your instinct to try and use third-party services only? How far do you think front-end-first frameworks like Next.js are going to get their hands dirty in the back-end? Are new developers missing out by starting with React and not realizing how important tools like Rails and Laravel are for building complete production-ready applications? Are relational databases legacy tech or are they underappreciated? Links: Ruby on Rails React AWS Amplify Firebase Hasura GraphQL: The Documentary OneGraph Next.js Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to purchase one of my products: Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer. Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain. Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code. Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam is joined by Sam Selikoff to talk about some of the interesting technical challenges he faced building Tailwind UI, and how working on the project has influenced how he will build layouts in the future. Topics include: What Tailwind UI is and why we decided to build it How odd numbers can wreak havoc on a user interface, and how to avoid them Crafting the perfect form control Unexpected benefits of working with CSS Grid Abusing single column grids just to use gap, and why we desperately need gap support in Flexbox Links: Tailwind UI Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to purchase one of my products: Tailwind UI, a collection of professionally designed, fully responsive HTML components built with Tailwind CSS Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer. Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain. Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code. Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam talks to Mark Dalgleish about common mistakes people make in their approach to constructing layouts, and how dedicated layout components can make your component system much easier to work with. Topics include: What problems you run into when baking white space into components, and why your components should never contain any surrounding white space at all Layout challenges you run into due to the way the browser includes line-height in the size of text elements The trick Mark's team uses to remove surrounding white space from text elements, without removing the space between wrapping lines Using a "stack" component to specify the space between sibling elements Issues with naively just using margin on one side of an element to space elements The upcoming "gap" property in CSS and how it proves layout components are a good idea Using a "content block" component for horizontal spacing/sizing at the page level Tricks for maintaining vertical rhythm despite 1px borders trying to ruin it all for you Why tools like React are so important for being able to implement designs in a way that matches how designers think Links: "Rethinking Design Best Practices", Mark's talk at ReactiveConf 2019 Braid, the design system Mark works on Playroom Supporting the show: I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to pick up one of my books or courses: Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer. Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain. Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code. Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
In this episode, Adam talks to Sam Selikoff about Mirage.js and how to use it to build production-ready front-end applications, even if your back-end API isn't ready yet. Topics What is Mirage and how does it work? What makes Mirage better than a dummy JSON server you run on another port? What makes Mirage better than running your actual API locally? Using Mirage for actual development, and not just for your test suite How Mirage's internal ORM works, and how it can help you mirror your API's behavior more quickly Managing the risks of maintaining a complex stub of your real API with Mirage and keeping them in sync What's next for Mirage Links Mirage.js Mirage.js on GitHub Supporting the show I decided to stop taking sponsors for the show because I think advertisements are annoying and no one wants to listen to them. If you do want to support the show, the best way to do it is to pick up one of my books or courses: Refactoring UI, a book and video series I put together with Steve Schoger on designing beautiful user interfaces, without relying on a designer. Advanced Vue Component Design, a course on designing simpler, more flexible Vue components that are both more powerful and easier to maintain. Test-Driven Laravel, a massive video course on designing robust Laravel applications with TDD. Learn how to build a real-world application from scratch without writing a single line of untested code. Refactoring to Collections, a book and video course that teaches you how to apply functional programming principles to break down ugly, complex code into simple transformations — free of loops, complex conditionals, and temporary variables.
Design for Developers One of the biggest things that developers struggle with is design. It’s easy to look at an application and know that it looks terrible, but hard to explain why.This episode we’re joined by Steve Schoger, co-author of the hugely popular Refactoring UI. We’ll learn some design tips and dive into the story behind the book as well as his other projects Hero Patterns and Hero Icons. Show notes 1:40 - Who are you? Tell us a bit more about your coding/design journey.10:22 - What is your typical day-to-day?15:40 - What are Hero Patterns and Hero Icons?21:25 - What is Refactoring UI?31:40 - What area of design do you think developers struggle the most with?34:11 - What are the differences between UX design and visual design?36:56 - Design tips for developers.41:40 - Where to find Steve online. Resources Refactoring UI Steve's Twitter Steve's Portfolio Steve's YouTube Adam Wathan's Twitter Adam Wathan's Portfolio Tailwind CSS Hero Patterns Hero Icons Refactoring UI Screencasts Transcript We provide transcripts for all of our episodes. You can find them here!
Can developers build beautiful software on their own, without relying on a designer? One team decided to teach this knowledge, and scored massive success. Meet the brains behind Refactoring UI, Adam Wathan and Steve Schoger. You'll learn the story of their project, their favorite design tips, and how much work goes into every bit of content they publish.Podcast feed: subscribe to https://feeds.simplecast.com/4MvgQ73R in your favorite podcast app, and follow us on iTunes, Stitcher, or Google Play Music.Show NotesRefactoring UI — team's project we're talking aboutTailwind CSS — Adam's project, a CSS framework for rapid UI developmentThings — a popular to-do app, one of the examples of great design7 Practical Tips for Cheating at Design — one of the team's most successful articlesScreenFlow — a popular tool for screen recording and video editingWatch Refactoring UI on YouTubeGet the Refactoring UI bookFollow Adam and Steve on Twitter: @adamwathan, @steveschogerToday's SponsorThis episode is brought to you by Lightmatter. Have you ever wondered how top companies ship new features so quickly? Or have you ever struggled to get that awesome UX and UI you were going for? That’s where Lightmatter comes in. They act as a direct extension of design and development teams at some of the world’s top companies. Whether your company needs a new brand, website, or app, they can help. Check them out at lightmatter.com/uibreakfast to learn more.Interested in sponsoring an episode? Learn more here. Leave a ReviewReviews are hugely important because they help new people discover this podcast. If you enjoyed listening to this episode, please leave a review on iTunes. Here's how.
Adam Wathan is 1 part metalhead, 2 parts online education juggernaut. Over the past few years, Adam has distilled his obsessive development research into several online courses and books, achieving millions of Dollars in sales. We rap about SaaS vs once-off payments, Pantera vs Slayer, why he uses Gumroad, the advantage of multi-tier pricing and of course his rapidly growing CSS Framework, Tailwind CSS. Episode links: https://onepagelove.com/podcast-008
Derrick spent his birthday at the north shore of Lake Superior to disconnect and getaway. Yet, he found some time to brainstorm and problem solve for StaticKit. Ben’s back from Martha’s Vineyard, only to experience less positive updates for Tuple. For the first time, Tuple is shockingly “in the red” financially. So, he feels guilty about going away. Today’s Topics Include: Slow Growth: Substantially fewer Tuple trial signups than previous time periods Marketing and Sales Strategy: From being the new tool on the block to steady state where Ben has to earn new Tuple customers Bullseye Framework: Derrick re-read his go-to startup guide to select StaticKit’s repeatable traction channels Tuple’s Q4 objectives and key results (OKRs): Fill top of funnel to increase new email subscribers and trials to continue to grow Ben’s future plans to gather marketing and sales information/intelligence by advertising and appearing on dev-related podcasts Design Matters: Impacts people’s perception of product and builds trust Links and resources: Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Tuple (https://tuple.app/) Tuple’s Pair Programming Guide (https://tuple.app/pair-programming-guide) StaticKit (https://www.statickit.com/) Using Tailwind CSS with Next.js (https://statickit.com/guides/next-js-tailwind) Level (https://level.app/) Slack (https://slack.com/) Zoom (https://zoom.us/) Upcase by Thoughtbot (https://thoughtbot.com/upcase) Traction: A Startup Guide to Getting Customers by Gabriel Weinberg and Justin Mares (https://www.amazon.com/Traction-Startup-Guide-Getting-Customers/dp/0976339609) Ruby on Rails (https://rubyonrails.org) HubSpot (https://www.hubspot.com) Rob Walling (https://robwalling.com/) Drip (https://www.drip.com/) Adam Wathan (https://adamwathan.me/) Full Stack Radio (http://www.fullstackradio.com/) Syntax.fm (https://syntax.fm) Steve Schoger (https://www.steveschoger.com/) Elixir (https://elixir-lang.org) Recurly (https://recurly.com) Chargify (https://www.chargify.com)
In this episode, Adam gets some advice from Ian Landsman of Userscape on marketing and positioning a new Tailwind CSS components directory project he's working on with Steve Schoger. Topics include: Building website templates vs. a UI kit Should the product be positioned as a UI library or an educational resource? One-time purchase pricing vs. subscription pricing vs. some combination of the two Why marketing features can sometimes be better than marketing benefits "Dribbble but with code" Sponsors: Cloudinary, sign up and get 300,000 images/videos, 10GB of storage and 20GB of monthly bandwidth for free DigitalOcean, get your free $50 credit at do.co/fullstack Links: Tailwind CSS Tweet previewing the Tailwind component directory Article on Sketch pricing model MegaMaker Club Thermostat, the NPS survey software Ian is working on
There’s no need to ask them who they are, what they do, businesses and products they built because listeners know them through their stories. After a lot of random, but worthwhile conversations, they’re getting good at being podcast co-hosts. How long does it take to listen to all episodes of Ben and Derrick’s Art of Product (AoP) podcast? Who knew it would be binge-worthy? One more down, one to go before they reach Episode 100! Today’s Topics Include: Tuple 1.0: App is available, despite instant self-serve checkout setback Tuple customers are expanding their use, but there’s still room for more users One-time lump sum: Tuple pricing model that makes sense StaticKit Beta: Start small with kernel of a product to keep funnel constrained Marketing Research and Product Risk: StaticKit to stand on its own or grow Drip and Deleted Emails: Save copies to maintain confidence in critical path Negative Churn: Influence users to upgrade pricing for expansion revenue Links and resources: Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Tuple (https://tuple.app/) Tuple’s Pair Programming Guide (https://tuple.app/pair-programming-guide) StaticKit (https://www.statickit.com/) Level (https://level.app/) Level Retrospective (https://www.derrickreimer.com/essays/2019/05/17/im-walking-away-from-the-product-i-spent-a-year-building.html) Level Manifesto (https://level.app/manifesto) Giant Robots Podcast (https://giantrobots.fm/) Steve Schoger (https://www.steveschoger.com/) Userlist (https://userlist.io/) Adam Wathan on Twitter (https://twitter.com/adamwathan) Tailwind CSS (https://tailwindcss.com/) Product Hunt (https://www.producthunt.com/) Ray Ozzie (https://www.linkedin.com/in/rayozzie) WordPress (https://wordpress.com/) Drip (https://www.drip.com/) Refactoring Rails (https://www.refactoringrails.io/)
Derrick’s short notice about not co-hosting this episode because of being on a plane, and Ben not knowing or planning what to discuss, who and what’s left? Updates and reports on Tuple and Tailwind. Welcome back Adam Wathan! Today’s Topics Include: Today’s Trend: Advisor/investor/founder journals and reports of accomplishments Serves as a way to stay in touch, build relationships, ask questions, and get feedback Three Tuple Reports Later: Things are still going good Programming meets Business: Gary Bernhardt commits to being future podcast guest Successful Tuple Shipments: Significant use of Webcam feature Pricing Options: Ben expresses concern over free trials or pre-paid plans to capture credit cards and emails Invite-only vs. Public Launch: Continue as is, or open Tuple up to all Tuple Update: Revenue is growing quickly, receiving 70-100 support tickets weekly, and room to add customers Tailwind Update: Adam launched first set of videos for Tailwind CSS course Tailwind Subscription/Price Structure: Yet to be determined Adam’s Prediction: Education and documentation determine open source winner Links and resources: Adam Wathan on Twitter (https://twitter.com/adamwathan) Full Stack Radio (http://www.fullstackradio.com/) Tailwind CSS (https://tailwindcss.com/) Refactoring UI by Adam Wathan and Steve Schoger (https://refactoringui.com/) Steve Schoger (https://www.steveschoger.com/) Tyler Tringas on Twitter (https://twitter.com/tylertringas?lang=en) Brian Casel (https://briancasel.com/) Gary Bernhardt on Twitter (https://twitter.com/garybernhardt) ExecuteProgram.com (https://www.executeprogram.com/) David Heinemeier Hansson (DHH) on Twitter (https://twitter.com/dhh) Giant Robots Episode 26: Deep into the psyche of Gary Bernhardt (https://giantrobots.fm/episodes/26) Giant Robots Episode 27: Fabulous new mistakes with Joe Ferris (https://giantrobots.fm/episodes/27) Giant Robots Episode 28: Farther, further, faster with David Heinemeier Hansson (https://giantrobots.fm/episodes/28) Node.js (https://nodejs.org/) React (https://reactjs.org/) Ruby on Rails (https://rubyonrails.org/) Zoom (https://zoom.us/) Superhuman (https://superhuman.com/) Screenhero (https://screenhero.com/) Slack (https://slack.com/) GitHub (https://github.com/) Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Tuple (https://tuple.app/) Tuple’s Pair Programming Guide (https://tuple.app/pair-programming-guide) StaticKit (https://www.statickit.com/) Level (https://level.app/) Level Retrospective (https://www.derrickreimer.com/essays/2019/05/17/im-walking-away-from-the-product-i-spent-a-year-building.html) Level Manifesto (https://level.app/manifesto)
Is something bugging you? Need to get away from everything? Derrick can’t wait to once again ride rugged waters on Minnesota’s many lakes. Not unlike startups, it isn’t always easy to stay afloat when under pressure. Heeelllloooo! Are you there? Still interested? Ask and you shall receive. Ben shipped a major feature for Tuple. Drumroll please…video support. I’ll Tuple you! Today’s Topics Include: Sensible Deprivation: Some suffering can be good; makes you appreciate things more Get Over It, and Gain Confidence: Design and develop video support prototype Official Launch Date for Tuple: Some time in August; Ben’s still trying to shake the perception he’s charging people for beta product Security Vulnerabilities Happen: Ben’s reaction to recent issues with Zoom and Slack Mistakes Ben Might Make: Free Tuple trial to increase conversion and expansion Derrick’s Building Product: Initial version of StaticKit and form collection component Security ROI: Short-circuiting pushback with strong write-up for SOC 2 and ISO 27001 3+ Tuple team? Someday, Ben wants to hire a part-time designer and developer Links and resources: Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Tuple (https://tuple.app/) Tuple’s Pair Programming Guide (https://tuple.app/pair-programming-guide) StaticKit (https://www.statickit.com/) Level (https://level.app/) Level Retrospective (https://www.derrickreimer.com/essays/2019/05/17/im-walking-away-from-the-product-i-spent-a-year-building.html) Level Manifesto (https://level.app/manifesto) Outward Bound (https://www.outwardbound.org) Zoom (https://zoom.us/) Superhuman (https://superhuman.com/) Slack (https://slack.com/) Adam Watham (https://adamwathan.me/) Steve Schoger (https://twitter.com/steveschoger?lang=en) Laracon (http://laracon.us/) Elm (https://elm-lang.org/) React (https://reactjs.org/) Jekyll (https://jekyllrb.com/) Drip (https://www.drip.com) IS0 27001 (https://www.iso.org/isoiec-27001-information-security.html) SOC 2 (https://www.ssae-16.com/soc-2/) HackerOne (https://www.hackerone.com/)
Summer is in full swing. Ben spent a fun and productive day talking about work at a Red Sox game. It was an own-your-own business startup moment. Derrick can see clearly now, thanks to SMILE laser eye surgery. But he’s still seeking clarity on whether to make the masses happy, or stick to core concerns to attract specific customers when creating a new product. Today’s Topics Include: Tuple Grows Up: New version of marketing site getting ready to launch Cha Ching: Confirmation of biggest single Tuple invoice sent for payment How much wisdom is there in the crowd? Can you trust it? Remote Control: Tuple customers give up control to use driver/navigator pairing Self-serve Sign-up: Tuple strives for automation, learning, and feedback Time for a Truce: Trash talking, name calling stops for Slack to send customers to Tuple Soon to be released: Derrick’s StaticKit, a modern approach for embedding dynamic forms onto static sites Links and resources: StaticKit (https://www.statickit.com/) Art of Product Podcast Episode 91: Feeling Superhuman with Rahul Vohra (https://artofproductpodcast.com/episode-91) Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Tuple (https://tuple.app/) Tuple’s Pair Programming Guide (https://tuple.app/pair-programming-guide) Level (https://level.app/) Level Retrospective (https://www.derrickreimer.com/essays/2019/05/17/im-walking-away-from-the-product-i-spent-a-year-building.html) Level Manifesto (https://level.app/manifesto) Jekyll (https://jekyllrb.com/) Middleman (https://middlemanapp.com/) Gatsby (https://www.gatsbyjs.org/) Hugo (https://gohugo.io/) Next (https://nextjs.org/) React (https://reactjs.org/) Superhuman Product-Market Fit Survey (https://www.slideshare.net/marklittlewood/rahul-vohra-founderceo-superhuman-the-productmarket-fit-engine-122102118) Drip (https://www.drip.com/) Steve Schoger (https://www.steveschoger.com/) Stripe (https://stripe.com/) MicroConf (https://www.microconf.com/) Slack (https://slack.com/) Removal of remote screen control in Slack calls (https://get.slack.help/hc/en-us/articles/360022908874-Removal-of-remote-screen-control-in-Slack-calls) Screenhero (https://screenhero.com/) Netlify (https://www.netlify.com/) Zeit (https://zeit.co/) Mailchimp (https://mailchimp.com/) ConvertKit (https://convertkit.com/) JSON (https://www.json.org/) Zapier (https://zapier.com/) FormKeep (https://formkeep.com/) Heroku (https://www.heroku.com/) Ruby on Rails (https://rubyonrails.org/) Medium (https://medium.com/) Phoenix (https://phoenixframework.org/)
Steve Schoger is a Designer and Maker from Kitchener, Ontario, Canada. His Refactoring UI book he co-wrote with Adam Wathan was a massive success, so I try break down the full 18 month execution leading to launch. We also go deep discussing low self-esteem, reacting to pricing complaints, influential marketing channels and how he meticulously constructs those viral Design Tip Tweets.Links and transcription:https://onepagelove.com/podcast-005
Ben had another good week. He signed up 25 new trials and about five conversions for Tuple. Are you one of the 500 chosen by Derrick to get access to Level? Be sure to check your Inbox on Monday for an email from him to find out. Also, Ben and Derrick welcome Adam Wathan as a co-host for this episode. Adam’s working on getting release 1.0 of Tailwind out the door with awesome documentation. Today’s Topics Include: Happiness vs. Harassment: Tuple’s paid trial process Will people pay for Level? Get free feedback first or make them pay upfront? Demo Option: Click around, view dummy posts to get sense of how Level works Refactoring UI: Could it be a perennial seller? How much should you share about your startup in your tweets? Focus on being best option; don’t brag about your success Trying to sell a theme via Tailwind; adding vs. creating new products Holy Grail of Software Business: Rob Walling’s stairstep approach to recurring revenue Growth rate required to stay alive? Keep product relevant to what market wants SaaS is definitely not all roses! Super Fast Email Services/Features: Snippets, Superhuman, Help Scout, and Shortcuts Links and resources: Adam Wathan on Twitter (https://twitter.com/adamwathan) Refactoring UI by Adam Wathan and Steve Schoger (https://refactoringui.com/) Steve Schoger (https://www.steveschoger.com/) Stripe (https://stripe.com/) Jason Cohen - Designing the Ideal Bootstrapped Business (https://vimeo.com/74338272) Perennial Seller: The Art of Making and Marketing Work that Lasts (https://www.amazon.com/Perennial-Seller-Making-Marketing-Lasts/dp/0143109014) MicroConf (https://www.microconf.com/) Tailwind CSS (https://tailwindcss.com/) Bootstrap (https://getbootstrap.com/) Justin Jackson Playing with Tailwind CSS (https://www.youtube.com/watch?v=TwUT0MmnrQw) Justin Jackson’s MegaMaker Club (https://megamaker.co/club/) Patreon (https://www.patreon.com/) Rob Walling’s Stairstep Approach to Bootstrapping (https://robwalling.com/2015/03/26/the-stairstep-approach-to-bootstrapping/) Upcase by Thoughtbot (https://thoughtbot.com/upcase) Paul Jarvis (https://pjrvs.com/) Heroku Dynos (https://www.heroku.com/dynos) Ruby on Rails (https://rubyonrails.org/) Elixir (https://elixir-lang.org/) Superhuman (https://superhuman.com/) Help Scout (https://www.helpscout.com/) Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Level (https://level.app/) Tuple (https://tuple.app/)
Derrick and Ben have descended upon Las Vegas for MicroConf and an audience hungry for valuable tips on how to successfully start and grow a business. Ben will have two Starter Edition sessions: Q & A with Rob Walling and Idea to Validation to Launch: The First 365 Days of Tuple. Today’s Topics Include: MicroConf Goals: Connect with people, spend quality time with friends; don’t feel guilty or FOMO about not going to all talks Ben’s seeking a designer to replace super-successful Steve Schoger Optimism to Realism: Derrick’s shift in mindset about Level at 2018 vs. 2019 MicroConf Sharing wisdom and giving advice - all of the fun, and none of the hard work Not knowing what makes someone a good fit for Level; let people vote with their dollars Getting more founders into therapy to help their mental health Derrick’s mentor role for TinySeed: The Startup Accelerator Designed for Bootstrappers Tuple’s theme of recurring and expansion charges, but also one churn so far Links and resources: MicroConf (https://www.microconf.com/) Ben Orenstein at MicroConf (https://www.microconf.com/starter/speakers/ben-orenstein/) Rob Walling (https://robwalling.com/) Steve Schoger (https://www.steveschoger.com/) Drip (https://www.drip.com/) Sam Harris (https://samharris.org/) Wistia Soapbox (https://wistia.com/soapbox) TinySeed (https://tinyseed.com/) Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Level (https://level.app/) Tuple (https://tuple.app/)
An interview with Steve Schoger, designer and creator or co-creator of many online tools like Tailwind and Refactoring UI and Heroicons and Zondicons. Refactoring UI book Refactoring UI website @SteveSchoger on Twitter Transcription sponsored by Larajobs Editing sponsored by Tighten Matt Stauffer: Welcome back to the Laravel podcast season three. Today, I'm going to be talking to Steve Schoger, co-creator of Refactoring UI and about 10,000 other products you probably already use. Matt Stauffer: Stay tuned. Matt Stauffer: All right, welcome back to Laravel podcast season three. It has been a minute. It's been a couple months since the last one, and we're going to roll up, finish up season three. And I let you all vote on who you wanted to hear from. So, we got three people who were at the end. And the first one is Steve Schoger, designer extraordinaire, Twitter fame, making books, and making dollars. Matt Stauffer: And Steve and I have known each other for a while. We work together at Titan for a while. I've also learned a lot about design from him. So, I'm really excited to hear not about Steve the designer quite so much, but about Steve the person. Matt Stauffer: So, first of all, Steve, the first thing I always ask everybody is first of all say hi to people, and then second of all, if you're meeting somebody in the grocery store and they ask what do you do? How do you answer that question of them? So, let's get started with that. Steve Schoger: Yeah. Sure. I usually introduce myself as my formal title. I usually say UI graphic designer. Even that's weird, because depending on where you work, my job title might be different. It's either UI graphic designer, visual designer, but I usually say like, yeah UI designer. And usually they have a clueless look on their face. I usually say I design websites. Is the easy answer. Matt Stauffer: It feels like it's a little bit of a lame answer. I say the same thing all the time. I'm like, "I make websites." Steve Schoger: I know [crosstalk 00:01:48] get all technical, but they won't get it. Matt Stauffer: Exactly. Steve Schoger: And then some people are just completely like, if I'm talking to someone older, they'll be like, "Oh, so you design books?" I'm just like, "Yeah, I do." Matt Stauffer: It's easier to say yeah and move on and by your tomatoes than actually have to answer it. Steve Schoger: Yeah this conversations over. Matt Stauffer: Yeah. My go to for a while has been I make websites, and I'm getting more and more dissatisfied with it, because I did it for a good reason. It's hard to have that conversation with those people, but then everyone's like, "oh, can you make my website for my Mom and Pop Sausage Shop." Or something like that in WordPress. And I'm like, "No. No, I'm sorry." I know some people who make websites. So, now I'm like, "I make web applications." I don't know anyway. Matt Stauffer: So, okay. So, you are right now coming off the heels of a successful launch of Refactoring UI and everybody in the entire internet heard about this thing and it's super exciting, but just a couple years ago, you were working a nine-to-five, and you had not achieved the level of Twitter fame. So, we're going to walk through that process. But before we go there, I want to learn a little bit about who makes the man who we know today. Matt Stauffer: So, where are you from originally? And when did you first get into design? Even in the earliest stages. Whether it was drawing on your wallet at age three or whatever. What are the steps you can remember that really got you to the point where you realized that design or art or creativity in general were things you might be interested in long-term? Steve Schoger: Yeah. So, to your first question. I'm from Ontario, Canada, and I'm from a city called Kitchner. Which is about a hundred kilometers outside of Toronto. And it's a population of 200,000, is the city of Kitchener, but it's this Tri-City thing. There's three cities next to each other to make one big city, which is about about half a million people. And I actually grew up on a small town outside of ... that's the city I live in now, which is Kitchener, which is a city, a small town of 200, 300 people. Matt Stauffer: Wow. Steve Schoger: Yeah and and I started getting into design, I guess, when ... kinda what you said, I started drawing when I was a little kid. I guess, my mom put this miniature horse in front of me when I was ... I can't even recall this, it was like when I was a baby almost and I'd draw it, but I could ... she acknowledged that I could draw depth. You know when people draw a horse or something, they draw a stick figure or something, but I actually drew the depth of it. Matt Stauffer: The angle of it. Steve Schoger: Yeah, exactly. And she saw, "Okay. There's Talent here." And, I guess, that's the earliest form of what I do. So, I've always been into art and when I was younger, I wanted to be an animator/ I'd watch a lot of cartoons cool stuff. And I didn't really ... when I was younger, the job I have now was not even a job. So, I never designed on the computers until I got to like ... Actually, the first time I used Photoshop was my first day of college. Matt Stauffer: Okay. Steve Schoger: Yeah. So, I'd be doing art and stuff and I'd take graphic design courses in high school, but they're not computer based graphic design. It's school, low-budget, you're working with pen and paper, and you're drawing letters and stuff. Matt Stauffer: Using rulers and all that stuff. Steve Schoger: Yeah, exactly. Matt Stauffer: Now, what was that, because your teacher said, "Oh, there's all this newfangled stuff. But we want you to know the basics." Or was it not even in the context of the newfangled stuff and they just said this is what graphic design is? Steve Schoger: Yeah. I mean, I didn't really ... I guess, that's what I thought graphic design was, and then when I got to college then I started using Photoshop, and everyone around me in the classroom got a handle on Photoshop. They already knew their way around a little bit, but the course I took, it wasn't graphic design. It was multimedia design production. So, that's everything from graphic design to to video, to a little bit of development, to even a little bit of music production, because I didn't know I wanted to do graphic design. So, I took a ... but I knew I wanted to do something in media. Matt Stauffer: Okay. So, when you went up to college, you just said, "I want to do something media-related." And you were still trying to figure out what exactly, so you just tried a lot of different classes or? Steve Schoger: Well, it was a course called multimedia design and production. All those things I just said. And yeah, I just wanted to get my hands wet with everything, and figure it out from there. I didn't know what I wanted to do when I went to college. I didn't know what I wanted my career to be, let's put it that way. Matt Stauffer: But you did have a sense that it was going to be creative and you were going to making ... So, basically was that class the full spectrum of potential careers you were thinking of that point? Steve Schoger: Yeah. Matt Stauffer: Okay it was a perfect all-in-one experience on all them. Did you come out of that class then knowing graphic design is it? Or did it still take some time to figure it out? Steve Schoger: No, no, because like, I guess, in high school, I wanted to be a rock star in high school. Matt Stauffer: Yeah. Tell me more about this. Let's pause college. Tell me more about this. Steve Schoger: Yeah, I play guitar. I picked up a Guitar when I was grade eight. So when I was 12, I guess. And I got really into it, I'd spend four hours a day. I'd come home from high school and play guitar until I went to bed. Matt Stauffer: That's amazing. All-electric or were you an acoustic as well? Steve Schoger: I started on acoustic. The way I got a guitar is my great grandma passed away and it was my inheritance. Matt Stauffer: Okay. Steve Schoger: She didn't have the guitar, but the inheritance money went towards a guitar. So, I started playing acoustic and then I always wanted an electric guitar. So, I picked one up maybe first year of high school or something like that. And that's all I did. And I played in the high school bands and stuff. I played bass guitar in the high school band and stuff. Steve Schoger: And, I mean, that was just an unrealistic dream. But when you're in high school you're just, "I'm gonna make it. I'll be ..."- Matt Stauffer: So, when you were in high school, you legitimately were interested enough in that dream that you thought, "I'm going to graduate from high school and I'm going to join a band or start a band. And I'm going to tour the world, and that's where my money's going to come from."? Steve Schoger: Yes. That's what I believed. Matt Stauffer: Because some people say that ... is kinda like the side dream. That was the dream. So, what dissuaded you from that dream? Steve Schoger: Well, my parents. They were like, "Well, you should consider going to school first, then maybe think about doing that." Matt Stauffer: Okay. Yeah. Yeah. So, they were and trying to weave them together a little. Steve Schoger: Yeah. So, even when I was in multimedia design, I still had this music industry dream in mind. So, I did the multimedia course. I graduated from that, finished it, and then there was this music industry arts program at the same college. I went to Fanshawe College in London, Ontario. And it was really hard to get into it. But I applied for it anyway, right after I graduated from multimedia, and they accepted me. So, and I'm thinking, "Well, I might not be a rock star, but I'd love to be in the music industry right? I'd love to show you music production." Steve Schoger: So, that course covered everything from music business, to just being in the studio and recording artists, and all that stuff . Still an unrealistic dream. Look at the music industry now, right? But I took that course and, I mean, that's still my hobby today. So, I don't regret taking that course. I learned a lot out of that course, but then when I finished that program, I was interning at small record labels. And they all saw the multimedia design on my resume, and that's what I ended up doing at those labels, right? I end up doing a lot of web stuff. A lot of designing little brochures and one sheets. A lot of stuff like that. Steve Schoger: So, I was doing that more and more, and I kinda enjoyed it at this point. Because I was kinda doing it for something I really enjoy doing. But I wasn't getting paid, it was all internships and stuff. Matt Stauffer: Oh. Got it. Steve Schoger: Right. And then I'm like, "Well, I got to get a job in this,." And I tried to follow my music industry path, but there was no money in it. So, I'm like, "Well, I just enjoy doing this anyway." So, this is in like 2009. So, right at the peak of the recession. It was impossible for me to get a job. I couldn't get a job anywhere, right? Steve Schoger: So, I'm thinking "Well, not a bad time for me to go back to school." And I already took multimedia, and I'm thinking "Well, what can leverage all these skills?" What can add to this? And I was thinking, maybe I'll take a look at marketing course or some kind of copywriting course. So, I took advertising and copy writing at Humber College. Steve Schoger: But, when I was in school, in that course, I spent way more time working ... I was making ads, and again in the course, I was making fake ads, right? But I spent way more time working on the creative, than actually the writing the copy. And that year I also spent a lot of time just learning web development. And I learned a little bit of this when I took multimedia, but I forgot everything I learned. So, I was real learning that stuff. And it was easy to pick up again. Matt Stauffer: Real quick. What were you learning? Was it mainly HTML and CSS? Steve Schoger: Html and CSS. Matt Stauffer: [crosstalk 00:11:20] did you get into a CMS or anything like that, or not at that point? Steve Schoger: Yeah, I learned about ... I knew about WordPress and stuff. But even that was ... it was a little too technical for me at that point too, because WordPress you can use the templates, but I really wanted to make something unique. WordPress is always just like, you got the header, the content area, and the sidebar. Ad I didn't want that. I don't want that constraint. So, I just started hand coding, and I learned about a few other CMS's at the time. I don't even know what they were called if you asked. But I tried them out, and I found one that worked for me, and I built a little blog for myself, and I would never write, at all. But that's everyone who starts a Blog and has the attention of write a post every week. And some people succeed at it and I did not. Matt Stauffer: I'm there with you buddy. Steve Schoger: Yeah. Steve Schoger: So, I was doing that. And then during this time in school, maybe in the second semester, it was a one year program, like a post grad program. And I took, in the second semester of that, I spent a lot of time ... I realized I wanted to do web design, at this point. And if I found a job before I finished school, I would have just dropped out of school, because I already had two diplomas at this point. So, it wouldn't phase me to drop out. But I couldn't find a job, but I was doing informational interviews, where I would contact the company and say "I'm not looking for a job. I just want to learn what you guys do day-to-day, and learn about the company." And I did a quite a few of those, and it was my way of networking. And you know what? I did do a little bit of like, "Oh this job. This place is hiring a designer. I'm going to ask if they want to do an informational interview." And I did it with a few companies. And one of my informational interviews turn into a job interview and they offered me a job the day later. So, that's how I got my first job. Matt Stauffer: So, tell me about the difference between an informational interview and a job interview when you know they're hiring? Was it, because you didn't think you would have the qualifications or do you think you're more likely to get in for the informational interview? What made you want to do this one type of interview versus just applying for the job? Steve Schoger: Well, if I did an informational interview, it's this ... my sister recommended that I just reach out and ask for informational interviews. And, I guess, I didn't think I was qualified for the job. So, I didn't apply for the job. And I feel like they're more likely going to have me in, if I have no intention of this Matt Stauffer: Ulterior motive. Steve Schoger: Exactly, exactly. Matt Stauffer: So, that's really interesting. Steve Schoger: I recommend anyone, I recommend to everyone does that. If you're a student in school, and you're just maybe not confident enough to go for that first job interview. Just shoot ... most people ... very few people turned me down, for an informational interview. Matt Stauffer: I mean, it makes sense. We've had a few people reach out for that. It seems so unique that I'm like "Yeah. Sure, I'll talk to you for a little bit. We can't always give you a full hour, but we'd love to chat with you a little bit about Titan." So, I hear that. That's really cool. Steve Schoger: Yeah, and I bring my portfolio in, and say "Hey, can you take a look at this and give me some feedback?" Matt Stauffer: I'm a student. I'm still learning and I'd eventually like to work at a company like this. That kind of thing? Steve Schoger: Yeah, exactly. And I was more thinking about, I was going for visual design jobs, but then I was interviewing with companies, and they're looking for UX designers, and I didn't even understand the role at that point. What the difference between a UX designer and a visual designer is. And sometimes I still don't understand the difference. Matt Stauffer: I think most people still don't get it. I still struggle. Steve Schoger: Yeah. Matt Stauffer: Okay. So that was what? 2010, 2011 at that point? Or was it- Steve Schoger: That sounds about right. So, I think, so. Yeah. Matt Stauffer: Were you married yet at that point? Steve Schoger: No, but I was dating my now wife at the time. I met her in high school. And she's my high school heartthrob, and she rejected me in high school. Matt Stauffer: Oh snap. Steve Schoger: Well, she liked me. She later confessed that she liked me, but friends and influence from that. Kind of like, "Oh no, he's gross." Matt Stauffer: He's a rock star, you don't want to be with that kind of a guy. Steve Schoger: Yeah, but then later on we connected after I graduated from Fanshawe. We were talking on MSN at the time. MSN messenger. And that's how we really started to get to know each other, and then she came to visit me a few times, then we started dating. And then I sat a year off between when I graduated from Fanshawe and Humber, and that's when I really, I also spent that year figuring out what I wanted to do, working on my web design skills. And I was just getting to know my now wife at the time. And then we moved into together when I moved to Toronto. Matt Stauffer: Okay. So, during those years in between, when you weren't in school, the reason I asked about her, I mean, first of all, I'm always curious, but also, were you living alone, working just side jobs while you figured this all out? Or what was your life situation during that time? Steve Schoger: The years between- Matt Stauffer: So, basically you got a you got a job in 2010. We're about to talk about what, I think, was the first design job that you got. So, prior to 2010, where you in school the whole time, or where there any years in there where you were - Steve Schoger: [crosstalk 00:16:52] going back and forth here, because I'm stressing out and forgetting things. There was that year between Fanshawe and Humber. And that was me just getting more familiar with Photoshop again, because I haven't touched it in a long time, getting more familiar with code. And I was living with her, but not living with her. She was still a student. And I was just living at her place. Like, I was still living with my parents, but I was just always over at her place. I brought my computer over there and we just pretty much lived together. Matt Stauffer: Were you doing freelance work at this point or? Steve Schoger: No, I was [crosstalk 00:17:26] I was just learning. I took one job that I just was not qualified to do. And I started doing it and I'm like "I can't do this." And I had to say like, "Yeah, I'm not ... sorry." Because you ... I think, the best way to like ... you just got to try, right? That's how I am with ... maybe this is a conversation for later on, but- Matt Stauffer: No no, lets do it. Steve Schoger: That's how I am with speaking. I am really uncomfortable doing public speaking, but I just force myself to do it, and now I'm doing a lot of talks this year, and I regret are doing every one of them, but it's like, "Well, I gotta do them." And I put myself in that situation, but it's like ... anyways. Steve Schoger: So, yeah. I was just working on my craft, I guess, in the in that time, right? With my girlfriend. And that's how I ... and I just bring a lot of blog posts, learning how to design. Matt Stauffer: So, in 2010, you got your first job, and it came out of an information interview. So, a couple questions around there. What was your actual job supposed to be? And at that point where you primarily thinking of yourself as a UI visual designer? Had you started thinking about any of the other aspects of design that you do today? Because today obviously you're doing interface design, but there's a lot of UX embedded in the stuff that you're working on as well. So, how did you think of yourself then? And what was the actual job that you got? Steve Schoger: So, the formal title of the role, and this is goes back to different places have different titles, but the formal title was "interactive designer." And that could be the same as UI designer at our company, visual designer at another company. So, the work I was doing there was more like ... it wasn't so much software design, which I mostly focus on now. It was more like doing websites. And just doing the creative, mostly. Matt Stauffer: So, you'd basically be the one who says "Hey, we're working for Joe's Plumbing. Here's the font that Joe likes." And you'd put together Photoshop documents. Would you also convert them or are you mainly delivering fat Photoshop documents to web developers, and then moving on? Steve Schoger: Yeah. I remember when ... So, going back to the informational interview I had. The moment it turned into a job interview, there's that transition in that part, and I got all excited. He asked if I code. And I knew a little bit of code. I coded enough to build my own personal website, and that's all he wanted to know. He saw my website. He saw that it's probably not the best code, but he made it. And and I didn't need to code for the job. But he liked that I coded, because it just made it easier to communicate my ideas to the developer. Matt Stauffer: And probably also, because you understood the constraints that the developers are under. One of the things I said, when we first started working with you one, of the reasons that we were excited to work with you, and we'll get to here eventually is, because you were a designer who understood that for example, you can't deliver something with an image that would theoretically have to go wider than the browser, but you didn't give us what the image should look when it goes wider than the browser, right? Like when the browser gets a little wider. It's so clear what it's like working with a print designer, who doesn't understand ... not even responsiveness necessarily, but just like, you literally can't curve a thing that way in HTML. It's literally not possible. Matt Stauffer: As someone who understands what it's like to implement something, your brain was set in a different space, I think. Steve Schoger: Yeah, I think so, because everything was print design back then. There was no responsive design. Yeah, that's for sure. And everything was ... even if you wanted to use a custom font, you embedded it as an image. So, I was a big font guy. I didn't like using just the web defaults. So, I always searched for new fonts, and I'd export that as an image. Steve Schoger: So, I did a lot of the exporting stuff. and, but then yeah, I'd usually hand that off to the front end developer. And I was, when I was working there, I was the only designer at the company. It was a small company. I think, there's eight or ten of us in total. Matt Stauffer: Was it a consultancy? That just took client work and did a design- Steve Schoger: Exactly. Matt Stauffer: Built the front end, maybe integrated CMS, deliver it, move on to the next client? Steve Schoger: Yeah, and they specialized ... they worked with a lot of media companies. So, television production companies, and I think, that was just as a result of ... they worked with one, and word of mouth and ... Matt Stauffer: Its who you know. Steve Schoger: It often works that way. Steve Schoger: Yeah. So, I was doing a lot of that stuff. Matt Stauffer: Okay. So, what was your next transition after that? I mean, did you stay at that job for a couple years and regardless, what made you want to move to something Different? Steve Schoger: Yeah. So, I was working in downtown Toronto at this point, at this company. And I worked there for two years, I think. And it was good. I liked being in a small company, but there's also part of me, "It's my first job. What else is out?" So, I was curious, and I interviewed at other companies, but then we also wanted to move back to our hometown, Kitchener, because Toronto is so expensive. By the way, I wish we bought a house in Toronto at that time, because it was- Matt Stauffer: Because now it's so different. Steve Schoger: We could have sold our house then and had no mortgage whatsoever and moved back here. But whatever. Matt Stauffer: [crosstalk 00:23:14] you could predict the future. Steve Schoger: Yeah, right. Steve Schoger: But I wanted to move back to Kitchener, Waterloo. First of all, Kitchener had this ... we have a little bit of a tech scene here. Blackberry, you know Blackberry? They put our name on the map, our city on the map. And we have at the University of Waterloo. So, a lot of trucks, a lot of engineering talent. And this created this little tech community. And I saw this from Toronto, and I was really interesting in it. But there was no design whatsoever. It was all engineers, right? And I'm thinking "I could have a huge competitive advantage if I go there. There's no designers whatsoever." And there was a company ... So, I was interviewing at a company called "Desire to learn." And they're an educational company. Matt Stauffer: I feel like I know somebody else who worked there, or did you- Steve Schoger: [crosstalk 00:24:19] it might be me. Matt Stauffer: Oh okay. Sorry. Keep going. Steve Schoger: And are you familiar with Blackboard? Matt Stauffer: Yeah. Yeah. Yeah Steve Schoger: The same kind of- Matt Stauffer: Can you give a real quick intro to anybody who hasn't heard before though? Steve Schoger: Yeah. It's e-learning software. When you go to school, it's your login portal, and that's where you can get your grades and your assignments and all that stuff. And I even used Desire to Learn when I was at Fanshawe. That was one of their first clients. And I had a friend working there and I was really interested in the company, but they never had any design either. I was their very first visual designer. Steve Schoger: But, to step back a little bit. My friend recommended I apply for this job. So, I applied for it. But at the same time, the company I was working at, we had a really low time, it was not good. And right when I got offered the job, the day later, my boss, before I even got to go into his office and say "I'm quitting." He basically said I gotta lay everyone off. We're closing the doors. Matt Stauffer: Wow. Steve Schoger: So, it was like the same day. I'm like, "Wow. Perfect." Matt Stauffer: Talk about timing. Geez. Steve Schoger: So, I had a little tweak break there, before I started my new job, because I basically I said "I have to put my two weeks notice in." Matt Stauffer: And then turns out you didn't. Steve Schoger: I think, I had a week. We were still wrapping things up and I had nothing to do. Matt Stauffer: Okay. So, you moved back, because you said Desire to Learn was in Kitchener. Steve Schoger: Yeah, moved back to Kitchener. But my wife was still working in Toronto. So, there's a little bit of ... I moved him back in with my parents that summer, is when I moved in. And Caitlin was still in Toronto, living at the place we were renting out. Steve Schoger: So, the summer we were living a little bit long distance, but I mean, we were an hour away from each other. So, I saw her on weekends and stuff. And she was interviewing locally at that time. And I started my job as Desire to Learn. And like I said, I was the first designer there, and UX was such a buzzword at this time. No company understood. They're like we need to invest in UX, but no one knew what it meant. And I worked at that company for two years. And in the two years I was there, I don't think anything I actually did saw the light of day. It was one of those situations. And it maybe has since I've left right? I've made these projects and they were sitting there, and you could work on them. But yeah. Matt Stauffer: That's tough. Steve Schoger: And right when I was leaving, they hired a ... I think, they have a good design team, now. They grew their design team since I have left them. Matt Stauffer: So, is that why you left? Because you just felt what you were doing wasn't actually- Steve Schoger: I was getting burnt out. And I was really passionate about what I was working on. Where I took my work home with me. And it was so frustrating to not have any of my work see the light of day. So, that just burnt me out. And plus, other factors were going on in my life where, we were renovating our house. And I'm not sure if you've been through a process like that, but never again. Matt Stauffer: It's definitely a second job. And it's a second, more stressful job. Steve Schoger: Yeah. So, it's just all these stressful things in my life, to the point where "Man, let's just get out of this city and let's go move to California." And I even went for a job interview in California. They flew me down and stuff, and that was kinda fun. And I didn't get the job. I think, the reason I applied for the job was because I was just depressed, and I just wanted something to change in my life. Matt Stauffer: Maybe some change will make everything better. Yeah. Steve Schoger: Yeah, right? But once I left my job at Desire to Learn, and the house was done, we finished renovating the house, everything settled down, and I felt good I didn't make that decision. Steve Schoger: So, when I left Desire to Learn, I went to an insurance company, a local insurance, well not a local, it's a Canadian insurance company. Well, do you guys have Sun Life in the states? Sun Life? Matt Stauffer: Sounds familiar, but I'm not sure. Steve Schoger: Maybe, because I've talked about it. Matt Stauffer: Probably. Steve Schoger: Yeah. So, it's an insurance company. And it's just a huge company, a huge Canadian company, thousands, tens of thousands of employees. Matt Stauffer: Are they based out of Kitchner as well? Steve Schoger: We have an office kitchener ... I say we as if I still work there. There's an office of Kitchner. I don't even know where the head office is. In Toronto, maybe. But there's offices all over Canada. Matt Stauffer: Got it. Okay. Steve Schoger: And I worked there for two years. And when I started that job, this is when I started freelancing with you guys, Titan. And it was around that same time and it's around the same time I met Adam. And I'm trying to think of a way to tell this story that has this nice, seamless, flow, but I'm trying to remember everything that happened. Matt Stauffer: So, let me let me turn it and maybe this will help you out. So, a lot of us, when we met you and Adam. So, Adam worked at Titan, I think, when I first heard about you. So, he would say "Yeah, I got these buddy that I'm working with, and we do these design things together blah blah blah." So, we just started hearing your name more and more often, and eventually he's like, "Yeah, why don't you guys, consider pulling him in for something?" So, we would and we're like "He's really great." Matt Stauffer: So, we had this idea, especially because, I actually meant to mention this to the listeners that this Kitchner, Waterloo, that whole triangle, is really weird, because there is an excessive amount of technological ... I don't know if I want to say excessive amount of talent, but I don't know. But there's an excessive number of people who do the type of work that I do in that one little space. Matt Stauffer: You're there, and Adams there, and Vehicle's there, and all these other folks are there, and every time we open up a job posting. It's a guaranteed that at least several of the qualified applicants come from this little tiny circle, out of the entire globe. This little tiny circle. Steve Schoger: Well, it's like I said, we do have this tech thing going on here, and I don't want to say it like ... people will say "Well, we're the Silicon Valley of the north." But everyone says we're the new Silicon Valley. But it's like "No, but there definitely is something going on here." Matt Stauffer: And I hear a lot of people say like, "Oh, we've got a nice little tech community." People say that about my local town here. And what they mean is "We have more than nothing." But that's not what it is where you are. There is seriously a lot of people all doing the same stuff there. Matt Stauffer: So, when I start hearing about you, what I figured was, Adam and Steve have known each other since high school, they grew up together, they live down the road from each other, they happen to be very talented, and when I've only learned pretty recently that that's not the case. So, why don't we- Steve Schoger: [crosstalk 00:31:13] no that's not true, yes. Matt Stauffer: Why don't we come at it from the angle of how did you meet Adam in the first place? Steve Schoger: Yeah. Steve Schoger: So, I met Adam, because ... I was always working on a lot of side projects. So, when I was working at Desire to Learn, I'd be working on my ... I'd spend a lot of time working with just startups, helping them out, and just getting my hands dirty, right? And a friend of mine that I went to high school with, his name's Chris Albrecht. And I always wanted to work on projects with him, but he was always busy. He had a kid at this point. He was always doing house renovations. He's one of those guys that's good at everything. He can build a house, and he's a developer, and he's just ... and you want to hate him for it. Matt Stauffer: You don't, because they're also good at being a wonderful person, but you want to hate them a little bit. Steve Schoger: And that's the problem. Yeah, you want to you want to hate him. Good at everything. But then he's just an awesome person, so you can't hate him. So, like "Well, God, man." Steve Schoger: But he took a a software development course at Conestoga College, which is a local college. And that's where I met Adam. And, I think, the two of them were the top of the class. So, Chris talked very highly of him, and he said Adam works on a lot of side projects like I do, I should connect with him. Steve Schoger: And I said, yes sure. And I just sent Adam a message on LinkedIn, and it's funny, I tweeted that recently, the the message I sent to him. It's funny when I re-read it, because I dug it up, and I re-read it. And it's not how I talk to him, at all. It's like, I'm really proper. Matt Stauffer: Yeah, I was gonna ask if it was was really formal. Steve Schoger: Yeah it was a really formal, "Hey, we should connect. I heard a lot of great things about you. I hear you're a good designer, and you're a good developer. It's a really rare combination." And now we just talk like bros. But it was funny reading that and I just said "We should meet up and grab coffee." And I just showed him some of the work I'm doing, and he showed me the stuff he's working on, and I said, "We should work on a project together, just to get a feel for each other and see what it's working with each other, and maybe about can turn into something else." Steve Schoger: And, I think, the very first thing we worked on was, he happened to be working on this Resume Builder app. Matt Stauffer: Yeah. I remember that. Steve Schoger: And I had this idea for a Resume Builder app, and I was designing one, but they're both separate projects. And we're like, "Well, we're working on the same thing. Why don't we build this together?" And we never took it seriously, right? We just wanted to get a feel of what it was like to work with each other. So, we did it, and we got it half done, and that will never see the light of day. Matt Stauffer: Right. That was enough. Steve Schoger: Yeah. Nut I did like working with them. That's what we learned about each other, right? I really like that he's got a really good sense of design, and I have that way of ... we talked about earlier that, I understand a little bit of code. So, I can communicate with him effectively. So, I think, we had that good dynamic that worked well together. Steve Schoger: And, I think, I met him ... I'm not sure if I met him when I was working at Desire to Learn or when I went to Sun Life, but ... no, I met him when I worked at Desire to Learn, because the reason I went to Sun Life, it's like I was going there because, A) it was a pay increase. So, that was nice. But I knew I was going into this big company, that was just a huge bureaucracy. Matt Stauffer: You're a cog. Steve Schoger: I'm going to be miserable there. But I went there, because this is around the same time I was talking to you guys. And I'm like, "Well, I can make this transition into freelance maybe." And you guys were my first starting point there, and what brought me to Sun Life is "Well, I'm going to work my nine to five, and when I get home from work, I'm going to turn that off. And then turning that off and then I can work on freelance projects." And that's what I was doing for you guys. Matt Stauffer: And that's the type of job you want to have, if you're going to start that transition to freelance, is the type of job where you can turn it off at the end of the day. Which, if it were your soul thing, it would be worse, because you want a job you love, but if it's the thing that's helping you transition, you actually want one that you don't love and you don't care about, that goes away. That's really interesting. Steve Schoger: I almost didn't care if I got fired. It's that kind of thing. I didn't want to get fired, because it paid the bills, but it's ... Matt Stauffer: You weren't emotionally or mentally tied to it, other than showing up and doing the things you should do to get the paycheck basically. Steve Schoger: Yeah exactly. Matt Stauffer: Huh. Okay. Steve Schoger: So, this is where you get more familiar with where I come into the picture. Matt Stauffer: Lets pretend like I don't know it. Steve Schoger: So, I'd work on a few projects with you guys, and I was also doing a few projects with Taylor. And, I think, the first thing I did for him was spark. I did the first Spark website. I did the website and I did a logo for him. And, I think, I did that before I started work with you guys, because Adam recommended me to Taylor, and then he recommended me to you guys. Steve Schoger: And I knew nothing about Laravel at this point. I only know about Laravel, because of Adam. Adam got Laravel famous. And I said, "Hey man, I come with you?" Matt Stauffer: Me too. That's hilarious. Matt Stauffer: Yeah. So, I remember that you were doing that transition stuff. When did you leave Sun Life? What was the the moment right? Steve Schoger: Because I was talking ... I did a few you projects with you guys. And then I'm not sure who suggested it first, but we basically had an arrangement. I think, it might have been you who suggested it. It doesn't matter. But you guys wanted a designer, because you never had a designer at your company. And Taylor just wanted an ongoing designer, but neither of you had enough work to fulfill a 40 hour week. Steve Schoger: So, the arrangement was, well, I do one week with Titan, one week with Taylor, and then I'd have an off week to go find any other freelance work. So, we had that arrangement worked out, and then you guys matched my salary at Sun Life. So, it felt easy going into, it was easy to convince my wife it all worked out. Steve Schoger: So, I made that leap. And that's what brought me to that thing, an I've been working with you guys for ... how long have been with you guys for now? Matt Stauffer: Has it been two years with this arrangement? Steve Schoger: It's funny. I've been with ... every job I've had has been two years. Matt Stauffer: That's it. That's your magic number. Steve Schoger: Yeah. Matt Stauffer: Yeah. I think, it's been two years. Because, I think, we did one year, and at the end of the year, we thought about it, and we re-upped it. So, it's probably been two years this way as well. Steve Schoger: Yeah, and, I mean, we're on pause right now, right? And that's ... we're talking about that shortly. Matt Stauffer: [crosstalk 00:38:17] story. Yeah. Steve Schoger: So, I was doing that, and I don't know ... next question, I guess. Matt Stauffer: Yeah. Matt Stauffer: So, I think, that worked really well, and, I think, it was really great for us. I mean, that's a curious business thing that anybody else can ask any of us more about, is that idea where Dan and I since ... Dan and I are both liberal arts Majors, with the design aesthetics, who are programmers. So, we always wanted a designer. From the earliest days of Titan, we wanted a designer, but it was hard for us to really justify at the beginning. Matt Stauffer: So, this was a really cool way to do this transition. And now we have a full-time designer, and have had Steve working with us for a while. But it took us this kind of experience to start building design into our workflows, and our ways of building. So, just anybody who's curious about that, it worked out really, really, really well, for us. Matt Stauffer: But the next part of the story was what you used in that third week. And that third week, was a combination of, I think, finding other clients, but also starting to become not just Laravel famous, but eventually just web development, broad internet famous, and then there's books and stuff like that. Matt Stauffer: So, where were you thinking? What was your approach? What was your attack? What was your mindset? What were the first steps you took to start using that time and start garnering a reputation? Steve Schoger: Yeah, I think, for the first year, I was doing a lot of ... I was just doing ... I was using the time for freelance, and I was finding new freelance clients. And I don't even remember any of the projects I did in that time, even though it was like a year ago, probably. Two years ago. But they're just a little one off things right? Steve Schoger: But it was still ... the tricky part about that thing. It's like, well, I work on a freelance project for a week, but there was more to do after working after that week ... For you and Taylor, we all had this understanding. Well, I'll be back with you in two or three weeks. But when I get a new client, it's like, well, I had to be ... Full disclosure. I have this [inaudible 00:00:28] going on, so I can work with you this week, but I won't be back with you 'til the following week. Steve Schoger: And they had a deadline, so it's like ... Well, I don't know how long I could do this for. I could only pick certain projects that last ... It was hard to find clients that worked that way. Matt Stauffer: [crosstalk 00:00:40] one week or less at any given moment. Steve Schoger: Yeah. So what I spent my time doing is just working on my personal brand, or working on little side projects, and the first project I did was Hero Patterns. That was a website for ... It's SVG background patterns. You can go on heropatterns.com and it's just a bunch of patterns that you can use for a hero background or whatever you want to use it for. I built that just as a fun project. I wanted to learn more about SVG, so that seemed like the right step, and I just wanted to add it to my portfolio and add to my personal brand. Steve Schoger: Then I released a bunch of icon sets. That's what I was doing in that time, just working on free, open-source projects. Matt Stauffer: Yeah. And those took off pretty quick. I remember seeing Hero Patterns, and I think [Zomicons 00:01:40] as well, on things like CSS Tricks. So it was pretty early on that you were releasing these things, and they were getting picked up pretty broadly. Steve Schoger: Yeah. Well, the Laravel community has certainly helped with growing my Twitter following, because it's such ... The whole community is really active on Twitter, first of all. Then I had Taylor and Adam retweeting my stuff and that really helped. Taylor had probably 50,000 followers at the time, so it all helped. I was growing my following there, and then Hero Patterns was getting posted on Product Hunt, and that really helped. Steve Schoger: From there, where does that bring us to? I was doing all these little open-source projects, and then I started doing the tips. Let's move up to that, 'cause I don't know what else ... Oh, I released another little project, Heroicons, which is like SVG icons, marketing icons ... They weren't meant for in-app experiences, but more if you go on a marketing page, and you're showing a features section. You can put the icons there and customize the colors. I thought it was a pretty interesting idea when I made it and it was a fun little thing, and I could make some money off of it. Steve Schoger: I released that and it did okay. I think I made $10,000 in the first few months, over that period. But Adam was launching his books and his courses, and they were doing insanely well. I saw him doing that and I'm thinking, at this point, I think I could maybe do a design book or something like that. I had all these ideas for what a design book could be for developers, and I was sharing these ideas with Adam. He encouraged me to build my following first. Matt Stauffer: Yeah, yeah. Steve Schoger: 'Cause that's what he did and that's what made his launches so successful. He proved that what he was making was worth it. Steve Schoger: I started doing the tips on Twitter to prove that I know what I'm talking about, and I can provide little ... Basically the tips, if you're not familiar with them, they're little bite-sized design tips. Here's a before of something that a developer might design, and here's an after of how you can improve it. It's like, take it, instant improvement, instant gratification, and they've evolved over time. Steve Schoger: The first tips, I was working on a project for you guys, let's say, and I'd take a screenshot of that project I was working on and post it and that was it. Immediately, they started doing well. People started seeing them and they were like, wow, these are pretty useful. Then they just grow and grow and grow. Steve Schoger: The tip idea, by the way, I stole the hot tip idea from Adam, 'cause he was doing hot code tips, and he stole it from Wes Bos, 'cause Wes Bos has been doing it for years. I talked to Wes Bos about that recently, and he said he stole that idea of a tip from someone else. Matt Stauffer: Really? Steve Schoger: Yeah. But he made it his own by adding the fire emoji. Matt Stauffer: Yeah, yeah. Steve Schoger: But now people think I created the fire tip and there's people copying me. It's all great. It all grows from there. Steve Schoger: Then, like I said, I was working on these projects, and I'd maybe work on something and I'd see, well, that's an interesting insight, and I'd take a screenshot of it. But then they became a higher quality thing. Well, in order to communicate this idea, I need to make this own little thing specific for this. Matt Stauffer: Compose the tweet with all the ... You made a little graphic side-by-side with all the bullet points and everything, right? Steve Schoger: Yeah, exactly. So the very first tips that I was doing, I'm just doing them and not thinking of it, and then Adam would bring in a lot of ideas. He'd share his ... This would be a cool tip for you. Matt Stauffer: Sure. Steve Schoger: Then we'd work on it together, and then they became ... with both of us working on them together, the quality went up and up and up. We'd try to make each tip better than the last, so they eventually just did really well. I think the biggest tip I posted got 13,000 likes and 3,000 retweets. Matt Stauffer: Holy crap. I knew they had gotten big but I didn't realize they'd gotten that big. Steve Schoger: That's by far the biggest one. At the beginning, they were getting ... The very first one I ever did, 40 likes. Then from there, it got 100 likes. Then it was 300 likes. I'm like, whoa. That's so big. Now today, it's like I can't post one without getting at least 2,000 likes and 300 retweets. Matt Stauffer: Geez. Go ahead. Steve Schoger: Yeah. They just spread so far. Matt Stauffer: That's awesome. Steve Schoger: The last tip I tweeted, people are hijacking the first comment, 'cause they know ... They see a little fire emoji in the tip, and they're like, first comment. Matt Stauffer: At least it's first comment, and not, do you see this? You should go to my course, blah blah blah. Steve Schoger: No, it was a friend of mine who's just joking, 'cause on the Kanye posts, people try to hijack it with their art. Matt Stauffer: Yeah. That's awesome. I wanted to point out something really quick here. I think one of the reasons that these spread so much is that, first of all, they're really high quality. You really know what you're doing. There's not a lot of people talking about it this way, and they're really easy to digest and apply. So there's one aspect. They're just really good tips, broadly, this is a really good idea. Matt Stauffer: But I think the other piece about this is that your tips ... You mentioned the fact that [inaudible 00:07:38], there was a lot of dev and not a lot of design. We have talked about this for a long time, about the Laravel community and other programming, especially back in programming communities. I have clients all the time that say, yeah, you can tell this was made by a developer, referring to something that they have that they're asking us to fix up. That means something. "You can tell this was made by a developer" means it doesn't look good, it's hard to understand. The information density is bad, the flow is not good. Matt Stauffer: There's this very big issue, with us as developers, knowing how to put stuff on the page, but not really knowing how to make it and such so that it's going to be ... not even just enjoyable, but understandable for the end user to really get the information out in a reasonable, pleasant way. Matt Stauffer: One of the things I love about your tips and a lot of your teaching is I think it reflects the fact that you do understand developers, and you do understand development, and you do know code, and you know enough developers and work with enough developers to know where our shortcomings are. You're not just putting out generic design tweets, but many of these tweets ... not all, but many of them ... are explicitly useful for people without a design background who are put in context, that because we're application developers, we need to build user interfaces. We don't know what you're doing. Matt Stauffer: I feel like a lot of basic design tips people give tend to be relatively useless to developers 'cause it's the same three things you've heard over and over again, but you really narrow in on practical design tips that help application developers. I wanted to point out that that is something I think probably comes intentionally, but also probably comes a little bit because of the specific background you do as a tech-adjacent designer, right? Steve Schoger: Yeah, and I think also, Adam's involvement too is a huge, huge- Matt Stauffer: Sure. Steve Schoger: I'm more or less the face of Refactoring UI, but it's honestly ... Adam and I are doing it ... Basically, the tips are ... From the birth of a tip idea, me and Adam will be ... Adam might point something out to me and say, this is an interesting little insight, and I'll have a sketch file of all my tips. I'll be able to either take a screenshot of something and I'll passively work on it until it best communicates the idea, and me and Adam are going back and forth at this point. Steve Schoger: Then there's the tip launch day, that we decide we're going to post ... That's a two-week process before we get ready to post it. Then me and Adam jump on a call and spend some time figuring out, how do we want to work this? How do we frame it in a way that communicates it? A lot of time gets put into these. Steve Schoger: But, yeah. Certainly, I have that kind of background that helps communicate to developers. But I don't want to discredit Adam whatsoever. Matt Stauffer: I love that. Steve Schoger: He's equally involved in that process, and he's coming with his developer point of view. Like I said, he's got a really good sense of design as well. And to be fair, some of the tips we've posted, I never even thought of them as tips, 'cause I'm so ... I have a designer mindset. Matt Stauffer: Sure, sure. But Adam was able to help you see- Steve Schoger: Yeah, exactly. Some of them ... It's like, one of the tips, for example, is offsetting a box shadow to make it appear like a light's coming from above to make it look more natural, right? Matt Stauffer: Right. Steve Schoger: And he suggested that tip, that was his idea, 'cause I never even thought of it as a tip. I'm like, I just do that. It's just second nature. I don't even think about it when I do it. Doesn't everyone do that? There's quite a few tips like that, where it's like, I never even thought of it as a tip before, as something insightful. Matt Stauffer: That's cool. One of the things that I pointed out to Adam that he does intentionally, but I don't know if everybody recognizes, is that he has a talent for ... We haven't actually said it. This is Adam Wathan, in case anybody happens to listen to this podcast and doesn't know who Adam is, which I kind of doubt. It's Adam Wathan. Matt Stauffer: He has a knack for recognizing what everybody in a particular community doesn't know, and everybody in another community might know, and then bringing the stuff that the other people know into the community where they don't know it. Refactoring to Collections, if you were to sell that book to someone in a community where they use collections pipelines for everything, they'd be like, why would I spend money for this book? But Adam understands how to bridge that information, so part of his talent, I think, is helping bridge the knowledge that you have as a talented designer and a tech-adjacent talented designer who does have a lot to offer. But he's also able to help you bridge that gap into developer mindset. So I love that you brought that point up. Steve Schoger: Yeah, I think that's very accurate. Adam's probably the best teacher I know. Him and Jeffrey Way are the really good teachers. Adam's probably one of the smartest people I know, and him and my other friend are the smartest people, I know, but the other guy that I'm speaking of is ... He was almost an astronaut. So that's who I compare Adam to. They're both completely different. He couldn't do what Adam does and Adam couldn't do what he does. Matt Stauffer: Well, you mentioned Refactoring UI. That's a perfect segue. So, hot tips was a big thing, and then you and Adam decided you guys were going to make Refactoring UI together. A lot of people have questions about that, you did just launch it. Before we talk about how it started, what did it end up being? If somebody's never gone, what is Refactoring UI right now that they can go purchase? Steve Schoger: Yeah. Refactoring UI is sort of a package. It was pitched as a book, but that takes all of the ... pitched it as a book to help developers get good at design. But we made this whole package, this whole resource for developers to help them make their designs better. So there's the book aspect, and that's probably the main component that everyone's familiar with. But then with that, we provide color palettes. So a big problem with developers is they don't know how to choose colors, so we just provide a bunch of color palettes for them. We provide a bunch of font recommendations, and there's an icon set. So it's this big package that you can go pick up. Matt Stauffer: Yeah. That totally makes sense, and it's good to know it's not just a book, 'cause I think that you guys said, what's the best way we can teach this? It's not just book, it's also resources that help you do the thing. And there's videos too, right? I think you mentioned that. Steve Schoger: Yeah, I didn't mention that. There's videos in the package. The videos are taking the ideas that are introduced in the book and applying them to a real-world example. Matt Stauffer: You tweeted out a couple of those, so if somebody wants to get a sample, they can see what that's like. I think you tweeted some. Steve Schoger: Yeah, there is a one video available you can watch. We emailed it out to the mailing list, so you can sign up and you can get that. You can also check out, if you're interested in that kind of thing, I also have a YouTube channel where I do UI breakdowns, and that's all part of it. Matt Stauffer: Okay. So we now know what it ended up being. And it just launched ... Right now, it's January 11, and it just launched a couple weeks ago- Steve Schoger: A month ago, December 11. Matt Stauffer: Okay, there you go. Steve Schoger: There you go. Matt Stauffer: When did it start, if you remember, and what were you originally thinking? Steve Schoger: Yeah. Like I said, I saw Adam get successful with all his courses and stuff, and I'm thinking, well, I could maybe do that with design for developers. So the original idea was, I was going to write a book. But I was bouncing my ideas back and forth with Adam, and it just made sense to get him involved in the project. And I think this was even before I started doing tips, I thought I was going to write a book. It only made sense to get him involved and make it a 50/50 partnership, 'cause he can bring his developer frame of mind to it, and to articulate the ideas that have much better than I could. Matt Stauffer: Yeah. At that point it was still a book. What thinking process did you guys go to when you were starting to write this book that made you realize it needed to be more than just that? Steve Schoger: Right. I think when we started working on the book, there was a few ideas in the book that ... It was too difficult to communicate in the way we were writing it, the style of writing it was. And there was a few ideas we wanted to communicate that just couldn't be communicated that way. That's when we realized we needed to make some videos attached to it. There's a few insights in the videos that you can't necessarily find in the book, 'cause maybe it's a little more hand-wavy. We like to make the book very- Matt Stauffer: Very concrete? Steve Schoger: Yeah, very concrete, where in the video, there's a few more ideas that are a little more hand-wavy. Matt Stauffer: What was the hardest part about writing this book, about this whole process for you? Steve Schoger: Making the book was a roller coaster of emotions. Matt Stauffer: Oh, yeah? Steve Schoger: Well, you've been through this, right? I think early on, we had all these ideas of what the book was going to be. We spent so much time planning, and not enough just doing it. What we realized is that we should've just started doing it and let it just unfold, right? Matt Stauffer: Right. Steve Schoger: What was the hardest part? The book is more or less a picture book. There's more pictures than there are words. I made about 300 images for the book. Matt Stauffer: Wow. Steve Schoger: And they're not just ... A lot of books will just take a real-world example, take a screenshot of it, and put it in their book. We had really specific points we wanted to communicate, so we thought the best way to do it is design a little UI for it. One of my goals with the images was to make it so ... First of all, I might design an entire UI just to communicate how to do a drop shadow. I thought it'd be cool if every image in the book is something you can go ahead and create yourself, challenge yourself to create that image in the book. And I wanted there to be a little bit of hidden gems within all the images. Steve Schoger: So it's like, oh, we're teaching you how to do a drop shadow here, or a box shadow, but I noticed in this little UI example, you had this, and I never would've thought to do that on my own. So there's a whole bunch of little hidden gems like that in images. That took a long time. Steve Schoger: The way we delegated work with the book was Adam wrote all the words. We worked on all the concepts together to figure out how we communicate these ideas, and Adam wrote all the words, and I did all the images. Matt Stauffer: Got it. Steve Schoger: Some chapters will be like ... There's 200 words, but then nine complex images. So I just couldn't do any of the writing with the amount of time I was spending on the images. Matt Stauffer: For sure. What you're saying is you did all the work and Adam just mailed it in, right? Steve Schoger: Yeah, exactly. Matt Stauffer: I'm just kidding, I'm just kidding. Steve Schoger: No, no. I couldn't have done it without ... Like I said, Adam is far better at articulating these concepts than I could've ever done. If I wrote the book myself, it would've been ... I don't want to say a failure, but it wouldn't be near as good. Matt Stauffer: Yeah. And I want to attest to the fact that I know both of these guys relatively well at this point, and they basically disappeared off the face of the planet for weeks at the end there, because they were both putting in such long days. Tell me a little bit about that time for you. Steve Schoger: Yeah. Just for the listeners, I had my thing, gig with you and Taylor, and I think I sent you guys a note at the end of September, maybe? Matt Stauffer: I think so, yeah. Steve Schoger: Is that about right? And Adam and I were passively working on the book at this point, but we realized it needed a full-time commitment. So I sent you guys a note saying, hey, I know you guys knew we were working on this book. We were getting towards ... gearing up launching this. So I sent you guys a note saying, hey, do you mind if I go on a leave, and you guys were fully understanding about it, and that was awesome. I feel like I'm in debt to you guys for that. Matt Stauffer: No, dude. Not at all. Steve Schoger: Then that was in September, and we already had a launch date in our head. We wanted to get it done before the new year. We already announced that we were going to get it launched by fall 2018, right? Matt Stauffer: Right. Steve Schoger: And then I just worked on ... We worked on the book for three months there. There was a break in between where we were both ... And you were there too ... invited to speak at Laracon Australia. Matt Stauffer: Yeah. Steve Schoger: Both Adam and I made a bit of a family vacation out of that too. We spoke at the conference, but it's like, well, going to Australia is a once in a lifetime opportunity, and our wives want to come, so we brought our whole family along. Matt Stauffer: I got to meet your families and I loved it. Steve Schoger: Yeah. That was a two-week break we had in there. Then when we got home, we realized ... We wanted to launch it at the end of November. That was the original goal. But we got back from Australia, we were like, that is impossible. There's no way to get this amount of work done in that amount of time, so we pushed it back a bit. We didn't actually have a date in mind, but we were thinking, we've gotta get it done before the new year, because if we don't get it done by ... If we didn't get it done in the week we got it done, then we probably would've postponed it to the new year. Matt Stauffer: Yeah, 'cause it was just too close to Christmas and everything's too crazy around then. Steve Schoger: Exactly, exactly. Even at the time we launched, it was a little bit ... I don't know. Yeah. And we were just ... Like you were saying, we disappeared, especially in the last week. That was ... I didn't sleep for three nights, the last three days before the launch. I was up for 72 hours. I got maybe two hours of sleep in that period. Matt Stauffer: Yeah. I saw you at the end of that period. Steve Schoger: Yeah. Matt Stauffer: [crosstalk 00:21:09] Steve Schoger: No, and I was just neglecting my family. My wife was incredible about it. She even said, hey. Would it be helpful if I go sleep at my parents' for the next few nights, just to get out of the house, and you have time to yourself? Matt Stauffer: Wow. Steve Schoger: She was incredible for that. Yeah. That was just ... I was trying to stay active on Twitter, 'cause I needed to keep promoting the book and make it look like I was still alive. But, yeah. Matt Stauffer: Because we're pretty short on time, I try to keep these under an hour and we're going to go a little bit over, I want to ask you a lot more questions, but I want to at least push on this one thing. What did it feel like to put out your first big product, and what were you doing after the launch? Now that it's been a couple weeks, how do you reflect on that experience about having done it, about the launch day ... Does this make you want to go do something like this again, or do you say never again? How do you feel about it right now? Steve Schoger: I don't think I'll ever work on a book again, for sure. But I'm all down for working on projects like this again, big product launches. They're fun. Steve Schoger: I know when Adam did his Refactoring to Collections book, it was like, he was working on that in the evenings and stuff while he was working for you guys, then he had this unexpected huge
If you listen regularly to the Art of Product podcast, then you’re probably familiar with the ongoing joke: How long does it take before we mention Steve Schoger and Adam Wathan? Well, today is your lucky day because not only do Derrick and Ben mention them, but Adam is once again their special guest. Adam is a software developer, writer, speaker, and entrepreneur. Also, he is the creator of Nitpick CI, host of the Full Stack Radio podcast, and author of Refactoring UI and Refactoring to Collections. He describes the process of successfully making, promoting, and selling courses on the Internet. Plus, Steve makes a special appearance to share his side of the story! Today’s Topics Include: Concept and Collaboration: How Adam and Steve work together to create courses Be genuinely helpful by offering free, good content for people to know, like, and trust you Build an audience/authority on a topic to make people want to learn from you Understand difference between what you care about vs. what your audience cares about Care about quality and effort put into all aspects; utilize Steve’s design tips on Twitter Signals and validation that your content resonates with and is helpful to your audience What Makes a Successful Partnership: Similar values, but complementary skills Promotion via email, newsletter, social media, case studies, and screencasts to grow number of subscribers/followers Courses: Parts and Pieces (Books, Videos, and More) and Pricing to Make ROI Launching Products and Surpassing Sales Expectations Links and resources: Adam Wathan (https://adamwathan.me/) Nitpick CI (https://nitpick-ci.com/) Refactoring UI (https://refactoringui.com/book/) Refactoring to Collections (https://adamwathan.me/refactoring-to-collections/) Full Stack Radio Podcast (http://www.fullstackradio.com/) Adam Wathan’s MicroConf Presentation (https://microconf.gen.co/adam-wathan/) Adam Wathan on GitHub (https://github.com/adamwathan) Adam Wathan’s Email (mailto:adam.wathan@gmail.com) Adam Wathan on Twitter (https://twitter.com/adamwathan) 7 Practical Tips for Cheating at Design (https://medium.com/refactoring-ui/7-practical-tips-for-cheating-at-design-40c736799886) Steve Schoger (https://www.steveschoger.com/) Steve Schoger on YouTube (https://www.youtube.com/channel/UCxqiDtkXtOCNJdckODHk9YA) Heroicons (http://www.heroicons.com/) Steve Schoger on Twitter (https://twitter.com/steveschoger) Wes Bos (https://wesbos.com/) Bootstrap (https://getbootstrap.com/) Stripe (https://stripe.com/) An eBook pricing model that resulted in $100,000 in sales (https://blog.asmartbear.com/selling-ebook.html) Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Level (https://level.app/) Tuple (https://tuple.app/)
Derrick had an interesting week with Level. He focused on important features that will be a part of the product, including notifications dependent on team members’ jobs. Some may want more asynchronous and unobtrusive notifications than others. Level distinguishes configurable notifications based on different roles on a team. Notification policies seem simple on the surface, but are actually very complicated. Ben announced that November was Tuple’s best month ever for marketing! But now, he is approaching the alpha for Tuple and will focus his attention on product management. Ben wants to figure out what works and what doesn’t. After all, when you can see the wrong thing, the right thing becomes so much easier. Today’s Topics Include: Derrick gained clarity on how things should work in Level by writing code and playing with different ideas When in doubt about design, Derrick takes a screenshot of Level to put on Twitter and get feedback; keeps people invested in the process Derrick is developing a thick skin and trying to not be defensive about design comments Level will offer opt-ins and education that help users protect their time and priorities Ben plans to pair with people using Tuple to identify UX annoyances Tuple is about to crack the 3,000 people milestone on its mailing list Level received new refers and spikes in traffic; awareness is building How to continue to grow your tribe? Opportunities to have an audience when you’re doing interesting stuff Level’s content strategy will focus on high-quality content, not high-volume content; Derrick plans to commit to cadence of consistency Can spend time on something, and years later, people still go to it as a valuable reference Ben wants to open up sales for the Habits for Hackers course, but limit the number of spots available; he’s considering a reverse auction Derrick’s been considering creative ways to structure pre-orders and pre-sales for Level; trying to decide whether to turn off pre-orders Links and resources: Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Level (https://level.app/) Tuple (https://tuple.app/) Habits for Hackers (https://www.habitsforhackers.com/) Steve Schoger (https://www.steveschoger.com/) Adam Wathan (https://adamwathan.me/) 103: Steve Schoger - Design Q&A + Refactoring UI Details (http://www.fullstackradio.com/103) Slack (https://slack.com/) Dense Discovery (https://www.densediscovery.com/archive/) SitePoint (https://www.sitepoint.com/newsletter/) Product Hunt (https://www.producthunt.com/) Hacker News (https://news.ycombinator.com/) Rob Walling (https://robwalling.com/) Paul Jarvis (https://pjrvs.com/) Brian Casel (https://productizeandscale.com/) Code that says why it does (https://robots.thoughtbot.com/code-that-says-why-it-does)
In this episode, Adam and Steve Schoger answer listener questions about UI design, and share all of the details about their upcoming book and design resource Refactoring UI. Questions include: What's your process for getting started on a new design? How do you make your designs feel original? How do you choose fonts for a new project? How do you make complex tables look good, and how do you make them work on mobile? What's the best way to style multiple secondary actions on a page? Refactoring UI topics include: Structuring the book to make it easy to read in a short amount of time An overview of the sections and chapters in the book What's covered in the screencasts How the included color palettes are designed and why they are more useful than the color palettes you're used to generating online What the font recommendation guide includes and how it's organized Details about the included icon set What's inside the component gallery, and how it's meant to be used The release date!
Ben launched Habits for Hackers, a workshop that cultivates habits that lead to an impressive and fulfilling dev career. He incorporates books written by others and makes that content applicable to participants. He’s going to figure out the rest of the details for the course while flying by the seat of his pants. For now, Ben’s just bathing in the dopamine of watching numbers happen! Derrick has been doing some launching, too. He announced that the end of January will be the beginning of the Level launch and Level can now be pre-ordered (generated about $2,000 so far). Derrick admits that he’s always derailed pretty heavily on launch days. He doesn’t even think about trying to get much productive stuff done. Today’s Topics Include: Tuple had a good week and useful coaching call; find and reach out to experts via useful blog posts and mailing lists Ben’s team has experienced some wins when working on reducing the latency of Tuple, but discovered reducing latency and reducing perceived latency are about the same Ben and Derrick are recognizing areas where they will some day shift their focus Derrick recognizes the revenue potential due to who is signing up for Level (teams vs. entire companies); shipped an improved call to action - save your place in line How Derrick determined the price point for Level; pricing is relative and psychology Ben is reluctant to commit to pricing for Tuple; always trying new numbers to gauge tolerance on how much people are willing to pay for it After a launch, Derrick and Ben feel wiped out because then it’s time to do the hard stuff; create a prioritized list and set a deadline to avoid distractions Ben picked a date for Tuple’s alpha to start - Jan. 7; rather than just take someone’s money, he wants to make sure they are the right fit and would offer worthwhile feedback Links and resources: Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Level (https://level.app/) Level Manifesto (https://level.app/manifesto) The Level Journal (https://leveljournal.com/) Tuple (https://tuple.app/) Tuple’s Pair Programming Guide (https://tuple.app/pair-programming-guide) Habits for Hackers (https://www.habitsforhackers.com/) Atomic Habits (https://jamesclear.com/atomic-habits) Deep Work (https://www.amazon.com/Deep-Work-Focused-Success-Distracted/dp/1455586692) Jason Fried (https://twitter.com/jasonfried) Drip (https://www.drip.com/) Slack (https://slack.com/) How Superhuman Built an Engine to Find Product/Market Fit (https://firstround.com/review/how-superhuman-built-an-engine-to-find-product-market-fit/) Tailwind (https://www.tailwindcss.com/) Steve Schoger (https://www.steveschoger.com/) Adam Wathan (https://adamwathan.me/) Sketch (https://www.sketchapp.com/) Mod&dot (https://mod-dot.com/teaser/)
Derrick shipped Level’s Daily Digest feature, which includes a summary of unread/read posts, sampling of posts/replies, and call to action. Also, thanks to Derrick killing it on Twitter, Art of Product’s social media presence is now legit! Branding and awareness of Ben’s Tuple pair programming tool has garnered interest from well-known companies. So, it’s time to set a deadline for Tuple’s alpha. Today’s Topics Include: Ups and downs of building a feature Good Brain Hacking: Know yourself and have a strategy; try something from your toolbox to change your perspective Ben designed the Habits for Hackers course; the experience was 50% amazing and 50% arduous - getting better at design through a trial-and-error method Ben’s Design Tips: Copy existing things, read design tweets and watch refactoring UI videos from Steve Schoger, and have friends who will tell you when something isn’t good Your success is a lagging indicator of your habits; Ben wants to be held accountable for practicing good development/work habits Links and resources: Art of Product on Twitter (https://twitter.com/artofproductpod) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Level (https://level.app/) Level Manifesto (https://level.app/manifesto) The Level Journal (https://leveljournal.com/) Tuple (https://tuple.app/) Tuple’s Pair Programming Guide (https://tuple.app/pair-programming-guide) Habits for Hackers (https://www.habitsforhackers.com/) Postmark (https://postmarkapp.com/) Ruby on Rails (https://rubyonrails.org/) GitHub (https://github.com/) Elixir (https://elixir-lang.org/) Tailwind (https://www.tailwindapp.com/) Steve Schoger (https://www.steveschoger.com/) Steve Schoger’s Refactoring UI (https://refactoringui.com/) Adam Wathan (https://adamwathan.me/) Sketch (https://www.sketchapp.com/) The Bike Shed (http://bikeshed.fm/) Atomic Habits (https://jamesclear.com/atomic-habits)
Derrick had a productive week with Level. His deadline of late October to have alpha users try it was looming. So, he has been a bit stressed out. But thanks to relaxation techniques that work for him, Derrick was able to talk himself off the edge! Ben understands the needs for coping techniques. When little things in his personal life aren’t under control, it’s much harder for him to be productive at work. Every thing’s interconnected. Today’s Topics Include: Battle between work and personal life What makes you happy? Avoid negativity and realize things are going to be ok Ben’s Failure State: When he doesn’t know what to do for a goal Make list of known ingredients needed and check off tasks to push you through Ben’s team did a retrospective for Tuple; marketing is going well and additions have been made to the Tuple Pair Programming Guide Limiting handle reservations and duplicate updates/emails to opt in or opening up handle reservations that cost something Who’s serious about your product? Is filtering the funnel good? Creating sales or a sales team for Level; how Drip did it Suffering from and dealing with Imposter Syndrome Links and resources: Efficiency Starts with a Haircut (http://giantrobots.fm/208) Elm (https://elm-lang.org/) Steve Schoger (https://www.steveschoger.com/) Adam Wathan (https://adamwathan.me/) Drip (https://www.drip.com/) Rob Walling (https://robwalling.com/) Patrick McKenzie (https://twitter.com/patio11) Stripe (https://stripe.com/) MicroConf (https://www.microconf.com/) Sherry Walling of ZenFounder (https://zenfounder.com/about/) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Level (https://level.app/) Tuple (https://tuple.app/) Tuple’s Pair Programming Guide (https://tuple.app/pair-programming-guide)
Adam Wathan, a software developer, writer, speaker, and entrepreneur joins Ben and Derrick on this episode. Adam is also the creator of Nitpick CI, author of Refactoring to Collections, and host of the Full Stack Radio podcast. Usually isolated and working alone, Adam enjoys the opportunity to chat with others about what everyone is working on. It’s like a mastermind session that’s fun and rewarding! Today’s Topics Include: Ben launched Tuple’s Pair Programming Guide earlier than expected at learntopair.com Ben continues to focus on marketing for Tuple, while other team members are developing the product Derrick feels a sense of guilt when working, but not sharing; once you get out of the habit of working in public, it might be difficult to return to it Derrick is up against his deadline of having a deliverable by the end of October Pros and cons of working alone or with partners to handle tasks/responsibilities Rails vs. Laravel Battle? No, PHP as a language battles with no one Adam is working on a refactoring UI book/design survival kit; chapters are independent and pricing still needs to be established What are digital vs. physical perks you could offer to those who purchase a product first? Derrick has been getting Level ready for alpha users and spending time, more than he wants, to get file uploads to work on it Links and resources: Adam Wathan (https://adamwathan.me/) Nitpick CI (https://nitpick-ci.com/) Refactoring to Collections (https://adamwathan.me/refactoring-to-collections/) Full Stack Radio Podcast (http://www.fullstackradio.com/) Adam Wathan on GitHub (https://github.com/adamwathan) Adam Wathan’s Email (mailto:adam.wathan@gmail.com) Adam Wathan on Twitter (https://twitter.com/adamwathan) Derrick Reimer (http://www.derrickreimer.com) Website Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Ben Orenstein (http://www.benorenstein.com/) Website Ben Orenstein on Twitter (https://twitter.com/r00k?lang=en) Level (https://level.app/) Tuple (https://tuple.app/) Pair Programming Guide (https://tuple.app/pair-programming-guide) Product Hunt (https://www.producthunt.com/) Extreme Programming Book (https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658) Laravel (https://laravel.com/) Ruby on Rails (https://rubyonrails.org/) Steve Schoger (https://www.steveschoger.com/) Colorbox by Lyft (https://www.producthunt.com/posts/colorbox-by-lyft) Tailwind CSS (https://tailwindcss.com)
Scott and Wes talk about marketing. Specifically how to do marketing if you’re a developer wondering where to start. Freshbooks - Sponsor Get a 30 day free trial of Freshbooks at freshbooks.com/syntax and put SYNTAX in the “How did you hear about us?” section. LogRocket - Sponsor LogRocket lets you replay what users do on your site, helping you reproduce bugs and fix issues faster. It’s an exception tracker, a session replayer and a performance monitor. Get 14 days free over at https://logrocket.com/syntax Show Notes 7:58 - Personal Branding Build trust and reciprocity Be authentic to yourself and let that carry through in your work. Have the guts to put yourself out there and establish yourself as an expert. Speak at conferences Write blog posts Make YouTube videos Be on podcasts Start your own podcast 14:50 - Running a Business Treat people well. Reward your customers. Don’t punish your users. Have a refund policy. 19:26 - Social Media Don’t push people off a platform. Bring content to them that is tailored for that platform. Get in early, before the platform becomes super crowded. YouTube Quality content through quantity. Write good SEO titles. Tease your paid content or create a free one-off. Don’t expect to make a lot of money, but it can be great for growing a brand. Twitter Be helpful - small, digestible tips and tricks and great for growing a Twitter following. Quality is still the key. Steve Schoger is a great example of consistent, high quality content. Facebook People have other interests besides web development. People like to see into your life. Use Facebook to give people a window into who you are. Reddit Reddit is really difficult. It’s easy to get banned. The best strategy is to not focus on marketing and just try to be helpful. It’s sort of replaced forums and is a great place to build communities around different hobbies. Instagram Recently IG has been blowing up for web developers. Dhanish is a perfect example of how to do Instagram well. 49:55 - Paid Advertising Don’t be sleazy. Ads are good for getting likes and driving some traffic to something, but it takes experimentation to get the best bang for you buck. 54:40 - Email marketing Wes: Email is probably responsible for most of my sales. Keeps people up to date and helpful for promoting new courses. Helpful for figuring out what people want. 59:17 - Partnerships A lot of companies want to partner rather than just sponsor. It can be a great way to fund the creation of products/courses. Affiliate programs are great when they work out. 67:30 - Freebies Giving away free content is a surefire way to get people to pay attention. It’s about giving back to the community as much as marketing your products. ××× SIIIIICK ××× PIIIICKS ××× Scott: Cypress: End to end testing Wes: Audiobook: Own the Day, Own Your Life Shameless Plugs Scott’s New Electron Course Wes’ Advanced React and GraphQL Course Tweet us your tasty treats! Scott’s Instagram LevelUpTutorials Instagram Wes’ Instagram Wes’ Twitter Wes’ Facebook Scott’s Twitter Make sure to include @SyntaxFM in your tweets
An interview with Adam Wathan, co-creator of the Tailwind CSS library and author and video producer. Adamwathan.me Test-Driven Laravel Refactoring to Collections Advanced Vue Component Design Tailwind CSS Alberta Oil Sands Reaper Conestoga College Vehikl Desire2Learn Tighten Nitpick CI Adam Wathan's $100k product launch Full-Stack Radio Mark Rippetoe - Starting Strength 5/3/1 Video of Adam lifting tons of weight 5/3/1 calculator Matt's WeightXReps Training Journal Agile Principles, Patterns, and Practices in C# Adam on Twitter Refactoring UI Editing sponsored by Larajobs Transcription sponsored by Tighten Matt Stauffer: Welcome back to the Laravel podcast, season three. Today we're talking to Adam Wathan; author, video maker, teacher of the things, power lifter. Stay tuned. Matt Stauffer: All right, welcome back to the Laravel podcast, season three. This is the version of the Laravel podcast where we get to know less about tech and more about the people behind the tech, and today my guest is none other than Adam Wathan who has taught us all about testing, collections, view, components and many other things. One of things I love about Adam is that he's never satisfied with what's happening around him and he's always taking in stuff from other places, and we'll talk about this more probably later in the podcast, but when I describe Adam to other people, I say he's the guy who basically finds what's good everywhere else and brings it to us in the Laravel world. So if you haven't heard of Adam, my mind is blown. You should go consume everything he's ever made; it's all gold. I will say to some of y'all that his name is pronounced Wa-than, right? That's right? Adam Wathan: Yeah, you got it. Matt Stauffer: Wa-than. Not Way-thin, not Way-than. I'm trying to think about other things I've heard, but Adam Wathan. So Adam, say hi to the people, and the first question I always ask everybody is when you meet somebody in the grocery store how do you introduce yourself? How do you tell them what you do? Adam Wathan: Cool. Yeah, so thanks for having me on. I'm Adam. I usually explain ... It depends on what people ask, because some people ask like what do you do? I say I'm a software developer, although I don't actually get paid to write code, I get paid to teach people about code. So I either describe myself as a software developer who creates courses and e-books and training products for other software developers who are looking to kind of level up. So that's kind of the shortest version that I try and give to people that usually is enough that they kind of either are interested in it and ask me more questions or aren't interested and don't want to hear anymore. Matt Stauffer: Yeah, so I'm already going to cheat a little because I want to ask one little thing about your motivation that I've been curious about for a while and hopefully they'll still come out when we talk about your background but, you know, you're really smart guy, you learn a lot of stuff, but you're also a teacher and you also have like marketing kind of like sensibility, and you just gave an elevator pitch that would make someone who doesn't even understand programming want to go sign up for your product and I don't think that that's really common for a lot of us to know how to talk about it that well, so ... And if this is going to come out later that's cool, but do you have a sense for where your ability to kind of understand how to market something and how to ... And you talk a lot about how to do it in a non-skeezy way, but where did that come from? Is that something you had to work on, or do you feel like you've got some experience that's kind of taught you that? Adam Wathan: That's a good question and I don't think I have a great answer for it. I think I've always just really liked creating things that I was proud of and putting them out into the world with enthusiasm and I think that's been kind of like the simplest version of how I have always tried to share what I've been working on and then I think with the marketing stuff too, I guess I just care just as much about the quality of that as I do about everything I do. I just really like to make everything I do as good as I possibly can and that comes down to even things like, you know, landing pages and how things look on stuff like that. To me, the marketing is a product too and I want it to be good and I want to be proud of it, so it's just something that I just put a lot of effort into I guess the same way I would with something else. Matt Stauffer: Yeah, I mean, I tell this story to people all the time, but when you first joined Tighten, one of the things we were talking about was working on some open source projects together, and we immediately found a conflict in our ways of working where I was like, so what I do with this thing Symposium is I figure out a feature and I spit out the feature as fast as possible and then I move on to the next feature, and you're like what I do is I try to figure out exactly the best way to do this feature and I ponder on it and I make plans and I make diagrams and I get it exactly right so people will really get their needs met and then and only then do I actually build out a feature. Matt Stauffer: And we kind of had this like little head butt moment, and I think that I've kind of ... I would say I've shifted to your way of thinking, but I've been influenced by it a lot. Do you have a sense for where your kind of desire for excellence ... I think you were just talking about like where that comes from, is that just a personality trait? Is that something from your family, and what's that ... Where does that come from? Adam Wathan: I think it's just a personality trait. I've been like that with basically everything that I've ever been interested in my entire life. Like I would sit and play guitar and play the exact same seven notes for four hours straight until I played them perfectly, you know what I mean? So I think I just get a little bit obsessive over the sorts of things that I get interested in. Matt Stauffer: Yeah, I just want to get really good at it. All right, well, I'm sure we'll dip into the stuff a little bit more, but I do want to make sure that I actually have the space for your back story. So the second question I always ask everybody is, where was it that you ... Or what was the context in which you first had interactions with a computer? How old were you and kind of what was your interaction like at that point? Adam Wathan: Yeah, so I have sort of conflicting memories for a lot of some of the stuff. Not necessarily conflicting, but sometimes I have a hard time figuring out like what the timeline was, but some of my earliest memories of working with computers, probably the earliest one that I can think of. is when I was in grade ... It must have been probably grade two, maybe grade three, but I had this librarian at my school who worked with like some of the gifted kids to do little projects and stuff and me and him were working on the super old Mac that we had at the ... It was new at the time I'm sure, right, but like my memory of it's like the old school Mac where everything's black and white and stuff like that. Using hypercard to make this little project we went around and it was actually pretty cool. Adam Wathan: We got to like drive around the neighborhood and I got to like ask questions like different business owners about things and we put together this like little presentation in hypercard, and that's probably like my earliest memory of working with a computer and we got a computer in my family when I was pretty young too, probably grade four or grade five. It was just like kind of your standard ... It was like an Acer or Compaq PC or something with four megs of RAM and, you know, I can't even think, a 500 megabyte hard drive, and we got- Matt Stauffer: Yeah, a 486 or something like that. Adam Wathan: Like our internet a couple years later. Yeah, it was a 486 and I used to dick around on that, you know, looking up game tutorials for my Sega Genesis at GameFacts.com and stuff like that and- Matt Stauffer: What's the best game on the Genesis? What's your favorite, do you remember? Adam Wathan: Favorite Genesis game. I used to play the hockey games a lot. That was probably what I got- Matt Stauffer: You're so Canadian. Adam Wathan: The most fun out of. The funny thing is like I'm not super into hockey, but those were just the most fun like multiplayer games that you could play. That and like Mortal Combat and Street Fighter. Matt Stauffer: Yeah, of course. Adam Wathan: And all the classics. I didn't do much of the single player stuff, just mostly hanging out with friends and playing. Matt Stauffer: No Sonic and Knuckles and things like that? Adam Wathan: I did play Sonic, but I wouldn't say like I have, you know, nostalgic memories about how much I loved that game or whatever. It was a fun game but, yeah. Matt Stauffer: Yeah, I feel like not a lot of people have the same level of memories of Sonic as they did at Mario. I just never quite connected in the same way. Adam Wathan: No, Mario definitely has a more special place in people's hearts, I think. Matt Stauffer: Yeah, you actually got into this a little bit, but my next question is going to be kind of what was your first exposure to the internet? So was that primarily it at least at the start? Adam Wathan: I'm not sure if it would have been at school or at home, but yeah, it would have been most of the time that I spent on the internet would have been at my home desktop computer on our 14.4 connections we used to use. Matt Stauffer: Yeah. So when you were in middle school and high school, what do you think you wanted to do with your life? Did you know? Adam Wathan: I had some conflicting thoughts, so at one point when I was a kid I wanted to be a cartoonist, that was my dream actually. Matt Stauffer: I had no idea. Adam Wathan: I used to draw all the time and I used to like ... You know how you'd have like the book fairs at school, I don't know if you had those in the States. Matt Stauffer: Yeah yeah, Scholastic. We had them here. Adam Wathan: The Scholastic Book Fairs. Matt Stauffer: Yeah. Adam Wathan: I'd always be ordering like the how to draw this or the how to draw that books and I never got really good at it, but it was fun and then eventually I got into like playing guitar and stuff like that and I wanted to be like an audio engineer, but I also wanted to be a programmer and I really liked my programming classes in high school, so I ended up going to university for computer science, but I also considered going to college for music industry arts, which is a program that actually Steve Schoger, who some people might know actually did go to at the college that I used to go to. Matt Stauffer: Oh, he did? Adam Wathan: But I decided against it because it just didn't seem like a profitable career path, so I eventually chose computer science. Matt Stauffer: So you had programming classes in high school. Was this Java or C++ or what kind of stuff were you guys doing there? Adam Wathan: Let me think. So I think we ... I don't think we had computer programming classes 'till like grade 10 and we did a lot of like Pascal and we did C, and we did Java and then we have a web one which was later, which was kind of weird because the Java stuff was ... Even the Java stuff isn't ... When I think back to the fact that we did Java in high school, I don't remember doing any of the stuff that I know about Java now. Like I didn't know what object oriented programming was when I came out of high school, even though Java is an object oriented language. We just would write procedural code in like our main- Matt Stauffer: Good job, yeah. Adam Wathan: Java file or whatever, right? Matt Stauffer: Yeah. Adam Wathan: And stuff like that, but yeah. Matt Stauffer: What made you choose those classes? Adam Wathan: I think I just thought it was really fun to be able to make the computer do stuff. Matt Stauffer: Yeah. Adam Wathan: So I remember like one of my earliest memories of programming actually is when I was a kid I was like super obsessed with pro wrestling, that was like my thing. And I used to download all these like wrestling simulators so you could like ... It's so funny because they weren't ... they're not like games, right? They're like you create characters, you choose their move sets, you give them the statistics and stuff and then you like run simulations and it would spit out like texts, like this guy punched this guy, then this guy powerbombs this guy- Matt Stauffer: Right, and you're not actually controlling what they did, right? Adam Wathan: No, no, no. It's just a computer simulation based on random events- Matt Stauffer: That's fascinating. Adam Wathan: As well as like, you know, the statistics and attributes of the different wrestlers. There's a couple different programs that you could use to do that and I was always looking for different ones to test them out, and then one day I stumbled upon a tutorial online that was like make your own wrestling simulator in QBasic. Matt Stauffer: Oh, nice. QBasic, yes. Adam Wathan: And I was like, okay. And that was my first exposure to QBasic. I followed the tutorial and got everything set up and I didn't know how to like do random stuff or anything like that, so I never got very far with it. It was all just very like ... It was not like conditional logic or anything, you would just do this, this, this. Matt Stauffer: It just takes input- Adam Wathan: I couldn't figure out how to make it do exactly what the other things are doing, but I could make the computer do stuff, and that kind of got me interested in the whole QBasic programming stuff and then I just started looking into more like QBasic tutorials and finding out stuff that you could do, and I remember getting really into ... I don't think I'll ever remember the actual name of it. I found a site that I think might have been it, which is Pete's QBasic tutorials, which I don't know if that was the site for sure, but some of the content looked really familiar, but it had lots of tutorials on like making like tile scrolling RPG engines in QBasic and stuff and- Matt Stauffer: What? Adam Wathan: Where you could create like little sprite characters and you'd make these like 20 pixel by 20 pixel squares and lay them all out and make it scroll as you use the keyboard and stuff like that. So one summer I had this dream of making an RPG, which of course never even remotely happened, but I had a lot of fun just hacking around on the computer getting it to render this stuff and do stuff like that. So I think that's where I really got excited about programming because I don't know if I have a specific passion for programming more than anything else, but it was just like a really perfect kind of platform for just doing creative things, you know what I mean, and making stuff. It's the most like powerful tool for just like making interesting things that I know of so far, right? Matt Stauffer: Yeah. Adam Wathan: So I think that's what kind of got me into that. So I did a bunch of QBasic stuff messing around with that and eventually I started making my own little websites on Geocities an Angelfire and stuff like that and yeah, I've kind of been doing that ever since, so. Matt Stauffer: Yeah, I was thinking about how creation was definitely a trend for you. I mean between music creation, you know, as a guitarist and music production, you know, and the art and everything like this is it's wanting to make things happen and figure out what the tools are, so it's interesting hearing you say, you know, it's the most powerful tool that you can use for that. Adam Wathan: Yeah. Matt Stauffer: Do you ever draw still? Adam Wathan: No, not at all. Matt Stauffer: Do you have any of your old drawings anywhere? Adam Wathan: I might. My parents just sold their house and gave me a big box of like crap lying around that was mine. Matt Stauffer: You got to find something, man. Adam Wathan: I think there's a couple sketchbooks in there so I should maybe- Matt Stauffer: That would be amazing. Adam Wathan: Dig through those. Matt Stauffer: Please. Okay, so you went off to school for computer science and did you have a sense ... Did you have any shifts during school with what kind of aspect of CS that you were interested in or if ... And yes or no, what did you think you were going to do afterwards? Adam Wathan: Yeah, so I actually only went to the university for a single semester, so I did the first semester a bunch of the classes I did find fun like the ones that were direct programming, so we had like a C class where we'd basically get these weekly kind of projects that we have to work on where just have to go through a bunch of problems to get the computer to do that stuff, and that was the stuff that I was really interested in and really excited about, but then we also had classes that weren't as interesting, like digital fundamentals and stuff related to more like computer engineering sides of stuff which is interesting, but it didn't get me excited and want to work on it. Adam Wathan: That stuff was like a chore, and at the time I was also playing in a band and we ... That was all I wanted to do. Like we were playing shows and recording demos and stuff like that, so the computer stuff was not really a big focus for me at the time and I was commuting to school which was about a 45 minute drive away and living at home, so I didn't really get like embedded into the sort of university community that was there. Adam Wathan: So I didn't really like make any friends or meet anyone, I was only there for classes and that was it. So it was really hard for me to sort of, you know, become a university student. That was like this thing on the side I felt like for rest of my life, where my friends were and my hobbies were and stuff like that, so I only stuck with that for a single semester and then dropped out to just basically work full time while I reconsidered what I wanted to do, because it just ... I just wasn't enjoying university and I don't think it was the programming that I wasn't enjoying, it was just the educational side of it and having to get pulled away from the things that I was actually excited about to work on that. So I don't remember what the original question was, but that's kind of that story. Matt Stauffer: Well, no, and that's actually perfect and before I move on from that, I want to ask one question which is, was the distinction between doing versus learning abstract theory, was it about how concrete something was that was the difference between what you did and didn't like, or did I kind of miss that a little bit? Adam Wathan: No, I think that's true. I think the other thing is there's just a lot of classes that you have to take in university that aren't as ... they're not all really like cohesive, you know what I mean? I don't know what the system is like in the U.S., but in Canada we have university and college, which I think is kind of like college and community college in the U.S. Matt Stauffer: I think so, yeah. Adam Wathan: But the way that you pick your classes and stuff a lot of it is you have to go into the school and you have to go and sign up for different classes and you have different requirements, and you have to get credits and different things, but a lot of it is kind of up to you and they don't really put together like a cohesive curriculum. So I had to have X Math credits, X Elective credits, so I took like this history of music class, which is the only class I've ever failed in school in my entire life. Matt Stauffer: Oh, my God. Adam Wathan: And you would think that I ... Just because it's so damn boring, right? Matt Stauffer: Yeah. Adam Wathan: And I just like couldn't get into it at all. But everything was just kind of disconnected. There was like some math over here, some physics over here, and because at the early stages of things it's kind of like when you're in like first year of high school or something, they're just trying to teach you all these fundamental concepts- Matt Stauffer: Basics, yeah. Adam Wathan: Without kind of tying them back to the goal they you're trying to get into and I ended up going back to college years later which we can talk about maybe a little bit later, where the curriculum was much more cohesive and everything is sort of designed to teach you to be a programmer, and I really liked that experience. So yeah, I think it is just the fact that there was only one class that I actually liked, which was the programming class and everything else just felt like high school all over again, you know. Matt Stauffer: Yeah, yeah. No, I totally hear that. I mean there's a lot of conversations happening these days and I'll wait to go into them until we talk more about your later school experience, but around trade school versus university, versus whatever else and what are the pros and cons of each and I think a lot of it ... You know, one of the things I've come down to recently is that I've always been a pro university person with lots of caveats, and one of them is just like the school you're at really makes a big difference, and the classes you take and the professors you have. You know, there's a lot of factors that can give you a very, very, very, varied experience, even in the same type of program in the same type of school. So where did you go from there? You said you kind of were reconsidering your working full time, you were recording with your band and were you doing any touring at that point, too? Adam Wathan: No, we never got successful enough to do anything interesting like that. I was local shows and stuff, but yeah, so I was just working like crappy factory jobs basically. I'm trying to think what was the first job that I got after I left university. I have to try and reconstruct a time line, but the one I remember most specifically was working for a company where I was basically just in a factory building really high-end like antique looking stoves. Adam Wathan: So I did that for like a year while I still played in bands and did stuff like that and then eventually a friend of mine was working up in the Alberta oil sands like way up north and I would have all these construction projects to extract all the oil out of the sand and sell it of all over the world, and his dad actually ran the site up there so he had a lot of pull and one day he just called me and he was like, "Hey, do you want a job up here?" And I was like, "Sure." He's like, "Someone's going to call you tomorrow and offer you a job." And I didn't know- Matt Stauffer: That's awesome. Adam Wathan: What it's going to be. Like I had never seen the job description or anything, but this is just this guy's kind of style and so ... Yeah, I ended up working up there for two years doing like basically data entry stuff for the materials team, so I worked in an office in the frigid cold in Fort McMurray where it's like minus 50 degrees Celsius in the winters. Matt Stauffer: Holy crap! Adam Wathan: Our offices are these little portable trailers on the construction site and I was just there basically in Excel reconciling like purchase orders and invoices and making sure that, you know, we received the materials that we had paid for and that all this ... Just a bunch of really kind of monotonous data entry stuff, but for being like a 20 year old kid it paid really well and I did that for like two years until kind of that whole industry and economy started to suffer a little bit more because gas prices and oil prices dropped and they did a bunch of big layoffs which was ... So I got laid off, which was like a blessing in disguise really because I know a lot of people that basically just stayed up there forever because you can never get paid the same thing to come home. And I would work up there for 14 days straight, 10 hours a day and then they would fly you back to where you lived for seven days off. So I was constantly flying back and forth. which just made it really hard to have like a normal life, right? Matt Stauffer: Yeah. Adam Wathan: So yeah, I got laid off from that, came home, decided I would use that chance to try and get into like the recording stuff, because I was getting into recording a lot when I was up there and doing it when I was coming home just as kind of a hobby, but I thought why don't I try and like find some bands and record and like mix EPs for them and stuff. So I did that for like a year, which is a dumb industry to get into because bands don't have money, especially local bands, so you can't make a lot of money doing that, but what I found is while I was doing that I was using this tool called Reaper, which I still use out of my podcast and stuff like that, and I found that there was a bunch of features that I wished it had that it didn't have, and it was created by the guy who created Winamp originally, and it's like a very hacker friendly tool, so it lets you like extend it with Python or C++ or Lua now as well, so you can write all these sorts of like plugins and extensions for it and the API that they give you to do that stuff is like very powerful, you can access basically everything in the tool and write your own menu options and dialog boxes and all sorts of features and stuff. Adam Wathan: So I started getting into like hacking around with that doing really simple things and then one of the guys in the IRC chat for the software, kind of like this elite group of people who are like hacking on stuff there. I made this thing using Python and he was like, "You should port this to C++ so we can include it in this big extension that they maintain." and I was like, "I'd love to do that, I just don't have any idea how." and he's like "Well, okay, I'll help you." So for the next little while he would kind of like ... He kind of put together like a playground in this extension source code for me to like write my features in and help me figure out how to get XCode compiling it and all this different stuff, and that's when I kind of really like reignited my excitement and passion for programming because I was just having so much fun adding features to this tool and making it easier for me to do my work to the point where I was having way more fun adding features to the tool than I was actually using the tool to record bands. Adam Wathan: And I didn't even get back into web development or anything at that point. I hadn't made a website since like high school. So that's when I decided you know what, I think I'm going to go back to college and do this programming thing again, but I decided to do college and study university specifically because I knew like what I didn't like about university and I wanted to do something that was a lot more practical and focused on making you into a programmer than it was, you know, educating you about computer science. Matt Stauffer: So I had been meaning to ask and that's helpful. Are you familiar with the concept of a trade school? Adam Wathan: Yeah, like where you would go to learn to become like an electrician or something like that? Matt Stauffer: Yeah, that's not the same thing, right? You're more talking about it's a school, but it's more like single focus sort of like our community colleges, but I was wondering whether colleges like a little bit different than communities or if it's just- Adam Wathan: Yeah, I'm not sure. So the college I went to is Conestoga College. I'm going to pull up the website now, but basically here college programs are usually two-year programs and you get a diploma, and university are four years and you get a degree, that's kind of the fundamental difference. So I'm going to try and pull up like the actual program that I did here so I can kind of talk a little bit about the actual curriculum because I think it's kind of interesting. Matt Stauffer: While you do that, this is definitely similar to community college. It literally even in the Google preview says your community ... Ontario Community College and this is definitely not trade school, definitely community college, if that makes sense. Adam Wathan: Yeah, so I did the software engineering program there, and not the computer programmer course, which I got kind of turned on to that by asking around to friends who had gone to the school to kind of figure out like, you know, what are you supposed to do, but if you look at the actual program courses here we can maybe like link to this and then show it to people that are interested, but like in the first year we had classes like software engineering fundamentals, operating system fundamentals, C, C++ programming, computer security, object oriented programming, some of this has changed, but then year two we did like web design and development, relational databases, Windows and mobile programming, microprocessors and embedded systems, software quality, so like in school we learned about automated testing, which is pretty cool. Matt Stauffer: Nice. Adam Wathan: You never learn that in university. Advanced computer security, mobile application and development. Yeah, so it was just like all programming. Every class was programming, but it was just focused around some different kind of element of it using different technologies and stuff like that. So the nice thing about that is that college is really close to my house and unlike university where the schedule it's like really weird, sometimes I'd go to a three-hour lecture and then have seven hours off then have to go back in the night for a one-hour class. Like this is structured so much similar to high school, you know what I mean? Adam Wathan: Like you'd get there in the morning, you'd leave in the afternoon, so you're there for a long period of time, you get to like meet people, you get put on projects with people, and I really got into what I was doing there in terms of like I made a lot of friends, you know, that kind of became like my focus which was I think what made me not stick it out in university. It was just like such a side project, whereas I was able to really sort of like embed myself into what we're doing in this program, so- Matt Stauffer: That's really interesting. Adam Wathan: Yeah, that went really for me. So I did that for two years. It's a three-year program, but the way they do it is kind of weird. They have like three years with co-op, I don't know if people use that term in the U.S. It's kind of an internship- Matt Stauffer: I don't think so. Adam Wathan: Like paid internship. Matt Stauffer: Oh, yeah. Adam Wathan: So if they do like two years of schooling and then for 18 months you go out into the workforce. There was like four work terms across those 18 months I think, something like that. And some people do them all the same company, some people do four different ones, some people split up however, but you get paid to do that, which is pretty cool like 18 bucks an hour or more depending on who the employer is, and then once you're done that kind of co-op internship stuff, you go back and do your third year of schooling and then you get your diploma and then you're done. Matt Stauffer: Oh, cool. Adam Wathan: So I just did the first two years, and then I did my co-op at Vehikl who were called Chrome Media at the time, and I think I was like the only person to apply for that job because everyone else was trying to get a job at Desire2Learn which is a company that makes like education student management software, and it's all C# and Windows stuff and that's what they teach us in school so that's what everyone was excited about and they were kind of like the cool, hip company in the area, but I was like the only kid in my class that used a Mac, so doing the Windows stuff was painful for me. I had to like boot up a VM and do stuff like that, so even with all our projects I would do in school I was always trying to find technologies that I could work with easier on my Mac. Adam Wathan: Because we had a lot of like web based projects, even though we didn't have a lot of web specific courses, but in the later years we'd have like a project that was a two-month project and you could choose the technology, which is cool, so some people did C#, some people did, whatever. I chose PHP because that was the only programming language I knew of that you could do dynamic stuff on the server. Like at the time I didn't know that oh, you can use Ruby to do that or Java or any of these other languages, I just knew from like trying to create PHP scripts I could accept form submissions when I was 16 years old that like PHP was the language that you do ... I used to do stuff on the server, so I started looking into, you know, tools for PHP that could compare with like ASP or C#. Matt Stauffer: Like MVC. Yeah. Adam Wathan: That like framework and I found my code igniter and stuff like that and so we started messing around with those sorts of things, and I was lucky enough to find a handful of people that wanted to work on those technologies with me instead of doing the C# stuff and they were all pretty bright people, so we did a bunch of projects using that stuff and then when it came time to look for co-op opportunities I applied to Desire To Learn and they never got back to me, which is great because if they had and I had gotten a job there I'd probably still be a C# developer now. Adam Wathan: Instead I saw this tiny, little company that was only three people at the time that was doing like Magento sites and some custom app development in PHP, and I was like you know what, I'll apply for that and I ended up being like the only person in my class who applied there and that ended up being like the best way it could have ever possibly worked out because I met some really cool, talented people there that really helped me get my career to where it is now and encouraged me to speak at user groups and get involved in open source and stuff like that. Matt Stauffer: That's awesome. Adam Wathan: So after I went and worked there I did my whole kind of internship co-op stuff there and I just never went back to school because I had a mortgage and stuff like that. I was like 26 at the time or 25, 26, and I couldn't really afford to like not get paid for another year or going back to school and the whole point of going to school was to be able to get a job. and now I had a job and even if I wanted to leave there, well, I had a job doing programming for a living on my resume now so it didn't really matter, you know what I mean? Matt Stauffer: Yeah. Adam Wathan: So I got what I needed out of it and then kind of got into the workforce doing PHP stuff and actually like even when I started there, that's when I really got seriously into Laravel stuff. We actually started using Laravel 4 on a client project before it was officially released when it was still like in a beta, which is cool, so I was getting paid to write Laravel code on my very first programming job. Matt Stauffer: Which is amazing. Adam Wathan: Pretty neat. Matt Stauffer: That's very cool. And who are the three? It was Chris and Grant and who was the third person, do you remember? Adam Wathan: Chris, Grant and Caryn, who is like a ... She's a product designer. Matt Stauffer: Product designer, yeah. Adam Wathan: A UX person there. Matt Stauffer: I didn't know she was employee number one. Adam Wathan: I don't think she was employee number one. They kind of went through a couple different iterations of the company doing different stuff- Matt Stauffer: Got it. Okay. Adam Wathan: Over time, but when I got there it was the three of them and they kind of had their thing figured out. Matt Stauffer: Very cool. All right, so the story from there you did at Vehikl ... So when did you start speaking? Was it the Laracon EU testing talk? Was that your first kind of big conference, or what was your speaking journey like? Adam Wathan: So the first talk that I ever gave was like an intro to Laravel talk at a Meetup that we created so that I could give that talk basically like the vehicle we created like the Kitchener-Waterloo Laravel Meetup which only survived like a few Meetups because we also had this like Guelph PHP user group which half the time we were doing Kitchener anyways and that eventually just became like oh, we'll just do everything there because we'd meet up once a month there. But yeah, so I gave a talk at that user group to about like 30 people or something, which was my first time doing any speaking like that, and I may have done another talk after that to like a local Meetup, but yeah, the first conference talk I think was the community day at Laracon EU 2015 or maybe '14, yeah, and I did the talk- Matt Stauffer: I remember it, but I don't remember the year so, yeah. Adam Wathan: Yeah, I can't remember what the talk was called, TDD the good parts, I think, and then after that I think I gave a talk at True North PHP in Toronto at Chris Hartjes and Peter Meth's conference and from there I just kind of got into it more and more. Once you kind of have one conference under your belt, it's a lot easier to get into the other ones, especially if you make the effort to get them filmed and post them online and be able to use that stuff to help show people hey, I can actually do this and it'll be fun. I'm a grown up I can do a good job. Matt Stauffer: Cool. So at some point you were using Laravel, and you became more aware of some of the world's around there. You were looking into things in Rails, you were talking about Ruby some. What was that journey like from Laravel being the thing that you were spending all your time in, to kind of expanding your exposure to the rest of the web world, I guess. Adam Wathan: I can't say ... I can't think of a specific ... I can't remember exactly how I heard about some of these other things, because like I said, I only remember being in college and being like well, PHP is what I use on a server. I didn't even know Rails existed. Like in some ways, in a lot of ways I wish I had known, because I probably would have never become a Laravel programmer. Not because I don't have ... I have anything against Laravel, but throughout the years it's become pretty clear that philosophically I'm much more aligned with the way people think in kind of the Ruby world, right? Adam Wathan: So I was already kind of like deep into Laravel stuff and feeling like pretty fast and productive with it and I'm sure all I was doing was poking around the internet looking for tutorials, reading things about how to do this and that and somewhere in there someone said similar to how this works in Rails blah, blah, you know what I mean? Like eventually you just kind of like start hearing about these things. Matt Stauffer: Yeah, yeah, yeah. Start hearing it, yeah. Adam Wathan: And the Laravel community was a lot less mature than it is now at that point, so a lot of the really good content that was out there was focused on Rails. Like Rails had a big head start on a lot of what we're doing in the Laravel world. Rails came out in like 2004 I think originally. And there's blog posts written in like 2008, 2009 that are still really useful blog posts for people writing Laravel stuff now, so it was actually really interesting for me to discover that kind of whole world because at the time this was like 2013, 2014 when I was learning Laravel originally. Maybe ... Yeah, probably 2013, there was like eight years worth of high quality Rails content out there. So if I could just figure out- Matt Stauffer: Yeah, sitting out there already. Adam Wathan: How to translate the syntax from Ruby to PHP, you know, there was all this content out there that could make me a better Laravel developer, basically. So I got really, really deep into all that stuff and that's when I discovered companies like Thoughtbot that had done tons of blogging and written books and put together video tutorials or Gary Bernhardt's Destroy All Software, which is all Rails stuff. There was just so much good stuff out there and that's where I basically focused all my learning at that point was taking everything that people had already ... Like I make this joke a lot of the time that any time like someone runs into a problem with Laravel, like a design decision where you're like okay, well, what's the best way to do this in Laravel, take the current year subtract four years, include that in your search query and look for how to do that in Rails and there will be like 100 quality blog posts out there. Adam Wathan: So yeah, I got really into just kind of researching what people were doing in these other ecosystems and finding out what made sense to try to port back and apply to what we were doing in PHP stuff and yeah, that's kind of been like my shtick, I guess. I'm always looking outside my existing community to see if ... I think of myself as like Christopher Columbus like going across the sea to the foreign lands and bringing back treasures for people. Matt Stauffer: Nice. Yeah, so let's see. So you worked at Vehikl for a while and do you know how big Vehikl was when you left? Adam Wathan: So it was still actually just the four of us- Matt Stauffer: Oh, yeah? Okay. Adam Wathan: When I left, which was kind of like my motivation for leaving. I still was really enjoying the work that I was doing there, but I had this like nagging feeling that I was missing out on the ability to grow faster by not being part of a bigger team where there was more ... Not more experienced developers like developers with more experience, but just more developers- Matt Stauffer: More people, yeah, yeah. Adam Wathan: That were experienced- Matt Stauffer: With different experiences, yeah. Adam Wathan: To learn from, right? Matt Stauffer: Yeah. Adam Wathan: And that was kind of stressing me out at the time, so I ended up leaving to go work for a company that did Rails consulting, but when I got there I got dumped onto a project doing C# and Angular, so I only stayed there for like three months because I want to blow my brains out ,and I soon ... Like within the first week of working I was like I can't believe I left my other job, this sucks so bad. And then after being there for a couple months Tighten, this company out of Chicago that does some Laravel stuff, I don't know, people might have heard of them, posted a job posting on the old Laravel job site and I applied for that and ended up going to work there for a while. Matt Stauffer: It's so weird because I've been trying to figure out how to ask you questions about that time, and it's really tough. I don't know how, but maybe I'll just try and throw a broad one at you and see if that goes somewhere. What was the area you grew in the most while you're working at Tighten? I think that may be a question to start with. Adam Wathan: That's a hard one. I can't think exactly what ... I think the biggest changes for me are the things that I had to figure out the most was like the remote working thing. That was like a new thing for me and figuring out how to ask for help with things and get stuff done and get help from people in a way where like I'm just so used to ... I was just so used to working in an office where if you're frustrated with a problem, like the people sitting around you can tell, you know what I mean? Matt Stauffer: Yeah, yeah, yeah. Adam Wathan: And that's not as easy in a remote company, so you have to figure out ways to manage that sort of thing, especially when people are not always like available at the same time because everyone's kind of working ... Like even though you have kind of standard-ish hours, there's still a lot of a synchronicity to it, right? Matt Stauffer: Yeah, yeah. Adam Wathan: Everyone has different calendars with different things going on, which is very different than being in an office. Yeah, people have stuff scheduled and calls and stuff, but you can like see when someone is available. So figuring that out was probably ... That was probably the biggest change and area for me to kind of figure out how to work that way, and yeah, it was good though. I think the remote working set up is the way to do it, as long as you can make sure people are able to communicate when they need to communicate and feel ... You have to be more deliberate about asking for help, which can be hard, you know what I mean? Matt Stauffer: Yeah. Adam Wathan: If you can just be frustrated and people can tell and people offer to help, that's one thing, but sometimes it's like you feel like you have to ask for help every 15 minutes with something, especially when you're starting, right? Matt Stauffer: Yeah. Adam Wathan: And that could be like ... It's like a degree of shame or something like associated with that. That's hard to get over. Matt Stauffer: We've been working ... That's probably been the biggest barrier with bringing on juniors is that the combination of junior, plus remote, it's really an extra level of shame. Adam Wathan: Plus new job, right? Matt Stauffer: Yeah. Adam Wathan: Which is hard for even for like an experienced person, yeah. Matt Stauffer: New job, remote, new tech, I don't know what I'm doing, everybody else here has got it and I'm asking for questions every 15 minutes, I feel like I'm bothering people. Adam Wathan: Yeah. Matt Stauffer: That's definitely tough. Adam Wathan: Yeah. Matt Stauffer: So this is the last question I'll ask about your time at Tighten, but one of the things that was really impactful from our perspective was that you had a lot of thoughts about how a company should be run and a lot of them came from watching Base Camp and and Thoughtbot, and thinking about concepts that you've talked about in the podcasts and some of the times I've talked with you about on podcasts of things like no estimates and stuff like that, where there's a certain way of thinking, and I think that Dan and I say often that your time at Tighten was really impactful in terms of just kind of like sharing those things with us, but it wasn't always just as easy as Adam comes in and teaches something. Matt Stauffer: Often it happened in the context of, you know, there was a ... Not necessarily there was a conflict, but there was sort of like well, why is it not happening this way and we'd be like, "Oh well, I don't know. We'll figure that out." So I was wondering during your time at Tighten, do you feel like you learned anything about what you wanted to kind of do when you grew up kind of vibe in terms of teaching, or were there things that you learned about how you think software should be written or something that happened in the context of those learning moments and those conflicts and everything that we had during those times? Adam Wathan: Yeah, I'm try to think if there's anything specific I can take away as like a learning ... Matt Stauffer: And if not, no worries, I'll just edit out the question. Adam Wathan: Yeah, I think like ... I mean, what I like working on the most at Tighten was being able to create projects for companies, build stuff for other people. I think if anything, what I maybe took away is that ... What's the best way to say this? I like having control I guess of like my own destiny in that sense because working with companies to build new projects for them there's like this of course this whole layer of stuff that comes with that that isn't there when you're just building something for yourself of course, right? Matt Stauffer: Yeah. Adam Wathan: And it can be a real challenge sometimes to get people on board with building something in a way that is in their best interests, even though they might not understand why or agree why, and that's just like a whole thing that you have to figure out how to navigate that can just get in the way of what you want to do which is just like creating the best thing for solving a problem for them, right? Matt Stauffer: Yeah. Adam Wathan: So I think being able to get into what I'm doing now where I get to like create training stuff and stuff like that has been a nice change in that sense, because it lets me focus on just doing ... Creating the thing that I want to create. But yeah, like you said, like I think a lot of the reason that I cared so much at Tighten and everywhere I worked about how to try and run these projects successfully is for that same reason because I just want to make the great project, you know what I mean? Matt Stauffer: Yeah. Adam Wathan: And I think everyone is on the same page there, right? Like you want to figure out a way to navigate the other stuff and minimize it so that you can just focus on doing the work, but because I just care so much about doing the work and that's what I want to do, that it kind of pulls me down this path of figuring out like okay, what is stopping us from being able to just do the work and what ideas are out there in the world that people have that can help us focus on- Matt Stauffer: Help us, yeah. Adam Wathan: Just doing the work for people. So I don't know if that really answers your question in terms of I guess like a specific kind of learnings or take aways, but in terms of, you know, that sort of project management side of things, I think that's sort of like where my motivations at least come from to care about that stuff. Matt Stauffer: Well, it's funny because you say everyone feels that way and of course everyone, you know, hopefully wants to really do a good job for the client, but it also reflects a little bit back on what we were talking about earlier about you love doing things to the best they can possibly be done and it's not just your things, you know, it's also other people's things. Like every project you have a hand in, you want it to be the best possible thing, and if there's stuff getting in the way of that, well, then that's stuff that you need to kind of shave off so that it can just be the optimal it will be. So I totally hear that and that makes a lot of sense. Thanks for answering that kind of convoluted question. Matt Stauffer: So the transition from there was it was during your time there that you wrote your book and you released it and you were able to transition it to be doing your own educational stuff full time. So in terms of that switch, when and what was the process like for you to start thinking you know what, working at somebody else's consultancy may just not end up being the thing for me and I want to try info products or I want to try my own products or something like that? Like what was that journey like for you? Adam Wathan: Yeah, so I think for me what really happened there as I put together this book and released it, I didn't really have crazy expectations for it or anything like that. Again, it was just one of those things where I've always just really liked making polished things that are finished that you can look at and be like this is done and this is tidy and this feels nice. And I used to do that with even like trying to contribute tutorials to Game Facts and stuff back in the day. I never got anything on there, but I would just like agonize over like making some sweet like ASCII art title at the top of these like stupid plain text files- Matt Stauffer: That's perfect. Adam Wathan: And I just wanted it to feel like a polished thing, right? So that was kind of like one of my biggest motivations for making the book was first of all, I've always been interested in like creating something and selling it and seeing like what it's like to make your own money on the internet sort of thing, but I also just like ... It's hard to think back to it now because I have a few products now, but back then I kind of felt like I just had never got to finish anything, if that makes sense? Matt Stauffer: Yeah, definitely. Adam Wathan: And this is a common thing that I think like agencies deal with a lot in general, right? As you get to work with a client, you do a lot of really great work for them, but you're not necessarily like always around 'till the end of the project because maybe eventually they hire their own team which is one of their goals from the beginning, right? They're trying to get like a head start on something so that once they have a little bit of traction they can build their own team around it, because of course that's more economical way to handle that. Adam Wathan: Or the other end of the spectrum is you start working on a project for someone and it turns out that they just aren't able to hold up their end of the bargain really and the project is just not going to work out and you do work for them for six weeks and then they realize like you know what, I'm not ever going to be able to make an app company properly, so you kind of just say okay, thanks for your work, you did a great job, but like that's the end of the project. Like I've worked on so many projects that never even went to production, you know? Matt Stauffer: Yeah. Adam Wathan: Or got any users or anything like that and that's kind of like a ... At the time that was kind of "I just want to finish something. I just want to have something that's done." I did that with my Nitpick too, that little SaaS something- Matt Stauffer: Yeah, I remember. Adam Wathan: That I built, and the whole goal there was just the same thing, like I want to build an app 'till it's done and then put it out on the internet, and that was just like a cool feeling. So I did the same thing with the book and then the book ended up being, you know, pretty successful, and before I worked on that book, I had the idea all along that what I really wanted to do was some sort of testing thing, like some TDD book or course or something, but it was just like ... Sounded like so daunting, it just sounded like a big project. Adam Wathan: So I stumbled on this idea to the collections thing, and that seemed so much more manageable, so once I had finished that and, you know, it was pretty successful, I thought you know what, if I want to do this like testing product, this is the best possible chance that I'm going to have to be able to spend the time on that because the book did well enough that like I can take six months off and focus on this thing. So I thought you know what, I'm not going to get a chance like this again. If I don't do it now then this money is just going to go into an RSP or something and it's just going to ... Yeah, of course that's good, I should have money saved away for a time. Matt Stauffer: Right, right. Adam Wathan: I'm not going to ... Like it's not going to change my life in any way, I'm just going to keep doing the exact same thing that I'm doing. The book's going to be out there, but I'm not like seizing the moment to use it as an opportunity to try something. So I thought you know what, this is like the only chance that I'm going to get to probably do this, so why don't I try it out. So that's when I decided to move on to try and to just do something for myself and see how it panned out and I did the testing course, which was way bigger than I even was worried about it being originally. Adam Wathan: So it's a good thing that I didn't try and put it together when I was still working, but that did really well too, and that's been able to let me focus on continuing to do more stuff like that. I'm always able to stay just like a little bit enough ahead of where I need to be that I have some time to figure out what the next thing is going to be, you know, and I'm just kind of like building the bridge as I try and cross the river. Matt Stauffer: Yeah, that's awesome. I remember one of the things that you said when you let us know that you were going to be going off to do the thing full time and you said, "You know, I don't know how this is going to work out, but I know that if it totally flops in six months I can apply to one of a myriad programming jobs, but if I don't try this, there's no guarantee I'll ever have this chance ever again where there's the traction for my book and I have enough money to kind of try this thing and so I got at least try it." And that really stuck with me, just the idea that like ... And I mean I've had that happen where I've had an influx of cash and it just kind of goes and spreads out across retirement savings and health expenses and whatever else, and your life is exactly the same even though you put all that work into it, and so that idea of those are those moments and it's scary, but like what's the worst thing that's going to happen? I'll use up all the money and then apply for jobs on the other end. Matt Stauffer: You know I'm a little less stable because I'll have to be applying for a job versus having once settled, but there's no guarantee that your job's not going to shut down the next day, you know, and so like the idea that oh well, everything's perfect now, I'll be put ... No, no. You know, I really love that kind of thinking and obviously at least so far it's working out really well for you, so I'm hoping that's an inspiration for other people to kind of consider taking some of those leaps. Matt Stauffer: I would love to ask you a million questions about how you think about product and stuff like that, but we're longer than usual, and thankfully other people have asked you that on their podcasts, so I'm going to try and link some of your stuff with Justin Jackson and some other people, also Full Stack Radio, even though it's you interviewing other people, you do learn a lot about the interviewer by the questions they ask. So all this super interesting stuff that we don't have time for, I hope that we'll be able to ... People will be able to kind of suss that information out anywhere else. Matt Stauffer: But I think one of the things we have not talked about, so every time I'm going to be interviewing somebody in the Laravel podcasts I go into Tighten Slack and I say I'm about to interview this person and I'm actually opening my Slack right now to make sure that new questions ... Yep, a couple of new questions came in, and I say, "Are there any particular questions that y'all want to ask them?" And so I ask that question in Tighten Slack, which is kind of funny because you are still in some of our Slacks and you used to work there, but there's still some questions. Matt Stauffer: So the first question came up for you is, "Do you even lift, bro? Which first of all is fantastic, but second of all in our Slack that actually triggers a gif of you doing a lift, so it's perfect. So we haven't gotten to talk about that at all. Adam Wathan: Yeah. Matt Stauffer: Where did that fit into your whole world? Can you tell everybody a little bit about kind of that part of your life? Adam Wathan: Yeah, so when I was working up in Fort McMurray in Alberta, I've always been kind of like an overweight kid. Matt Stauffer: Same. Adam Wathan: And like most people, like you just want to look better, right? Matt Stauffer: Yeah. Adam Wathan: So when I was working up there, you're just like so bored and you're not using your willpower for basically anything else that it was like an opportunity to finally try and do that seriously, right? It's actually funny because if you follow along with like the bootstrap podcast like Ian and Andre, Andre is kind of doing the same sort of thing. Like he decided to basically take off some time during the year from any really like mentally sort of straining work. Like I think he's just mostly focused on doing some consulting stuff and I'm not even sure if he's working the same amount of hours and stuff that he was doing normally, but he decided like, you know, I want to take this opportunity with this kind of reserve of mental energy that I have and focus on something like really life changing thing, which for him was like getting in shape, right? Matt Stauffer: Yeah. Adam Wathan: And it's funny because I never really thought about it that way, but when I heard him phrase it that way it's like you know what, that's exactly like why I was able to do it originally, because I just didn't have anything else pulling at my brain. So when you're going to make dinner or even going out for dinner with your friends it's easy to order the vegetables instead of the fries because like I just haven't used any of that brainpower, you know what I mean? Matt Stauffer: Yeah. Adam Wathan: So when I was working out there, I just ... It was easier for me to start eating a lot better and get into like home workouts and stuff like that and that led me down this whole path of eventually discovering like strength training. Pro tip; if you're a programmer who wants to like start exercising, the terms that you should be Googling are strength training. That is the term that's going to find you ... At least I think is going to find you the stuff that's going to resonate most with how your brain works in terms of things being really measurable and being able to like science the shit out of everything with lots of percentages and math. Adam Wathan: But eventually I kind of stumbled onto this like form of exercise where you're just focusing on like lots of really high bang for your buck compound exercises like multi joint movements like squats and deadlifts and bench press and overhead press and chin ups and barbell rows and stuff like that, and once I finally found the good stuff online which was like Mark Rippetoe's content and stuff like that, you learn like what you should be doing is progressively trying to increase the weight that you're lifting. Like a lot of people just go to the gym and they just like pick whatever they think is going to be like a good weight to lift that day and just do it or whatever, but they're not actually tracking their progress, so they don't really make progress, but if you can develop a plan where you know like okay, this week this is what I'm lifting, next week I have to try and lift this and it goes up and up and up. Adam Wathan: For me that's what was able to keep me kind of motivated because I was seeing progress on paper because seeing progress in the mirror is a lot harder, it takes a lot longer and it's a lot more subtle and gradual, and if you're not taking the pictures of yourself topless in the mirror every week to compare like okay, do I actually look like I'm getting in better shape, but if you're just like blogging stuff in a notebook it's easy to say okay, I bench pressed 185 for six reps last week and this week I did it for eight reps, that's pretty cool. So I've kind of gone into this whole thing of getting stronger and lifting and eventually started competing in power lifting competitions because like with everything I do I have to take it to the extreme. Adam Wathan: So what started as like 185 pound like skinny fat kid to trying to like look better without his shirt off, turned into like a 260 pound dude deadlifting 600 pounds and winning nationals power lifting gold bells. That was just something ... I would still be doing that, but it's a hard ... Once you get there's like a point of diminishing returns, which I think I definitely hit, where you're just more likely to get injured than you are to make progress, and I've hurt myself a couple times and I have a nagging back injury now that doesn't bother me day to day, but any time I get back into lifting, no matter how light I start, after a couple weeks I do one rep not 100% perfect and my back is messed up for a week, it's really frustrating. Adam Wathan: So it's hard for me to really stay motivated into it these days because the thing that kept me going was like getting stronger. So going to the gym to lift less than I did before is like, whatever. I still need to get back into it more, but yeah, that was a big thing for me for a while. Matt Stauffer: It's funny because as you were saying that, a light was going off in my head. I switched to a new trainer about four months ago and it was the first time the trainer has been trying to teach me the skills to be able to stop working with him versus just kind of like giving himself job security by just kind of telling me what to do. And he's a Mark Rippetoe guy and he just moved to Chicago, or he's moving to Chicago this weekend and so he's like here's everything I know and he set me up with this thing called ... Have you ever heard of the 5-3-1? Adam Wathan: Yep, that's what I always used to do. Jim Wendler. Matt Stauffer: That's literally what I started it this week at the new gym on my own and I've got a 5-3-1 calculator. Adam Wathan: That's awesome. Matt Stauffer: I plug all my information in. Adam Wathan: It's amazing. Jim Wendler is like he's the DHH of weight lifting. Like he's just got that same like everyone over complicates things attitude and there's this quote that I ... So this is so funny because like so many people who get into power lifting are like super nerds about this stuff, right? Like the amount of like just nerds that get into this stuff is outrageous just because of the fact that you get to make spreadsheets, you get to calculate like your estimated one rep max based on how many reps you lift this way or whatever. Adam Wathan: And I'll never forget there's like a F.A.Q. section in one of Jim Wendler's books where someone asks a question and it's like, what is the best ... I can't remember exactly how it was phrased, but basically the question is like what incline should I be using on like
Derrick discovered his marketing and promotional tasks were eating up too much of his time and mind, so he took a break from them. He shifted his focus to the actual development of his product, Level. He made some forward strides on the product’s design. Ben decided to give notice and leave his current job for an opportunity to develop a Screenhero alternative. Screenhero is a pair programming tool that has a rough history with Slack. So, he has a co-founder, new technology findings from Stanford, and encouragement from original developers. Could anything be more aligned?! Ben’s alternative and Derrick’s Level is a match made in heaven. Today’s Topics Include: How Derrick is refactoring and optimizing data model items Is having one identity the right way to go or do people want to establish different identities within different communities? Ben encourages Derrick to not automatically do the opposite of Slack Derrick is trying to envision what people may request and be able to customize Shifting from the anonymous to identified Web Why Derrick decided to rewrite some database migration history Derrick is developing Level’s registration and sign-up process Derrick is on a development roller coaster every day; getting back on the yoga train Development teams will become increasingly distributed, so the customer base for Ben’s alternative will only expand How Ben feels about the technology risk factor with his alternative tool Ben will be learning C++ to write the codebase and maintain it If you’re enjoying the show please give us your ratings and reviews in iTunes. Links and resources: Ben Orenstein Website (http://www.benorenstein.com/) Ben Orenstein on Twitter (https://twitter.com/r00k) Derrick Reimer Website (http://www.derrickreimer.com/) Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Tailwind CSS (https://tailwindcss.com/) The Bootstrap Blog (https://blog.getbootstrap.com/) Drip (https://www.drip.com/) GitHub (https://github.com/) Steve Schoger (https://www.steveschoger.com/) Screenhero (https://screenhero.com/) MicroConf (https://www.microconf.com/) Thoughtbot (https://thoughtbot.com/) Ruby on Rails (http://rubyonrails.org/)
Derrick is still moving in the right direction with the product he is developing called, Level. He used Product Hunt’s Ship to set up a landing page. He plans to promote his upcoming product and control its launch. Also, Derrick published a blog post titled, Building Level #2: The Tech Stack. It summarizes his rationale and reasons why he chose specific technologies. Plus, he posted his and Ben’s conversation, Live Level #2: Branding and GraphQL Mutations, and created a Twitter handle for Level. Today’s Topics Include: Derrick plans to create bite-sized content to engage customers and build trust Fake videos and info products and other shenanigans Derrick has been splitting his time writing backend code and nailing down design Getting feedback on mockups Be aggressive by charging and collecting pre-payments Ben will be going to MicroConf; taking a plane ride with leg room If you’re enjoying the show please give us your ratings and reviews in iTunes. Links and resources: Ben Orenstein Website (http://www.benorenstein.com/) Ben Orenstein on Twitter (https://twitter.com/r00k) Derrick Reimer Website (http://www.derrickreimer.com/) Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Building Level #2: The Tech Stack (http://www.derrickreimer.com/posts/building-level-2-the-tech-stack/) Live Level #2: Branding and GraphQL Mutations (https://www.youtube.com/watch?v=ui3KhMH-kLo) Powered By Level on Twitter (https://twitter.com/poweredbylevel) Steve Schoger (https://www.steveschoger.com/) Product Hunt’s Ship (https://www.producthunt.com/ship) Level on Product Hunt (https://www.producthunt.com/upcoming/level) Drip (https://www.drip.com/) Codetree (https://codetree.com/) MicroConf (https://www.microconf.com/)
Ben is now a Level contributor! Ben has paired with Derrick and his team communication and management tool called, Level - which is officially open source. Also, Derrick recorded himself building a Level feature and posted it on YouTube for feedback. It draws in people to see how an expert does things and share opinions and knowledge. It’s a win-win for everyone! Today’s Topics Include: Leveraging various networks to share information and provide value Building a brand and putting capital in the bank Impacts of stress on productivity Engaging and sharing with interested parties; building relationships Possible Milestone: Establish cadence of publishing frequency and balance of allocating time Proposed Product Milestone: Use Level to track the work on Level Utilizing GitHub to track tasks on To Do lists Finalizing logo and identifying domain for Level Value of retros Prioritizing tasks and making progress on important, but not urgent work Whether to focus on processes or engineering Product roadmap and associated expectations/productivity If you’re enjoying the show please give us your ratings and reviews in iTunes. Links and resources: Ben Orenstein Website (http://www.benorenstein.com/) Ben Orenstein on Twitter (https://twitter.com/r00k) Derrick Reimer Website (http://www.derrickreimer.com/) Derrick Reimer on Twitter (https://twitter.com/derrickreimer) Level Live #1: Listing groups within spaces (https://www.youtube.com/watch?v=SwPdHmw5EkE&feature=youtu.be) Level on GitHub (https://github.com/levelhq/level) Steve Schoger (https://www.steveschoger.com/) Drip (https://www.drip.com/)
Jake and Michael were joined by Matty Lantz and covered such topics as working out, the recently completed Laracon Online, engaging stake holders, and real time stats with Facebook Insights.
Jake and Michael return for 2018 and catch up on several framework releases from the break, discuss the upcoming Laracon Online, and community projects from Chris Fidao and Steve Schoger.
Ben is entering the last week of The 30-Day Code Quality Challenge. He has enjoyed getting the challenges out each day and seeing participants engage with the content. In the future he is deciding whether to personalize the programming languages or to remain language agnostic. The next cohort of the Challenge will start January 3, 2018, and Ben’s looking forward to iterating and improving each cohort of the Challenge. He also discussed a connection he made with Discourse, and explores options for forum management in the future. Drip is working on their visual email builder with the help of their new Elm developer. The team has just completed several product structure tests using a prototype, which was a greatly helpful experience to the developers. Ben and Derrick discuss their experiences with product usability testing. Today’s Topics Include: Approaching the end of The 30-Day Code Quality Challenge Challenge results and stats on participation The next Challenge cohort begins January 3, 2018 Positive customer experience with Discourse Drip’s visual email builder project Product usability testing If you’re enjoying the show please give us your ratings and reviews in iTunes. Links and resources: The 30-Day Code Quality Challenge (https://www.codequalitychallenge.com/) Discourse (https://www.discourse.org/) Steve Schoger @steveschoger (https://twitter.com/steveschoger) Full Stack Radio podcast 78: Ben Orenstein - Our All-Time Favorite Refactorings (https://www.acast.com/fullstackradio/78-ben-orenstein-our-all-time-favorite-refactorings) RefactoringRails.io (http://refactoringrails.io/) Drip
On today's episode we discuss "Redesigning Laravel.io" An article by Adam Wathan and Steve Schoger from the Refactoring Ui blog on Medium. "Good design creates succinct code. Styling things well, consistently across the board. You should be able to apply less styles beause they apply to more than one item” - Amy Dutton , Designer/Developer at Zeal Article Featured: https://medium.com/refactoring-ui/redesigning-laravel-io-c47ac495dff0 Related Content: https://www.youtube.com/playlist?list=PLNYkxOF6rcICWx0C9LVWWVqvHlYJyqw7g http://patternlab.io/ https://chrome.google.com/webstore/detail/axe/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US Leave a review and get stickers! 1. Go to our page on ITunes and leave a review 2. Take a screenshot of your review and email it to podcast@codingzeal.com 3. If you're one of the first 100 people, we'll get your mailing address and send you your stickers! This podcast is brought to you by Zeal
Jake and Michael discuss new Laravel 5.5 features, community projects, and news and packages from the Laravel community.
Jake and Michael talk about a great number of new things from the Vue camp, talk a bit about handling form validation, changes in the Laravel framework, and rapid fire through some community links.
In this episode, Adam is joined by Steve Schoger to talk about five ways developers can get better at designing their own projects. Topics include: How to pick great fonts Choosing a color scheme for your project Designing in greyscale Recreating existing interfaces from scratch Recommended design tools What you should design first on a new page Strategies for making things look professional without graphic design skills Sponsors: Rollbar, sign up at https://rollbar.com/fullstackradio to try their Bootstrap Plan free for 90 days Links: Steve's Blog Little UI Details, a collection of Steve's hot design tips Google Fonts, prefiltered "12 Google Fonts You Can't Go Wrong With", by Steve System Font Stack courtesy of CSS-Tricks Inter UI font family (formerly "Interface") WhatFont Chrome Extension Fonts In Use Dribbble color picker "Color in UI Design" by Erik Kennedy (great resource on HSL) Sketch, design tool for macOS Figma, cross-platform design tool "Building a professional design tool for the web", on how Figma is written in C++ and compiled to asm.js "Epicenter Design" by 37signals Doodle, example of a small UI Example login page, from Shippo Refactoring UI "Redesigning Laravel.io" case study Zondicons, Steve's free SVG icon set Hero Patterns, Steve's free SVG background pattern gallery Pushsilver, example of Hero Patterns in use Heroicons, Steve's premium marketing icon kit