RSSAmplifier

Blog

Blog by Pulkit Goyal

Notes on software engineering by Pulkit Goyal — building web systems and writing down what I learn.

pulkitgoyal.inRSS feed ↗108 posts

Latest posts

An Introduction to Exceptions in Elixir

Exceptions are a core aspect of programming, and a way to signal when something goes wrong with a program. An exception could result from a simple error, or your program might crash because of underlying constraints. Exceptions are not necessarily bad, though — they are fundamental to any working application.

An Introduction to Mocking Tools for Elixir

Comparing dependency-mocking approaches and libraries for Elixir tests.

Database Performance Optimization and Scaling in Rails

Scaling databases to keep growing web applications responsive.

State Machines in Ruby: An Introduction

Modeling Ruby workflows with finite state machines and the state_machines gem.

Using Profiling in Elixir to Improve Performance

Profiling Elixir applications with cprof, eprof, and fprof.

An Introduction to Pattern Matching in Ruby

Using Ruby 2.7 pattern matching to make code more readable.

What's new in Rails 7

An overview of Rails 7's major features and changes.

Testing WebSocket Clients in Elixir with a Mock Server

Implementing and unit-testing long-running WebSocket connections between Elixir services.

Monitoring Application Email Delivery

Monitoring application email delivery with Mailgun webhooks and retries.

Elixir Pooling with Poolboy

Creating and managing process pools in Elixir with Poolboy.

Hosting NextJS projects on Heroku with SSL

Deploy custom SSL certificate to Heroku for Next.JS apps and auto redirect to https.

Conditional global stylesheets for Next.js apps

Serving different stylesheets to different parts of a Next.js application.

Authentication Using GraphQL Ruby

Handle authentication right from your GraphQL API using login and logout mutations.

Unit Testing Hooks containing GraphQL Queries

Unit-testing React hooks that execute GraphQL queries.

Using Action Mailbox on Rails 6

Routing, processing, and testing inbound email with Rails Action Mailbox.

Send notifications with Firebase from Firestore events using Cloud Functions

Sending Firebase notifications from Firestore event-triggered Cloud Functions.

Unit Test custom React Hooks that rely on Promise

Unit-testing asynchronous React hooks that depend on Promise results.

Transform SVG icons and images to React Components

Generating React components from SVG assets with SVGR.

Apollo Client Default Values for Missing Fields

Providing default values for missing fields in Apollo Client responses.

Advanced Mixins on Typescript

Using TypeScript mixins to compose reusable class behavior.

Custom fetch implementation for responses compressed with MessagePack::RackMiddleware

Fetching and decoding API responses compressed by a MessagePack Rack middleware.

Custom Rack Middleware for response compression

Compressing Rack responses with custom middleware.

Implement Magic Login for TV devices

Implementing a code-based magic-login flow between TV and mobile apps.

The Ocean at the End of the Lane Review

A review of Neil Gaiman's The Ocean at the End of the Lane.

Use a custom job adapter in test

Using a custom Active Job adapter with Rails test helpers.

Rae

A science-fiction story about a writer awakened in a world ruled by her fictional god.

Remote testing and debugging of iOS apps

Debugging iOS applications on remote devices using Xcode and FlexiHub.

Better Background Jobs in Rails

A custom Rails job adapter that avoids enqueueing duplicate background jobs.

Update Localization on iOS at Runtime

Changing an iOS application's language at runtime and reloading localized UI.

Login and Authenticated Sections to React/React-Native App

Protecting authenticated sections in React and React Native applications.

Resuming downloads on iOS

Saving resume data and continuing interrupted iOS downloads.

Downloading Files in iOS

Downloading remote files with Alamofire and file utilities on iOS.

Hyperion Cantos

A review of Dan Simmons's four-book Hyperion Cantos science-fiction series.

Audio Processing on iOS using Aubio

Extracting audio annotations on iOS with the Aubio library.

iOS Music Player on the Lock Screen

Showing music playback metadata and controls on the iOS lock screen.

Building a music player for iOS

Building an iOS music player with queues, playback controls, and background audio.

Why you should start using RxSwift for iOS

Introducing reactive iOS programming with RxSwift.

Why you should start using RxJava on Android

Introducing reactive Android programming with RxJava.

Swift constructs for Kotlin

Mapping Swift language conveniences to equivalent Kotlin constructs.

Add a circle around UIImage

Drawing a circular border around a UIImage in an iOS interface.

Create UIImage with text

Generating a UIImage that displays a user's initials.

Resizing images picked from UIImagePickerController

Resizing UIImagePickerController images with PhotoKit.

Show avatar on both sides for Atlas Conversation View Controller (Layer Chat)

Displaying avatars on incoming and outgoing Atlas conversation messages.

Add Click Handler to Avatars on Atlas (Layer Chat)

Adding tappable avatar cells to Layer's Atlas conversation interface.

Open full image in conversation controller with Atlas (Layer Chat)

Opening full-size images from Atlas conversation cells.

How to show relative time in Atlas Conversation List Controller (Layer Chat)

Showing relative timestamps in Layer Atlas conversation lists.

Implementing Chat/Messaging in iOS apps with Layer

Integrating Layer's messaging platform into an iOS application.

Organizing ChromeApp Development with Grunt

Organizing Chrome App development tasks with Grunt.

Things you should know about Auto Layout on iOS

Practical considerations for using Auto Layout in iOS interfaces.

Pluralization on iOS and OS X

Localizing plural strings on iOS and OS X with .stringsdict files.