Using Lambda Function URLs to Collect Form Submissions
April 10, 2022 • AWS, LambdaThis past week AWS announced Lambda Function URLs, public endpoints you can enable for Lambda functions to allow them to be invoked. These…
Jason Butz is a software engineer and cloud architect with a strong focus on JavaScript, TypeScript, Node, and AWS. Jason has a love for open-soure software and a passion for building scalable, secure, and reliable applications.
This past week AWS announced Lambda Function URLs, public endpoints you can enable for Lambda functions to allow them to be invoked. These…
I’ve noticed people trying to return HTTP status codes from AWS Lambda functions when those functions are set up to receive events from SQS…
A coworker of mine recently was having issues with calling an AWS API Gateway he had deployed. He was getting responses but no Lambda…
Spotify’s Failed #SquadGoals
Remember those super cool videos from Spotify on how they set up their agile teams? The ones that get you all…
My favourite Git commit
It’s worth it to put some effort into git commit messages, especially when the change is truly consequential. This…
All Pluralsight Content is Free in April
Pluralsight has opened up its content for free in April. I’ve used their videos in the past and…
Ready for changes with Hexagonal Architecture
An internal development group was tasked with building an application that would touch a wide…
GraphQL In Action: Introduction
GraphQL has been gaining a lot of popularity in recent years, and some of that for good reason. Instead of…
Amazon and commercial open source in the cloud: It’s complicated
The war between open source and Amazon/Insert Large Cloud Corporation Here…
Best Practices for Secondary Indexes with DynamoDB - CloudProse
This is an excellent overview of AWS DynamoDB Secondary Index best practices…
Supercharge your command line experience: GitHub CLI is now in beta
If you work with GitHub and are frequently working in your terminal you…
Conference Talk Proposal Examples
Speaking at conferences is a great way to help your career, it gets your name out there and helps you…
Clean Code concepts adapted for JavaScript
Every example I can remember in Clean Code was in Java. That’s not necessarily an issue, but it…
No, dynamic type systems are not inherently more open
There is a battle between static and dynamic typing in the programming world, and the…
From 15,000 database connections to under 100: DigitalOcean’s tale of tech debt
Tech debt can be a nasty thing, but when the scale of your…
Deming’s Rules of Management and Agile Methods
This article lists out W. Edwards Deming’s 14 key principles for transforming business…
Beware SAFe (the Scaled Agile Framework for Enterprise), an Unholy Incarnation of Darkness
I’ve recently started on a project that is using…
It’s been another one-article kind of week.
Peacetime Productivity, Wartime Productivity
When you have room to breathe and things are calm…
I started a new project this week so it’s been long and I’ve been busy. So here’s one good solid link.
The Amazon Builders’ Library
There…
The Relationship Between Modularity and Polymorphism
How much of your Object-Oriented theory do you remember? I don’t generally remember…
Addressing Technical Debt
Let’s talk about technical debt. You have it, I guarantee it. Maybe you’re lucky and it isn’t much, but it is…
Technical Considerations to Help Scale Your Product
It’s important to ensure you “right-size” your application. Scaling it to be too big too…
How To Maximize Value at Tech Conferences (as an Introvert)
Conferences can be nerve-wracking and draining for a lot of people. I know they…
Rules of Thumb for Software Engineering
There are plenty of great sources for details on programming guidelines, but it takes a bit of time…
Don’t lead by example
The title is a little misleading, it’s not that you shouldn’t lead by example. It’s that you need to chill out, set…
Hacktoberfest presented by DigitalOcean and DEV
Hacktoberfest is here! Contribute to the open-source community during the month of October…
Decoupling Technical Code from Business Logic with Hexagonal Architecture
When building an application you want to try and keep your…
Don’t get locked up into avoiding lock-in
If I had to select a single article to send out, it would be this one. A lot of people get worked…
Jakarta EE 8: The new era of Java EE explained - Red Hat Developer
I’ve always been a bit fuzzy on the alphabet soup that is Java, but I’m…
React Hooks Mini Crash Course
React Hooks have been out for a bit now, but I haven’t had the chance to work with them or sit down and learn…
Composing better emails
No matter how much you like your chat application, you probably are still sending a lot of emails. Take the time and…
Get your work recognized: write a brag document
Have you ever been asked for a list of what all you accomplished in a given time period and…
Two Good Practices Agile Says You Don’t Need - DZone Agile
There isn’t much consistency in Agile, just the principals. Beyond that, it is…
Why We Need To Talk About Burnout In The Tech Industry
Burnout seems to be a common thing in the technology industry, but that isn’t healthy…
The Evolution of Comcast’s Architecture Guild
Software architecture can get tricky in a large organization. You could have every team do…
Object-Oriented Programming — The Trillion Dollar Disaster 🤦
This is certainly a divisive article, but it lays out a pretty good argument…
UK ISP group names Mozilla ‘Internet Villain’ for supporting ‘DNS-over-HTTPS’
Mozilla is adding DNS over HTTPS to Firefox, and it’s not…
Firefox Will Give You a Fake Browsing History to Fool Advertisers
Tired of all those ads following you around the internet and being super…
Up your Git game and clean up your history
If you use git for version control (which you probably do if you are doing any kind of version…
I thought I could live without iMessage — and I was wrong
This article isn’t as technical as many are, but I went with it because it is more…
Assessing Your Options for Real-Time Message Buses
Today data busses and event streams are being needed more and more to handle the amount…
Microsoft launches React Native for Windows
React Native allows you to build native, or near-native, iOS and Android applications with React…
Trans-inclusive Design
You hopefully remembered timezones when building your application, you may have even remembered to support more than…
Announcing Microsoft Web Template Studio
Microsoft has announced a new extension for Visual Studio Code called Web Template Studio. It’s…
Microsoft has some great resources around software architectures and modern application architecture. I found these when looking for a good…
Tinder’s move to Kubernetes
If you are interested in Kubernetes or running applications using containers this article is worth a read…
Today I was attending Indy.Code() and I attended a single talk that I think will make the entire time at the conference worthwhile. The…
Why software projects take longer than you think – a statistical model
Estimating software projects is hard and the bigger they get the…
Naming Conventions Do’s and Don’ts
Your class, function, and variable names matter. If you have read Clean Code, Pragmatic Programmer, or a…
Enriching Event-Driven Architectures with AWS Event Fork Pipelines
Event-Driven architectures are a popular way to deal with applications…
5 steps for Disagreeing Effectively
Ever strongly disagreed with something, tried to push back, and gotten shut down? I have. You can’t win…
Let’s Encrypt and certbot are wonderful and make it easy, and cheap, to get SSL certificates setup. But sometimes your application or site…
Cloud Programming Simplified: A Berkeley View on Serverless Computing
I haven’t read the paper referenced here, but it is something I very…
Principles of Modern Application Development
This is a large article, but it is tackling a large topic: modern application development. They…
OpenAI built a text generator so good, it’s considered too dangerous to release
OpenAI is a non-profit artificial intelligence research…
Ride the Serverless Wave with DigitalOcean’s One-click Droplet
Do you want to take advantage of serverless technology but not deal with…
Understanding Database Sharding
This article doesn’t focus on one database technology in particular but instead focuses on the theory of…
What’s New in ES2019: Array flat and flatMap, Object.fromEntries
ES2019 has been finalized! Prepare yourself for a small handful of new…
How to Rewrite Your Bedrock Application While Remaining Operational
It’s tough to get buy-in that your whole application needs to be…
Big Win for Web Accessibility in Domino’s Pizza Case
I didn’t expect I would ever include an article from a law office, but here we are…
18F Methods
Design isn’t all about “making it look pretty”. Design is about making something usable and easy to look at. This site is…
Mother of All Breaches Exposes 773 Million Emails, 21 Million Passwords
There has been a large dump of email addresses and passwords and…
Amazon DocumentDB
AWS has released a new database service called DocumentDB that is compatible with the MongoDB 3.6 API. This new product…
Infinite Data Structures In JavaScript
This is an interesting exercise in iterators, generators, and general data structures and is worth a…
Microsoft Edge: Making the web better through more open source collaboration
Microsoft announced that they will be contributing to Chromium…
I have a freelance project I’ve been working on that needed to be setup to allow tasks to be retried automatically. The application depends…
Managing Kubernetes Just Got a Lot Simpler
Another cloud provider has entered the managed Kubernetes cluster arena. DigitalOcean opened…
In a recent project I needed to collect the output from a process that was occurring on the server and output it to the user on the frontend…
Simple and Easy Mentorship with a Mentoring Agreement
At work, we have a concept called “Managing Consultant”. Everyone has one and they are…
Cloud Diagrams & Notes
This site has a cool collection of graphics and cheat sheets for different aspects of Amazon AWS. A lot of them look…
The State of JavaScript 2018
The 2018 State of JavaScript report has been released. I haven’t dug through the results but there are always…
Simple Git Rebases
I’m tooting my own horn here, but this is an article I wrote that I felt was especially helpful. Git rebases get a very…
Introducing reCAPTCHA v3: the new way to stop bots
Google has announced their latest version of reCAPTCHA. This time it is an API that…
The Illustrated TLS Connection: Every Byte Explained
Have you ever wanted to really understand TLS? I mean really understand it? TLS is used…
MODALZ MODALZ MODALZ
Modals can be a divisive subject when building applications. This site gives some different options and advice around…
What’s a senior engineer’s job?
This is a nice opinion article talking about what is and isn’t a senior software engineer’s job. I do have…
Kubernetes: The Surprisingly Affordable Platform for Personal Projects
Kubernetes is an open-source container-orchestration system and has…
Inside look at modern web browser
This is the first of a four-part series (all four parts are out) that provides a view into the…
Understanding the Difference Between CI and CD
Continuous Integration, Continuous Delivery, and Continuous Deployment all mean different…
The State Of JavaScript 2018
The State of JavaScript 2018 survey is out. It can take a while to fill out, but it can do a great job taking…
Strategies for implementing user authentication in serverless applications
Authentication should always involve some deep thinking, you want…
Using the React DevTools Profiler to Diagnose React App Performance Issues
The React DevTools received an update recently that added a new…
Serverless Best Practices – Paul Johnston – Medium
Serverless architecture has been around for a bit now so it’s important to know the best…
Setting up constants via proxies
This is not a long article, but it is a great example of how you can use the Proxy class in JS. It also…
Removing Babel’s Stage Presets · Babel
Babel has been making a lot of changes recently with v7. One of the newer changes is removing the ES…
How we scaled nginx and saved the world 54 years every day
Cloudflare handles a large chunk of internet traffic between DNS and CDN features…
Logging Activity With The Web Beacon API
Sometimes your app has an error that keeps happening for the user, but you can’t figure out what is…
Here’s the final nail in the coffin of open plan offices
This research may “put the final nail in the coffin” for open office plans, but…
VS Code Can Do That?
I’m a big fan of VS Code. This site showcases a lot of features and extensions that you may not know about.
Using API Gateways to Facilitate Your Transition from Monolith to Microservices
Transitioning a monolithic application into a collection of services is quite the challenge. One often overlooked tool to help with that migration is an API Gateway. This article goes through some of…
The State of Developer Ecosystem 2018
JetBrains has recently released their “State of Developer Ecosystem” report. It’s something…
Don’t Use The Placeholder Attribute
This article makes a strong case as to why the placeholder attribute added to input elements in HTML…
UTC is Enough for Everyone, Right?
Read this, even if you ignore everything else
One of the fastest ways to gauge a developer’s experience…
How Git Changed The History of Software Version Control
I remember the days before Git when Subversion was the main VCS. It worked just fine…
How to display a “new version available” of your Progressive Web App
Wouldn’t it be awesome to be able to easily let your users know when a…
DRY to the point of WET yak shaving
DRY is a great principle, but it is just that: a principle. This article does a good job of going…
CSS Grid Builder
This is a very cool tool that makes building CSS grids super easy.
Tips for High Availability – Netflix Technology Blog – Medium
When it comes to high availablity you know Netflix knows what they are talking about. If you have been a subscriber long enough you’ll know they have always been pretty good, but have gotten even better in recent years. This article goes through some tips from…
In most cases, you can assume one character in a string is 1 byte, but that is only in most cases. How many bytes do you think ü
is? It turns…
A Gentle Introduction to Prepack, Part 1
Prepack is a tool that optimizes JavaScript. It’s still in early development. This article is quite…
The Eponymous Laws of Tech
This is just a fun collection of all those laws and such things you find used in tech frequently. Occam’s Razor…
Testing Strategies for React and Redux
Mozilla recently ported the Firefox extensions and themes website to React and Redux. This article…
Mario Kart: CSS
This is just plain cool. It’s an article about creating a MarioKart-like interface, that is interactive, with just CSS.
Designing very large (JavaScript) applications
This article is more or less a transcript of a talk that was given at JSConf Australia by Malte Ubl, from Google. It goes through a lot of the decisions he’s made…
A nice feature of tools like create-react-app, angular-cli, webpack, and many others is the ability to reload your application when you make…
Angular 6 wants to be smaller, faster and easier-to-use
I recently started trying to learn Angular. The documentation is good, there are…
React Lifecycle
It’s only a tweet, but it is a very handy visualization of the React component lifecycle.
Environment Settings in JavaScript Apps
This article provides a nice overview of the common methods to handle the environment specific…
A blockchain in 200 lines of code
The idea behind blockchains isn’t that complicated. I like to think of it has a verifiable linked list…
A Practical Introduction to Container Terminology
This is a long article, but it’s worth it to get the terminology for containers if you’re…
#DeleteFacebook is still be going strong, and I have another Greasemonkey script for those who can’t delete their entire Facebook just yet.
…
#DeleteFacebook is getting a lot of momentum and I would love nothing more than to delete my Facebook. I haven’t really even been using it…
Stack Overflow Developer Survey 2018
StackOverflow’s 2018 developer survey results are out. It’s a lot of data and perusing it was…
The real cause of large DDoS
This past week GitHub announced that it was the target of a massive DDoS attack. These kinds of attacks are…
JavaScript Pipeline Operator | MDN
There is a proposal to add the pipeline operator to JavaScript. The pipeline operator would make…
Phaser
If you’re looking to make in-browser games you might want to take a look at Phaser. It’s a 2D game framework written in JavaScript.
We’re nearing the 7.0 Babel release. Here’s all the cool stuff we’ve been doing.
A new version of Babel is coming, and you’ll need to make some changes to the packages…
WebAssembly Studio
Mozilla created an online IDE for building simple WebAssembly apps in C or Rust. It’s a lot of fun to play around with…
Let’s make multi-colored icons with SVG symbols and CSS variables
Icon fonts, like Font Awesome, are great but they don’t allow you to have…
Decouple Business Logic using Async Generators
Generators are a newer feature to JavaScript and they can provide you with a lot of power…
Asynchronous JavaScript: Async/Await Tutorial
Asynchronous JS with async/await is easier to teach than Promises and yields even cleaner…
2017 JavaScript Rising Stars
This is a breakdown of some of the more popular JavaScript frameworks and tools based on stars on GitHub
Introduction to modern network load balancing and proxying
This article covers load balancers and proxying in great detail. It is a longer read, but…
Spectre and Meltdown have been in the news lately, in addition to OS manufacturers browsers are attempting to mitigate the issue. It is…
8 Best Practices for Perfect CSS Documentation
Documenting CSS is totally a thing, and it gets more important as the size of your…
Speed up Your Node.js App with Native Addons
Node’s optimizer can do a lot, but sometimes writing an algorithm in C++ is better for your…
How Stripe Designs Beautiful Websites
This article goes over some tips and tricks Stripe uses when designing websites. It’s a lot of small…
In The Works – Amazon Aurora Serverless
I am very excited about this product; it seems perfect for hobby projects. If you’re already paying…
VS Code Can Do That?
VS Code is an excellent editor, and this site has great tricks I never knew about
Technology Trends for 2017 | Technology Radar
ThoughtWorks has put out their latest edition of their technology radar. They keep an eye on techniques, tools, platforms, languages and frameworks and have a short write up and a rating on how they expect to see things go. These ratings are based around their usage of them as a company, but they provide an interesting insight. Keep in mind they do archive things off the radar once it has reached a point where they don’t see any changes occuring around their…
Learn Async/Await by Example
If you haven’t yet learned how to use JavaScripts async and await keywords it is worth it. They allow you use…
5 React 16 Features You Can’t Live Without
This is a nice runthrough of some of the most important updates that came with the latest version…
I’ve been using Bootstrap v4 in a project I am working on for a friend. He wants to be able to use the application on a mobile phone. Since…
Ten Extras for Great API Documentation
Good APIs and API documentation are hard. This article has suggestions for good API documentation…
I worked at Interactive Intelligence before before it was acquired by Genesys and IT had put a custom lock screen image on all the Macs…
Impress Your Friends With Code Splitting in React
Webpack can make code splitting very easy, and if you are building a React application…
Choosing between names and identifiers in URLs
Do you use permanent ids in URLs or do you use the name of something, even though it can…
React, Inline Functions, and Performance
This is a good article to read if you have an interest in React, or if you care about application…
I’m currently working on an application for a friend to help him with his business. The application needs to be responsive since he may have…
Scaling the GitLab database
GitLab makes use of PostgreSQL and started out with a single database server plus replica. They outgrew that…
The Ten Essentials for Good API Documentation
Good API documentation is something that sounds easy in theory, but is actually difficult. How…
On-Demand Environments With Docker and AWS ECS
This is a long article, but it is a step-by-step set of instructions on how to get a docker…
Partitioning Behavior of DynamoDB
This is part 3 of a 3 part series about DynamoDB. This article dives into how Dynamo handles creating…
Making the Google Developers Documentation Style Guide Public
Google has made their style guide for documentation public. While it may not…
Accessibility Testing with pa11y
Accessibility testing can be a painful process, and it is easy to miss things. Pa11y is an accessibility…
Understanding Failure Modes in Message and Event-based Systems
Error handling is exactly a fun topic, but dealing with errors and failure…
I’ve used Knockout.js quite a bit, I was looking at some code and come across an interesting situation. I saw a JS Map object being put into…
APIs as infrastructure: future-proofing Stripe with versioning
Stripe’s main product is payment processing, something you can’t afford to…
I ran into something today with cloud-init that lead to a bit of a deep dive and I thought I’d share what I found.
One of the formats you can use for User Data is the include file format. It allows you to list our URLs or file paths. cloud-init will access the file or URL and execute it as a script. It’s great if there is a publicly accessible script you want to run. I’ve also seen cases…
Choosing the Right Features with Kano Model
The Kano Model is a tool that helps prioritize features based on how users perceive the feature…
Building A Simple AI Chatbot With Web Speech API And Node.js
New services are popping up all the time, especially around AI. This article…
This was a bit of a light week in regards to articles I found, but here is what I have.
The United States of Developers
HackerRank, a…
URLs are UI
The URLs for pages on your site actually do matter. It’s something small, but it can make a big difference. Keep them short, and…
GPU.js
Browsers have been pushing boundaries for a while. This libraries uses some more recent advances to allow you to offload expensive JS…
MySQL Infrastructure Testing Automation at GitHub
GitHub’s MySQL databases are critical to the functioning of their site and service. Every…
What I’ve Learned Over 5 Years as a Software Developer
This is a nice article going over some lessons the author has learned thus far in…
CSS vs. JavaScript: Trust vs. Control
JavaScript can do what CSS does, but it generally doesn’t need to anymore. Before there was good…
Documenting Architecture Decisions
Have you ever joined a new team or begun working on a new project only to have no idea why things were…
Spellbook of Modern Web Dev
This is an amazing collection of links with resources for both frontend and backend web development. It has…
Hacker, Hack Thyself
You hear a lot about security breaches in the news, and as a developer you should hope that your product is never…
GitHub’s CSP journey
If you’re interested in web application security this is a good read. The article come out a while back but it…
Mavo
I don’t know that Mavo is going to take off, but it is interesting. It lets you create web applications with just HTML. No JavaScript…
Design Better Data Tables
There are small features that can be added to tables of data that make them far easier to use. This article…
I’ve been working on a project for a friend, making him a tool to help him manage his BigCommerce store. I had previously made the tool for…
A11Y Style Guide
Accessibility isn’t very fun, but it is a necessary task when designing a site. This is a beautiful style guide showing…
Upgrade your SSH keys!
Security recommendations are always changing, and I bet you probably have an older SSH key that is needs improving…
Understanding Stacked Bar Charts: The Worst Or The Best?
This article is a response to this article by a Research Scientist at Tableau that…
Client-side DSP library utilizing the power of WebAssembly
The repo has a link to a video editor the author made to show the library being…
Article Roundup - Week of 4/10/2017
Tippy.js
Decent looking tooltips in JS are a pain. And when you find them then have heavy libraries as a…
BitTorrent Sync (BT Sync) is a tool that can be used to synchronize files between devices using peer-to-peer (P2P), technology. Using this…
For the past three or four work days I have been trying to find a memory leak in a Windows Service we created that is used to synchronize…
Sending an e-mail from a workflow is ServiceNow is very easy. It barely takes any work. What happens when you need to include Request Item…
I recently ran into a problem when using Record Producers. In the script for the Record Producer I am using the applyTemplate
function on the current
…
Disclaimer: This post will have absolutely nothing to do with programming
Last month I took part in an event called GORUCK Light. The company that puts these events on is called GORUCK. They make amazing rucksacks and other gear. Don’t be surprised when you see the prices. They aren’t cheap, but that is because they are well made and made in the USA. The company was founded in 200…
If you’re working in ServiceNow, depending upon where what you need to do you may run into objects ServiceNow gives you access to but doesn…
At work we came across an interesting issue when dealing with ServiceNow this week. We are working on implimenting Incident and needed to be…
Last week a newletter went out that I had never heard of. It is called “Hacks && Happenings” and it is put out by a group called Indy…
A little while back my boss introduced me to the Importance vs. Urgency Matrix. It was a nice concept and I saw the reasoning behind it, but…
Etsy open-sourced their deployment tool a while back, but I didn’t learn about it until more recently. It is called Deployinator and runs on…
The old version of my site was powered by laravel, and for what I used it for that was over-kill. I have tried out Octopress in the past and…
I recently switched jobs, and at the new company my department makes use of Service Now. I must say, I am impressed with the product. It is…
There seem to be an increasing number of people throwing rants about overuse of Twitter Bootstrap. This is not one of them, I like Twitter…
I took a bit of a break from working on Bootstrap Lightbox. I just needed to get away and be lazy for a while, but I am back. The other week…
An event references both a service and a status. I needed to be able to ensure a status being deleted wasn’t…