RSSAmplifier

Blog

https://jtarchie.com

feed for https://jtarchie.com

jtarchie.comRSS feed ↗23 posts

Latest posts

Blog

# Blog A note on my writing style. I write as I speak. These are the posts from the blog – sorted newest to oldest. Efficient API Design: Avoiding Costly External Requests on 2025-01-26 Exploring Goja: A Golang JavaScript Runtime on 2024-08-30 Optimizing Large-Scale OpenStreetMap Data with SQLite on 2024-07-02 Deploying a Rails Application with AWS Copilot on 2023-11-15 Implementing a simple Mutex…

Efficient API Design: Avoiding Costly External Requests

# Efficient API Design: Avoiding Costly External Requests Previous article on using Goja provides context and underlying technical details. On a recent project, I built an API that leverages OpenStreetMap data, currently focusing on the United States and Canada to search for points of interest near each other. The API endpoint for querying that data ran into problems of slow response times, both…

Exploring Goja: A Golang JavaScript Runtime

# Exploring Goja: A Golang JavaScript Runtime This post explores Goja , a JavaScript runtime library in the Golang ecosystem. Goja stands out as a powerful tool for embedding JavaScript within Go applications, offering unique advantages when manipulating data and exposing an SDK that doesn’t require a go build step. # Background: The Need for Goja In my project, I encountered challenges when…

Optimizing Large-Scale OpenStreetMap Data with SQLite

# Optimizing Large-Scale OpenStreetMap Data with SQLite Discuss on Hackernews Over the past year or two, I’ve worked on a project to convert a massive dataset into an SQLite database. The original data was in a compressed binary format known as OSMPBF, which stands for OpenStreetMap Protocol Buffer Format. This format is highly compact and compressed, making it difficult to search. The goal of…

Deploying a Rails Application with AWS Copilot

# Deploying a Rails Application with AWS Copilot This post outlines deploying a Rails application using AWS Copilot, a CLI tool designed to provide a Heroku-like experience within the AWS ecosystem. Before proceeding, it’s recommended to familiarize yourself with the basics by following the “Deploy your first application” guide in the Copilot documentation. I used the Jumpstart Rails project…

Implementing a simple Mutex in Go

# Implementing a simple Mutex in Go When asked, “How do you learn concurrency in Go?” my default answer is to create a web application. But Go has made building web applications so straightforward that I’ve been curious about diving deeper into Go’s concurrency primitives. So, why not construct a Mutex from scratch? While Go’s standard library already provides one, it would be helpful to…

Transitioning Back into the Labor Force

# Transitioning Back into the Labor Force This is a continuation of Taking Time Off Between Jobs I received many responses after sharing my experiences about taking time off between jobs. Many resonated with my sentiments, while others sought deeper insights into transitioning back into the workforce. Today, I delve into these inquiries and illuminate my journey back into the labor force. Firstly,…

Taking Time Off Between Jobs

# Taking Time Off Between Jobs A follow up was written Transitioning Back into the Labor Force Amid our fast-paced lives, taking time off between jobs might seem daunting. But as I reflect on my journey, I want to share the profound impact these pauses have had on my life and why you might consider embracing them, too. Years ago, my father jokingly suggested I write about how to take time off…

My Preferred Go Stack

Explore my preferred collection of Go libraries that ergonomically enhance my coding style and streamline the development of Go applications, allowing for efficient and organized coding.


Seeking Optimal SQL Patterns with Go

# Seeking Optimal SQL Patterns with Go One of the challenges software engineers face when working with SQL in Go is managing boilerplate. It can be cumbersome and repetitive, detracting from the application’s core logic. Recently, I’ve embarked on a journey exploring sqlc , a tool designed to generate type-safe code directly from SQL, seemingly promising an efficient way to handle SQL in Go. The…

Exploring Go with CGO Overhead and `sqlc`

# Exploring Go with CGO Overhead and sqlc In a recent endeavor, I’ve been tinkering with building a server in Golang. It’s built around a low-level TCP protocol, each connection sparking its goroutine. What makes this interesting is using cgo to interface with a library. As many Golang fans might know, each cgo call incurs a time penalty due to the transition from C to Go. This bridge had me…

Using Go Generics for Function Caching

# Using Go Generics for Function Caching I’m currently engaged in a side project where I’m exploring web application development using Golang. As part of this endeavor, I’m incorporating elements from other web frameworks like Ruby on Rails to handle server-side HTML rendering, database connection management, form handling, and more. During the course of my work, I decided to dive into caching and…

Balancing Website with Limited Access Hours

This examines the idea of limited website access hours, questioning the necessity of 24/7 availability. It highlights potential benefits such as resource optimization, enhanced user experiences, mindful internet use, improved security, and reduced burnout among web professionals, encouraging a reevaluation of website accessibility for a balanced digital landscape.

Communication >> Process >> Tools

# Communication » Process » Tools When working in a team or an organization with multiple teams, finding effective ways to work with each other is always a high priority. We want to be effective and accomplish something, which is what modern skill-based work is all about. In my experience as a software engineer, I’ve learned that communication is vital. This isn’t a lost art or a revolutionary…

Programming Journey

# Programming Journey I want to share the story of how I got into software engineering. I aim to present an autobiographical account while acknowledging that we all come from different backgrounds. One of the things I’ve always respected about working with people is the diversity of experiences we bring to the table. Sometimes, you need to know where you started to understand where you are. My…

Debugging and Resolving Issues with Go and the `sqlite3` Library

# Debugging and Resolving Issues with Go and the sqlite3 Library # How the problem started I recently embarked on a journey to incorporate geographical data into a Golang program. This was an exciting exploration, as most solutions require PostgreSQL and PostGIS. However, for the project I’m working on, having a whole database would add an extra step in the deployment process. I decided that the…

Steps toward automation

# Steps toward automation In this blog post, I’ll be discussing my approach to automating tasks that software engineers have to perform for their job. Before diving into the core concept, I’d like to define and narrow down the idea of automation within software engineering. Automation, in this context, refers to code created by programmers to simplify tasks. The users benefiting from this…

Programming Language over Data language

# Programming Language over Data language When it comes to configuration languages, the end goal is usually to use a language that provides human-readable data structures. The most modern language for this purpose is YAML, from a syntax point of view. It’s easy to work with in terms of data type structure and readability. However, when it comes to templating, those features are not enough.…

Testing Thoughts

# Testing Thoughts When it comes to testing, the simplest explanation I have for tests is: Users use our code through the web, console, and other user interfaces. Tests are another interface just for the developers. Tests provide the developers confidence that things are working the way they should. # What does it mean to be red then green? I always remember “red, green, then refactor” when I…

When in San Diego

# When in San Diego I’ve had some friends move to San Diego. Since I used to live there, this is a list of things to do and try. 🛣Coastal Highway 101, drive it from Carlsbad down to San Diego. Drive to Torrey Pines, both South and North. It is just beautiful. # Downtown 🍩 Donut Bar is excellent. I love donuts and this place has never done wrong in providing something unique. 🥮 Extraordinary…

Embracing Tech Debt as a Team

# Embracing Tech Debt as a Team Working on a product team always has two primary goals: figuring out what you are building and when you can deliver those features. Ideally, the team maintains its delivery velocity indefinitely. As an engineer, you’re delivering, but something starts to feel off. Features become harder to implement, and there’s a refactoring you’ve been putting off. Eventually, you…

Exploring JIT execution of `luajit`

# Exploring JIT execution of luajit I’ve always been impressed with the LuaJIT runtime. For years, Mike Pall has been praised (and rightfully so) for creating it. It is the fastest runtime for a dynamic language. I’ve taken an interest in experimenting with it. It can optimize dynamic code to efficient assembly instructions. For example, we are calculating the sum of 1 to 100. local sum = 0 for i…

Hello, World!

# Hello, World! I wrote my own blog engine. I wanted to. The other that exist are just fine. When using it locally, it watches the content and rebuilds it. The browser still requires a manual refresh, but that’s alright. It is developed using ruby . It builds the site specifically for Github Pages. The CNAME file is customized for this site. All the posts are in the posts directory. They are all…