
The Function Call
By Austin Gil


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

37 - Hold the mustard. This episode is moslty catch-up.

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


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


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

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

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

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.