The Function Call
By Austin Gil
The Function CallDec 18, 2020
41 - A deep dive into file uploads
In this episode, we talked about a deep-dive series Austin has been working on, all about file uploads. We looked at file uploads in HTML and JS. Then moved into the backend with Node.js. We discussed `multipart/form-data`, "Chunks", "Buffers", and "Streams". After that, we discussed where to store files like Object Storage and S3. And briefly discussed deliver and security with a CDN.
Links:
- Austin's "File Uploads for the Web" series
- HTML form element
- HTML file input
- Fetch API
- Streams
- Buffer
- formidable
- Austin's blog series all about file uploads
- Object Storage
- Akamai CDN
- Austin's "6 Steps to Improve HTML Images For Users & Developers" blog post
General recommendations and accolades to unrelated products/services:
- Austin - Stick-on credit card holder for phones & Magnetic phone mount for car vents
- Grant - Bike fitting - do it so you arent in pain
40 - Looking back at 2022 and forward to 2023
It's been a minute since our last episode so we had to spend some time catching up on things. We looked back at 2022 and spent some time sharing our hopes for 2023. It was a nice chat to get back in the swing of things heading into the year.
39 - Edge solutions, HTML can access user's camera, & Grant has a power trip
In this episode Austin shares some cool things he's learned about recently. Edge compute can fix performance bugs in Apache, and the HTML capture attribute is a handy way to open up the user's camera. Grant goes into his new role where he gets to control TypeScript and ESLint rules at his organization; the ultimate power trip.
Links:
- Fixing Obscure Bugs: Apache, GZip, ETags, & Edge Compute
- TIL: You Can Access A User’s Camera with Just HTML
- JS Party - Smile! HTML can access your camera
- TypeScript expect error
Love:
- Grant - Star Trek: Strange New Worlds
- Austin - Too Good To Go
38 - Reminiscing on Remix
In this episode, Austin shares about his recent experience with Remix.run, a full-stack JavaScript web framework. We discuss what it is, what it's not, some things we like, some things we don't, and how you can think about it. TLDR: It's pretty cool. In fact, it even got Austin to write React.
It was a very serious chat (sorry, no bloopers).
Appreciations:
- Grant - Taking time off
- Austin - Watermelons & Stranger Things
37 - Hold the mustard. This episode is moslty catch-up.
In this episode, Grant and Austin do some catch up on what’s been going on since the last call. Grant’s goes into all sorts of interesting stuff including Static Site Generation, working on design systems, migration from enterpriseGitHub to GitHub cloud, managing several different code bases with monorepos. Austin is mostly just happy to hear Grant talk about his day and shares some fun changes sing Akamai acquired Linode.
Shoutouts:
- Austin - Owning your own domain name
- Grant - Having your own email. Star Trek: Picard
36 - Chatting about AgnosticUI with Rob Levin
In this episode Grant and Austin are visited by special guest and creator of AgnosticUI, Rob Levin. Rob shares the story behind AgnosticUI, how it got started, why the world needs it, and some interesting bits into how it all works. We also discuss some more general topics around design systems, CSS, open source, accessibility and more. He is a great guy with a very interesting project, and we think you should check it out.
Links:
- AgnosticUI - https://www.agnosticui.com/
- Blog - https://developtodesign.com/
- A11y Dialog - https://a11y-dialog.ne
- Rob’s Illustration Work - https://roblevin.myportfolio.com/work
Shout outs:
- Rob - Vuetensils, Traversy Media's CSS Grid Layout Crash Course
- Grant - Feit Electric smart power strip (also their whole line of other smart bulbs are great)
- Austin - Raised by Wolves Season 2
35 - Outsourcing Woes & Questions About Gatsby, React, and TypeScript
In this episode Austin gets into it with Grant about working with agencies, and some of the pitfalls related. After a bit of venting we actual come around to some interesting content related to Gatsby, React, and working with TypeScript.
We cover:
- Merging className between parent and child components
- Using PropType vs TypeScript
- Which types to use for SVGs (JSX.Element, ReactNode, ReactElement)
- Inheriting type definitions for wrapper components
Links:
Shout Outs:
- Austin - Rescue.org donation & Elden Ring
- Grant - Cryo-cuff
34 - Newbie coding skills you can nail
Grant wanted to share some things he wish he knew as a beginner that would have made his career easier. His tips boil down to:
- Communication
- Research
- Problem solving
- Language specifics dont matter
- Learn to read code
- Get good at being wrong
Shout outs:
- Austin & Grant: freeCodeCamp.org
33 - Progressive Enhance Forms With JavaScript
Do you like progress? Well too bad because we’re using 90s technology until otherwise required!
In the episode, Austin schools Grant on why building forms to work with and without JavaScript matters, how you can do it, and some tips and tricks if you want to do it yourself. It’s one of those technical deep dive episodes that we like to mix in here and there and we get into native behavior vs JS, accessibility, UX, and more. We hope you enjoy.
Outline:
- Why it matters
- Default behavior
- Validation
- Validity API
- Different types of inputs
- Accessibility
- UX improvement
- Backend
- Detecting native vs fetch requests
Links:
- Why your website should work without Javascript.
- JavaScript isn’t always available and it’s not the user’s fault
Shout outs:
- Grant - Cloud/Lambda/Serverless functions.
- Austin - Costco
32 - A Look Back At 2021 & A Look Forward To 2022
Isn't it obvious? We did the same thing everyone else is doing this time of year. We talked about recaps and highlights of 2021, and then some predictions and resolutions for 2022. Spoiler alert! 2022 is going to be a good year :D
Shou touts
- Austin: Volunteering
- Grant: theproscloset.com
31 - 99 Problems But A Desk Aint One (Office setups)
Ever wondered what sort of equipment Austin and Grant have for their office setup? No? Well, we’re going to tell you anyway. We covered desks, chairs, monitor arms, peripherals, audio/video stuff, and more. It’s just as boring as it sounds, but we hope you enjoy it nonetheless. Hey, they can’t all be bangers.
Links:
- Ikea standing desk
- HisoHu Electric Standing Desk
- Standing desk converter
- Autonomouse ErgoChair Pro
- Ultrawide monitor
- WALI Dual Monitor Arm
- Master Mouse 3
- Alice Keyboard
- Kinesis Freestyle2 keyboard
- Shure SM-7B Micorphone
- Samson Q2U Microphone
- Blue snowball iCE Microphone
- Dan Clark Audio Aeon2 closed
- Cloud Lifter
- Radial Workhorse
- Radial Mic PreAmp
- Drawmer DS101 noise gate
- DBX 560a compressor/limiter
- Sony RX100 camera
Shout Outs:
- Grant - Commit Equipment, dope af MTB jerseys with POCKETS
- Astin - Gorilla Ladders
30 - Getting Abstract with Abstract Syntax Trees
Austin’s been working a lot with build tooling lately. In this episode, he takes Grant on a bit of a journey into the world of build tools and ASTs, or Abstract Syntax Trees. We talk Webpack, Rollup, Vite, Babel, and Acorn JS.
Links:
Shout Outs:
- Austin - Tucker and Dale vs. Evil & Great British Bake Off
- Grant - Egghead.io
29 - Burnout, Islands Architecture, Rollup, and More
In this episode, Grant and Austin do some eggnog math before chatting about burnout, ES Modules, building plugins for different build tools, interesting thoughts around island architecture and Astro. We went all over the place. Hope you enjoy the journey.
Links:
Shout outs:
- Grant - Jason Lengstorf on Egghead
- Austin - Better Uptime
28 - Grant Called This One A "Garbage Can Episode"
In this episode, Grant and Austin sit down to chat about the latest tech news that's on their minds. We covered a whole slew of things such as:
- Trying to make magic with TS
- Cloudflare taking swings at AWS
- Dark mode vs light mode
- Browser extensions (scary)
- VSCode extensions (also scary)
- NPM postinstall scripts (extremely scary)
Shoutouts:
- Austin:Cloudflare
- Grant: bike fitting
27 - Managing Shared Dependencies Across Projects
In this episode, Grant and Austin discuss some of the trials and tribulations of maintaining the same dependencies across multiple projects. Some topics we cover are Package Registry (NPM/GitHub Packages), Monorepos, Framework-specific tooling, Learna, and Git Submodules.
Links:
Shoutouts:
- Austin - The Alchemist by Paulo Coelho
- Grant - Tape measures
26 - Developing a Senior Engineering Mindset with Amal Hussein
In this episode we had the pleasure of speaking with Amal Hussein about the sorts of things developers can do to level up later in their careers. The game changes as we progress, and she is a fantastic player. We discuss books to read, what to focus on, why Twitter followers means nothing, and everything wrong with Silicon Valley.
Links:
25 - The Data Fetching Landscape
In this episode, we’re getting the band back together to talk about HTTP requests. We cover a little bit about what they are, go into the options we have for making HTTP requests with JavaScript, and explore some libraries that make life easier on us.
Links:
- XMLHttpRequest
- Fetch
- Stale While Revalidate
https://web.dev/stale-while-revalidate/ - jQuery
- Axios
- Node-fetch
- cross-fetch
- isomorphic-fetch
- Got
- SWR
- GraphQL
Shoutouts:
- Grant - Tow hitches
- AJ - Professional Movers
- Austin - Sarah Scribbles
24 - The Drawbacks of Experience
Experience makes you a stronger developer, except when it doesnt. Many in the dev community accept the idea that a lack of experience could be a liability on a project, however in a similar way someone with experience can have mental blocks as a result of that experience. We discuss in this episode how experience can influence decisions in a negative way.
Links:
Shoutouts:
Ep 23 - Catching Up on New Things
In this episode, Grant and Austin catch up on some cool new things around web development. Specifically, Vite and Vitedge, a new full-stack framework for "Edge-side rendering". Sparked by that coolness, we explore other rendering patterns such as strict server-side, client-side, static sites (build time), lambda functions, and more. Finally, we end with a silly discussion of frameworks vs libraries.
Links:
Shoutouts:
- Austin - Seek by iNaturalist
- Grant - shotgun child seat
Ep 22 - Let’s Talk About the Environment (Variables)
In this episode, Grant and Austin talk all about environment variables. We cover the difference between private and public variables, how to keep them secure, keeping them in sync across teams, and where to store your precious precious variables. They may be keys, secrets, or just configuration strings, but hopefully this chat sheds some light on the subject for you.
Reference `dotnev` from Jest config:
// jest.config.js
module.exports = {
setupFiles: ['dotenv/config'],
};
Reference `dotenv` from NPM script:
"jest": "node -r dotenv/config ./node_modules/.bin/jest",
"knex": "node -r dotenv/config ./node_modules/knex/bin/cli.js",
Links:
- dotenv
- Vue-cli
- Create react app
- Doppler
- Hashicorp Vault
- GitHub Actions secrets
- Netlify build variables
Shoutouts:
- Austin: Strava and OMG, SVG Favicons FTW!
- Grant: Also Strava
Ep 21 - Runtime Type Checking. You Probably Don't Need It
Grant’s adventure into why compile time type checking isnt enough. Do you have a reliable data source. Is it really, really reliable? If not, you might like runtime type checking! Sometimes rapid parallel development is painful, solve that pain with runtime type checking! Austin and Grant discuss what problems lead to the development of runtime type checking apollo hooks. They cover the initial problem, the attempted solutions, and the process of developing the structure that allows this set of hooks to work.
Links:
Shout-outs:
- Grant: Runtypes, Ski Mask the Slump God, New Bugati by Lil Gnar
- Austin: Smart AudioBook Player
Ep 20: We Like Getting PEGD and Think You'll Like it Too
We start out this episode with a nice little “Grant Rant” section, then slowly transition into PEGD. If you never got PEGD before, give this episode a listend, and you might get PEGD after.
What is PEGD? Well it's Progressive Enhancement & Graceful Degradation, of course.
It’s pretty sweet. You should try it some time.
Links:
- Screenity by Alyssa X
- @Supports https://developer.mozilla.org/en-US/docs/Web/CSS/@supports
- https://modernizr.com/
- Austin’s HTML boilerplate
Shout Outs
- Grant - security cameras
- Austin - Power tools
Ep 19 - Resetting & Getting Back To Normal (with CSS)
In this episode Austin introduces Grant to the wonderful world of CSS resets and normalizers. We discussed what they are, why you might want one, and what makes them different from a library/framework. Austin had some technical difficulties at the end, but it was a fun show regardless.
Links:
Shoutouts:
- AJ - Hammocks
- Grant - Take time off work
- Austin - bedrocss and Style Check
Eb18 - The Why'sest Programmers
Why did it break? Why does it work?
In this episode, Grant takes us on a Grant Rant about why the "It works and I have no idea why" meme is troublesome. How this erodes communication, confidence, and leads to a deeper sense of imposter syndrome. Austin goes along for the ride, mostly just for comedic value.
Shoutouts:
Ep17 - Semantics: A Meaningful Conversation About HTML
In this episode, Grant and Austin have a MEANINGFUL chat about markup, but it was all just semantics. We covered a wide range of topics from HTML to accessibility to JSON-LD, and more.
Links:
- Vue dynamic components
- How to Build HTML Forms Right: Semantics
- JSON-LD
- schema.org
- CSS Tricks - display: contents
Shoutouts:
- Austin: Raised By Wolves
- Grant: Ground Keeper
Ep16 - Go raw, or use a wrapper? Advice for Dates (in software)
In this episode, Grant and Austin discuss some recent issues working with dates at work, advice about working with time and dates in JavaScript, what libraries we currently run with, and the future of time in the browser. We also share some takes on storing dates in databases, and the native HTML date input.
Links:
Shoutouts:
- Grant - The Texas power grid
- Austin - Lovecraft Country
Ep15 - The Interview About Interviews with Ben Katz
In this episode of The Function Call, Austin, Grant, and AJ get a visit from special guest, Ben Katz. Ben shared lots of valuable insights about the interview process, both from the interviewer and interviewee side. For interviewees, we went into tips on getting a job, dealing with LinkedIn, and some things to look for and/or things to avoid. On the interviewer side of things, we talked about the lack of clarity on needs, how resumes are inherently boring, the fact that screening is usually arbitrary and lead to lots of false negatives, and problems with the interview process in general
Links:
Picks
- AJ: Amy’s burritos
- Grant: Full Face Helmets
- Ben: Mechanical watches
- Austin: Cracking the Coding Interview
Ep14 - Analytics: This Title Contains 3rd Party Cookies
In this episode of The Function Call, Grant, AJ, and Austin sit silently in a room and just watch you buy your fifth tub of guacamole. Just kidding. We're talking all about analytics. We get into different types of analytics, various ways of implementing them, and some opinions of why we love and/or hate them. This was a very fun topic because it's so relevant today for balancing privacy and performance against business goals.
Links:
Shoutouts:
- AJ: Epsilon Notes
- Grant: AdBlock Plus
- Austin: Merino wool 🐑
13: Places To Store Your Front End Data
Like shaving yacks? Well this is the episode to listen to! We discuss our pointless opinions about programming and decide once-and-for-all "tabs vs. spaces" and all sorts of other things that don't matter.
TLDR:
- Is html a programming language; NO
- Single vs double quotes vs backticks; SINGLE
- Variable naming case; follow conventions? YES (per project/team)
- Semi colons; YES (but automate it)
- Curly Braces: 1TBS
- Dangling commas, YASSS!
- CSS order: "have structure"
- Ternarys: NO
Shoutouts:
Ep 12 (Fixed): Whose Code is it Anyway? Pedantic Opinions About Tech That Really Don’t Matter.
In this episode we covered a whole gamut of client side options for storing data. Here's a list of some of the things we talked about:
- In memory storage ("Throw it on the window" - Grant)
- sessionStorage
- localStorage
- IndexedDB
- Cookies
- Service Worker
- URL
- FileSystem API
Links:
https://localforage.github.io/localForage/
Shoutouts:
- Austin - Sleep stories by Wysa
- Grant - sleep train your baby.
11: The State of the Web
In this episode, Grant and Austin share their thoughts on the state of the web. We cover topics ranging from operating systems to browser features to modifications in the language.
No shoutouts this time. Predictions instead.
Ep 10: Ambidextrous development (Grant made it up)
In this episode, Grant and Austin talk about the idea of ambidextrous development, or the ability to translate between various frameworks, libraries, and languages. Well covered "stack blinders", copying code from StackOverflow, and freeing yourself from a framework limited view of development.
Background: Grant suggested this topic after seeing this tweet.
“I'm working on some ecommerce components that would play nicely with use-shopping-cart right now. Anyone have a good resource on making ACCESSIBLE side panels to slide from the right? They can't be keyboard selected when off-screen”
https://twitter.com/Dayhaysoos/status/1307843621404790784
Links:
Shoutouts:
- Grant: Riding bikes.
- Austin: NPR podcasts
Is it CMSs, CMS's or CMSes? Content Management Systems with Stuart Runyan
In this episode, we get a guest visit from Stuart Runyan, VP of Engineering at Zesty.io. Aside from his insights, we fumble our way through explaining what a content management system is, different types of CMSs, why they're awesome, when they're not so awesome, and what to look for when shopping for one.
The JWT show. Alt title: What the heck is a "joot"?
In this episode, Austin shares everything he knows about JSON Web Tokens (JWT). Grant and AJ come along for the ride as we get into authentication vs. authorization, sessions, databases and more.
Breaking into Tech Twitter with Sarah Shook
In this episode, Austin sits down to chat with Sarah Shook all about her experience breaking into the Twitter tech scene. We covered tips on growing an audience, how to make friends, can Twitter help with your job search, and does it make you a better developer? Sarah is a very nice person and was a great guest.
Thocks > Clacks: Our thoughts on mechanical keyboards.
In this episode, our senior mechanical keyboard expert, Grant, tells us all about mechanical keyboards. A bit of history, a lot about different options, and we go into what we like or dislike about keyboards.
Grant schools us on CSS-in-JS
In this episode, we take a whirlwind tour of CSS-in-JS, lead by our trusty pilot, Grant. We get an overview on what it is, why we need it, and what some good options are.
** spoiler alert ** Austin does not approve.
What do you call a restaurant with no waiters? Serverless!
In this episode, we talk about serverless architecture. What it is, how it works, and what we think about it.
** Spoiler alert ** Grant doesn't like serverless.
SSR: You mean it's not Sweet Sticky Raspberries!?!?!?
Sitting down with Austin and Grant to talk about Server Side Rendering (SSR). We covered some of the benefits, some of the myths, and different ways to can accomplish it.
Stacks: Where Pancakes & Technology Meet.
In this episode, we walk through some of the tech stacks we're currently working with, what we would pick today if we were starting a greenfield project, and what technology we are interested in but have little to no experience. Give it a listen and let us know what your favorite tech stacks or pancake stacks are.
Origin Stories: Get to Know the Crew
We walk through a little history of our developer journeys. Where we were before programming, how we broke in, and what we're doing today. Give it a listen and get to know us a little better.