iteration cover image

iteration

Latest episodes

undefined
Nov 30, 2020 • 55min

Spaghetti Episode 🍝 Testing, API outages, Unblocking your Team and More

Back from break: In this episode JP + John cover all kinds of topics. Balancing life with a baby, testing, API dependencies and more.
undefined
Oct 6, 2020 • 43min

Low Code / No Code ✨

JP: Welcome to Iteration, a podcast about programming, development, and design.JP Intro — Hi, I'm JP and I am a software engineer at an analytics startup. Today, I am joined by John:John Intro — My name is John and I am a software developer based in Los Angeles CAToday's topicThe "Codeless" movement, otherwise known as "Low Code / No Code"Said another way: Is Bubble and GPT-3 coming to take all of our jobs?We aren't talking about "Serverless" (Ex: Firebase / Aws Amplify / Parse) — Could be a good future episode.NOT tools like Auth0 or TwillioThis is a "Full Stack" — No code app development framework in the cloud.WYSIWYG for "Apps"This isn't software!Popular Codeless toolsFull "App" Developmenthttps://bubble.io/ (Most Powerful, widely used)https://www.appsheet.com/https://www.glideapps.com/https://thunkable.com/Internal Tool replacements — Kind of mini-modern salesforce or filemaker clonesAirtableRetoolSmartsheetNotionQuickbaseDomain Specific CodelessShopify ← eCommerceSharetribe ← Build a Marketplace AppSubstack ← Paid NewslettersMighty Networks ← Paid CommunitiesPodia ← Sell online coursesSo so many moreUpsides of Low CodeLow Code / No Code is an incredible tool for going from 0-1.All NotesDownsides of Low CodeLow Code / No Code is most ideal for basic CRUD or internal simpler tools. Reading, updating and managing listings of data. Or — Very Domain specific (Shopify for eCommerce)It can be very hard to maintain, since you don't "own" your stack.Very very expensive to scale (Still cheaper than a team of Devs)Tons and tons of gotchasJohn's Opinion:Prototype + Build V1 of everything you can with no-code or off the shelf systems. Get things in customers hands.Biggest Issue — Low Code doesn't fix the Hard Part of SoftwareNotesOther thoughts regarding of Low codeNon tech sees code as "Barrier" not "Force Multiplier"Often times the time saved is actually due to the compromises made with a low-code / no code tool.Examples of compromises include:Recommendations for Using Low Code ToolsAccept the limitationsSpending too much time trying to solve for nit-picky edge-cases is likely to be a time suck here. Low-code / no-code will likely have rough edges and performance issues. Just embrace the hackyness.Don't ignore best practices of user interviews, research and domain design.Just because your not "coding" doesn't mean you shouldn't do your homework and have confidence before building. It's very easy to waste time building the wrong thing.Think about the data and lock inWhere does data live? Is it secure? is it backed up? Is it in a silo? Can it be migrated / exported?Popular Codeless Resourceshttps://www.nocode.tech/ (Community and resource list)https://zeroqode.com/ (Templates — Literally Buy an Airbnb clone for $300)Good Articles / Podcasts on Low code / no codeRyan Hoover: The Rise of No-CodePodcast: Going Codeless: Is this the way of the future?Forbes: The Low-Code/No-Code Movement: More Disruptive Than You RealizePicksJohn — Lighthouse Chrome Dev ToolsJP - https://github.com/kelseyhightower/nocode
undefined
Sep 7, 2020 • 55min

Breaking Into Tech 💻

Welcome to Iteration, a podcast about programming, development, and design.John's blog post on the topic PicksJP: Siema SliderJohn: Rough Notation JS
undefined
Jul 26, 2020 • 45min

🆆🆃🅵 Essential Abbreviations in Software Development

Welcome to Iteration, a podcast about programming, development, and design.This week we talk through the most common abbreviations in software. For a whole complete list and discussion — visit this link PicksJohn: TeladocJP: https://github.com/scenic-views/scenicLinks JP on TwitterJohn on Twitter
undefined
Jun 29, 2020 • 33min

Onboarding into a new codebase 👋

Today's topic:Onboarding into a new codebaseAs a new hire / contractor for a freelance projectFrom JP:Reviewing other people's PRs on a new codebaseSubmitting your first PRUnderstanding how data flows through the appI've found that the organization of the code and the quality of abstractions makes or breaks this pointRamping up complexity of feature stories that you can tackle. How do you get there?From John:First — Understand the domain, talk with team, read books, use competitor software, language in that domain.Then — Understand the softwareRead the Docs, all that you can get your hands onReview closed issues / tickets, try to understand the language /culture of the teamReview the tests, this is a good place to start if there is any, especially integration or feature tests that are higher levelFind the "God" objects if you can.Write docs as you go, great way to get it into your headOnboarding someone else onto a new codebaseFrom JPHiring contractors for a projectOnboarding new hiresReviewing new hires' pull requests **it's own episode maybe? Code Review?**How do you onboard someone else?I think domain context is importantFrom JohnSupport the advise given above! It's just the reverseFirst: Domain ContextThen —Provide DocsTestsSimple first issuePair on the onboarding Dev's first PR VS sink or swimTry to demonstrate what tools and process you use in a projectPicksJP: https://apps.apple.com/de/app/meeter-fast-call-initiation/id1510445899?l=en&mt=12John:Rails View ComponentsIt's a new pattern in rails to produce reusable front end "Partials" but more abstracted and re-usable.This pattern plus stimulus.js is really magic.
undefined
Jun 15, 2020 • 38min

The Soft Skills Episode 🍦

Welcome to Iteration, a weekly podcast about programming, development, and design.JP Intro — Hi, I'm JP and I am a full stack developer. Today, I am joined by John:John Intro — My name is John and I am a software developer for a home services startup.What are soft skills? Why are they important? Are they important?Wikipedia defines "soft skills" ...Soft skills are a combination of people skills, social skills, communication skills, character or personality traits, attitudes, career attributes, social intelligence and emotional intelligence quotients, among others, that enable people to navigate their environment, work well with others, perform well, and achieve their goals with complementing hard skills.tldr; people skillsHard skills, also called technical skills, are any skills relating to a specific task or situation. It involves both understanding and proficiency in such specific activity that involves methods, processes, procedures, or techniquesConversation is loosely based on this book, the author is famously kind of a dick. Doesn't mean there aren't some solid takeaways, using it as a framework for conversation.Link to summary of "Soft Skills"Another summarySection 1: CareerFew tips to improve your career:From SS: Specialize, don't generalize.From SS: "Fake it till you make it"JohnAlways be working on yourself: "Luck is when preparation meets opportunity"Meet lots of people, be helpful and friendlyDo a lot of interviews.Confidence and enthusiasm — "Being enthusiastic is worth 25 IQ points."JPThe importance of friendliness. How does this work for introverts?Recommended Career BooksLinchpinStartup of YouJP: Crucial ConversationsSection 2: Marketing yourselfFrom SS: See yourself more as offering a service and not as a employee.Less about Salary and work hours, more about the uniqe "Features and beniftis" you bring to the table, you solve problems, you are an investment not an expense.JohnBlog, be vocal — Share what you learn, don't be afraid to look dumb.Teach others when you canTake speaking and presentation gigs (Was a speaker at GA and got work out of it, you never know)Again — SpecializeJPI love this idea around you being a service. EAAS: Engineer as a serviceI have mixed feelings about marketing yourself. I go back and forth on whether or not I want a bigger online presenceSection 3: LearningFrom SS: "Learn you want? Teach you must."John:Be consistent. 1 hour a day for 12 days is way better than a single 12 hour day.Try to understand the concepts, not the syntax.Concepts and fundamentals you can take anywhere. Good domain design, testing, clean code. All these concepts work in any language / framework.JP:Deliberate practice. I just hammer concepts into my brain until it sticks.Honestly, just keep writing code but more importantly keep READING codeWhiteboard, talk about problems from a domain perspectiveSection 4: ProductivityFrom SS: FocusJohn: +1 (20% done isn't worth anything. 5 tasks 20% done, or 1, 100% done)From SS: Pomodoro TechniqueFrom SS: KanbanJohn:Getting Things DoneBreak down the work.80/20 — Pareto principleEat that FrogJP:I'm currently giving Pomodoro a shot. I'm trying to figure out how to effectively context shiftHow do you eat an elephant?Sections 5 and 6 — Financial and FitnessSection 7: SpiritFrom SS: power of positive thinkingFrom John:Mental space, day off, unplug sometimes.Confidence + enthusiasmJP:I could use some tips from this section...BONUS From John: CommunicationThis one probably goes at the top of my list.#1 — Learn to be a better writer.Book: On Writing WellTool: Hemingway EditorHeadline writing — Most important things firstLearn how to explain complicated topics. ELI5PicksJohn: NapsJP: Loom screen recording
undefined
Jun 1, 2020 • 51min

JavaScript Frameworks 🖼

Welcome to Iteration, a weekly podcast about programming, development, and design.This week — javascript frameworksWhat is a JavaScript Framework? How would you explain it?John:Concept of a framework, is essentially a collection of best practices and starting points.When you build a fence, you could literally cut down trees and make boards, make nails out of raw ironAt Lowe's the other day, they had pre-assembled fence sections. This is what a framework is.Some frameworks offer really prescriptive and complex components, others offer really basic ones. (2x4's vs pre-built fence sections)in JS — It's basically a pre-existing library and collection of JavaScript code you can use to do other things with.JP: wrappers around document.querySelector + some sort of state managementPrograming is all about abstractions —Shared abstractionsFramework vs LibraryLine is blurry here, example: JQuerry, lodash underscore are closer to libraries. These are more collections of useful utilities and functions. Frameworks are more comprehensive. Offer a more end to end solution for back end, front end or both.JP JavaScript Ecosystem is Frustratinghttps://www.zdnet.com/article/another-one-line-npm-package-breaks-the-javascript-ecosystem/This one line change in an npm package broke deploys for one of my sitesThe 4 most Popular Frameworks (in order of creation date)There are SO MANY JS frameworks, feels like new ones every day. JQuery:The "Original Gangster". Oldest and biggest project, not the most modern, still heavily used worldwide. Not really a "Framework" with modern JavaScript, it's not really needed, especially if you use one of these other frameworks, it's definitely not needed in my opinion.Github Stars: 53kInitial Release: 2006From JP: https://mootools.net/AngularGithub Stars: 60kInitial Release: 2010John: It's been years since I've worked in an angular project. It was a previous version of Angular, but it was close to writing HTML, using Vue reminds me of Angular at it's best.JP: Never bothered to touch it! I don't have any opinions on itReactGithub Stars: 148kInitial Release 2013John: I've written a good chunk of react native and react. I've never fallen in love. It's a lot of boiler plate, I don't like JSX and the whole thing just doesn't work the way my brain works. A lot of my projects are perfectly fine with simpler server rendered pages. So I generally don't work in it.JP: On the other hand, I love writing React - I guess as much as any Rails developer can love writing JavaScript. That's right, I said it, I'm a Rails developer.Vue.jsGithub Stars: 164kInitial Release 2014John: I really like Vue because you can just extend existing HTML elements. Handles the data binding and event handling for you. It's lightweight and be brought into all kinds of back ends. Really great for "sprinkles". Don't need a whole SPA but some drag and drop would be good here, or this chat interface needs live reloading.JP: Currently learning Vue and it breaks my brain a little. Let me tell you why...honorable mentionsMeteor / Ember / BackboneFrameworks of Frameworks:Next js — New up and coming —  BlitzGatsbtySails JSLast MentionStimulus (Mostly for Rails)Initial release 2019John uses heavily, it's like a lightweight Vue customized for Rails.Tips for Using a JS FrameworkJP: Learn Vanila JavaScript firstJohn: Go all inJP's Pickhttps://www.instagram.com/archipics.ig/John's PickGetting back to Basics Beginner JavaScript (Wes Bos Course)I'm halfway through a Beginner JavaScript course, 80% of it is really really easy, the other 20% is such good missing pieces.DestructingMethods in JS ObjectsUnderstanding Hoisting
undefined
May 25, 2020 • 48min

Tech in a Covid World 😷

Welcome to Iteration, a weekly podcast about programming, development, and design.JP LayoffsLet's talk about layoffs!https://techcrunch.com/2020/04/15/softbank-backed-opendoor-has-announced-a-massive-layoff-cutting-35-of-its-employees/600+ employeesI got laid off on my birthday! The response has been overwhelmingly supportive and I've talked to dozens of startups in the last two weeks. (It's been exactly two weeks at the time of the recording)Sometimes you have to realize how incredibly privileged we are to be in the tech industry. I can't imagine people in the food service industry, for example, getting the same kind of attentionCollab tools:vid streaming is hot nowhttps://github.com/jeanpaulsio/action-cable-signaling-serverJohn LayoffsC19 forced our company to extend our runway, laying off half our team.7 of 11 got laid offThis has been hard to adapt, created a lot of work and pushed out our timelines.Interviews?Phone Screens over a dozenLeads from personal network + spreadsheetsHot tip: If you are in high demand set up a calendlyHot tip: Block out time in your calendar so it's not wall to wall meetings30 minutes is bad 25 minutes and 55 minutesInterviews 4 or 5 technical interviewsState of techRestaurants with awkward appsJohn Bad IRS SiteThe new IRS website to get stimmy money breaks every single UI best practice. It’s a perfect case study usability 101Validations aren't until after submissionNot responsiveOnly supports firefox (Officially)Very strange validations - money with no coma or $ST vs Street with no previous notice.Reddit threadJP Government Websites are just kind of funny in generalI filled out the Census 2020 form yesterday (I know, I procrastinated)Why are the options in the form of questions?save for another convo? vvv Yea for sure — Going too long. Let's wrap Future TopicsPicksJohn - Notion Pro — Notion Examples - Progress bars, advanced formulas Dependent tasks. A lot of fun tips / tricks / hacks command + k for links!Shift + Enter for new lines JP -JP: Really cool PBS series - Crash Course Comp SciLinks + ReferencesJP's Action Cable Signaling Server RepoOpenDoor Layoffs announcement
undefined
Apr 27, 2020 • 44min

Hiring + Interviews 🤝

Welcome to Iteration, a weekly podcast about programming, development, and design.Article that inspired the episodeQuick notes from this article:problem statement: interviewing can be annoying because it's an interruption from deep workproblem statement: after you've done a ton, it can be boringtwo critical skillsets: attracting talent (making candidates want to work with you) + spotting talent (accurately assessing whether you want the candidate to work with you)then it goes on to talk about beginner, competent, proficient, and expert interviewersread this article to see where you are in both attracting and assessing talentContextHow many interviews have you conducted?JP: At 2 years of Opendoor, I have conducted somewhere between 30-40 interviews. I wouldn't consider this a lot, but my last 10 have definitely been an improvement from my first 10.John: Pre-tech I did around 50+ interviews. In tech I've done as well 30-40 interviewsWhat type of interviews do you conduct? Behavioral? Technical?JP: I've only ever conducted technical interviewsJohn: I cover mostly behavioral/cultural and cover technical as well.Take me through your interview process:what should a candidate expect if they were to be interviewed by you?JP: I set expectations really early on and give candidates a whole layout for the entire interview. The basic format for my interview is:quick intros, try to keep this to a maximum of: 3 minutesintroduction to the question + planning before execution: 5 minutespair programming: 45-50 minutesclosing questions: the remainderJohn: I always over-communicate and try to "do" as little as possible during the interview. I prioritize "Async" interviews as much as possible.More recent process:Job Listing Job listing with very clear compensation listedApplications Applicants Apply (150+ for last open position)Shortlist Pick the top 10 (or so) I am interested in ignoring name or email address (Hide the columns) and look at the objective experience, read their writing (because we are remote)Code Challenge Email that top 5-10 and offer $100 to do a code challenge, takes anywhere from 2-4 hours. Last time it was implementing an API, they get the $100 when they submit a PR for review. Again set expectations on the start date, role, compensation etc. Set expectations for a review. It's a small test to see how we work together.Async Code Review Sr Developer and I leave comments, ask questions about the implementation Async.Real-time interviews — Then pick the top 2-3 from that phase and do real-time interviews.Re-iterate the position, compensation and expectationsWe talk background, career goals and motivations for applying to this jobThey walk me through their code challenge, why they wrote it the way they did.Then I allow time for them to ask me questions about the position.What would it take for someone to pass your interview?JP: We have to fill out a form after we conduct interviews so there is some grading criteria. i.e. code quality, tests, communication, algorithm speed, etc. I try not to nit pick language specific, trivia-like things. For example, it doesn't matter to me if a candidate doesn't know off the top of their head the syntax of setTimeout if they've spent the last year coding mostly in Python.Things are obviously different for hiring a new grad vs. a senior engineer. The bar variesJohn: Core things I am looking for: effective communication (written and spoken), self-motivated individuals (managers of one), skilled learner, Very competent in at least one language or framework (not even my own stack).Hot tips / Things to keep in mindJPDon't let a candidate spin their wheels - try to unblock them. See what working with them would actually be like.JohnMy interview style is a bit different.Honest — Never set any kind of false expectation, be yourselfUnpretentious — No trick questions or techno-bableReal — Try to communicate and work with candidates as you would in the job.You'd never toss out a question "just to stump" a coworkerPicksJP: https://github.com/ayu-theme/ayu-vim - I've moved away from DraculaJP: https://whimsical.com/John: Book: Every Tool's a Hammer by Adam Savage — Yes, Mythbusters guy but also incredible maker and leader of technical teams building really complex thingsso many great similarities to tech.Planning, Working, Creativity, burnout, estimating,plus a whole chapter on types of glue and random stories from his special effects days.I've really dug this book, doing the audiobook, will be buying a physical copy.
undefined
Apr 20, 2020 • 1h 7min

CSS Frameworks 🏗

Welcome to Iteration, a weekly podcast about programming, development, and design.First, some fun questions:👍or 👎 on writing CSS?What do you love about CSS, what do you hate?To this day, what are some of the things you don't understand?JP: CSS Grid, Floats (kind of. I always forget what the clearfix thing is for)FrameworksWTF ?— Here is a set of components you can build, pre-defined styles, gives you a starting point. Pre-buit UI.Popular OnesBoostrap — Pre-defined class "Components" card shadowTailwinds — Much more like Tachyons md:flex g-white rounded-lg p-6Material UIFoundationAtomic CSS / TachyonsSkeletonPros / ConsTailwindPro: Using tailwind for side project. Wrote 0 cssTailwind components (Basically a better looking bootstrap)Con: Output is derivativeJP's argument — you could design anything you wantedIt's more of a function of what the docs provide.Pro for Tailwind — Tailwind doesn't come with baked in componentsHow do we overcome derivative sites?Could be toolsBut I think it's more about pushing the design side moreThinking in terms of "Bootstrap Components"Think more first principleStrong designer to push you too break the bounds of these frameworksFrameworks - Pros and Cons of EachBoostrapJohn: My top choice. I know it better than any other framework. I don't think it's "The best"TailwindsTachyonsJohn: Worked with it a lot, had some client projects use their own fork. Really powerful but it starts just feeling like "inline styles" SO MANY Classesbg-dark-green ba bw5 dshadow2 br2 pb3It's like ok ok calm down.Material UISkeletonNice for quick projects. Super lightweight. Our agency site was built in SkeletonImplementationCustomizing itTailwindExample: H1's — identifying patternsTake a set of classes and use the "apply" functionSingle set to define your custom classes.You throw those into a single class called "Heading"BootstrapStarts with customizing variablesThese variabels are used in thePicksJP: https://thoughtbot.com/blog/running-specs-from-vimJohn:"Copy css" from sketchCss in FigmaRe-pick: https://refactoringui.com/ (Same guy behind Tailwind)Referenced: https://a.singlediv.com/

Get the Snipd
podcast app

Unlock the knowledge in podcasts with the podcast player of the future.
App store bannerPlay store banner

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode

Save any
moment

Hear something you like? Tap your headphones to save it with AI-generated key takeaways

Share
& Export

Send highlights to Twitter, WhatsApp or export them to Notion, Readwise & more

AI-powered
podcast player

Listen to all your favourite podcasts with AI-powered features

Discover
highlights

Listen to the best highlights from the podcasts you love and dive into the full episode