BP’s Daily Digest: Adobe PDF Extract API Demo, Solana, AWS Amplify, and more
Welcome to the 12th edition of Coffee Bytes, a daily digest by Better Programming.
In this issue, we’ve got a first look at Jetpack Macrobenchmark, a quick walk-through of Adobe’s newly released PDF Extract API Demo, some agile perspectives, one hiring advice, the perils of AWS Amplify, and lots of code.
Programming
How to Write a RegEx Worthy of Passing Code Review
By Matthew Cannalte — 4 min read
You can write effective regular expressions with just some basic knowledge, and keep them readable for other engineers, even the opinionated ones who vow never to use them.
Let the following be a practical guide for understanding, utilizing, and maintaining RegExes.

Software Engineering
Announcing the Release of the Adobe PDF Extract API Demo
By Raymond Camden in Adobe Tech Blog — 4 min read
The PDF Extract API helps unlock the structure and content elements of any PDF with a web service powered by Adobe Sensei’s machine learning. However, the vast amount of data can be overwhelming for the users. With that in mind, the Adobe team has released a demo that strives to provide context to the data returned by the PDF Extract API.

Web Development
Let’s Build a Movie API With Separated Layered Architecture Using Go
By Dilara Görüm — 5 min read
See how we can test our movie API more easily thanks to the three-layer architecture. What are these layers — Handler, service, and repository.
Know their roles and see them in action.
Python Dev
How to Build Countable Classes in Python
By Lev Maximov — 4 min read
If you want your class to be countable or to be used as a key in dict-like structures, you need three things:
- Override the
__hash__
method - Override the
__eq__
method accordingly - Make the class immutable

Android Dev
Measure and improve performance with Macrobenchmark
By Tomáš Mlynarič in Android Developers — 9 min read
In this article, we’ll take a look at how the Jetpack Macrobenchmark library helps you understand your app’s performance and how you can improve your app’s startup time by up to 30% using Baseline Profiles!

iOS Dev
Using Metal in Swift Playgrounds 4
By E Skils — 3 min read
This article will show two ways of making Metal work in Swift Playgrounds 4 along with the comparison of time for the playground to load a Metal library on an M1 Mac using the two methods:
- Compiling the Metal-library in Xcode
- Store the Metal-source as a resource

AWS
Why You Should Be Beware of Next.js on AWS Amplify
By Chris Vibert — 4 min read
A few months ago, I was tasked with deploying some Next.js applications on AWS Amplify. I knew that it wouldn’t be quite as easy as with Vercel, but I was interested in trying something different. But the challenge proved far too great, and a few days later I was back to Vercel with no intention of ever using Amplify again.

Web3 Dev
Getting Started With Solana for Solidity Developers
By Nazar Ilamanov — 8 min read
Start your Solana journey by comparing programming models of Ethereum vs Solana.
If you’re familiar with Ethereum and Solidity, you might be meaning to dip your toes into the Solana ecosystem. Solana’s fast blockchain is promising and exciting. Plus you increase the surface area of your web3 knowledge.

Agile
Is Agile an anti-design pattern?
By Shamsi Brinn — 4 min read
If you are a designer frustrated with your limited role and the lack of UX in standard Agile, or a developer who wants more validation and direction so you can stop guessing a spec into existence, consider a new Agile pattern.

Hiring Advice
Hire People Based on These Powerful Principles Over Experience
By Roo Benjamin — 6 min read
Think about it. Almost anyone can work with a client on a successful day. But what about those times when the relationship gets tricky and you need to have a difficult conversation? The kind of times no strategy document could ever save you from.
In these times, you need someone with emotional intelligence and lightness. When push comes to shove, you want to be with or work with someone who can take feedback and have resilience when experiences get difficult.
Until your next coffee,
Anupam and the Better Programming team.