Eakan with his pet dog

Eakan Gopalakrishnan

Lessons in the craft of software engineering and engineering management
A digital lock icon overlaid on a GitHub repository workflow diagram symbolising supply chain security

Practical GitHub Repository Hardening for a Hugo Site

This hardening effort was directly triggered by the recent Trivy supply chain compromise, which impacted some repositories in my workplace and prompted a full review of my own repository controls. If you want the incident and response details, these two links are worth reading first: Incident analysis: Trivy Compromised a Second Time (StepSecurity) Official disclosure and remediation guidance: Aqua Security discussion #10425 This post is an updated, end-to-end view of the hardening work I applied to this repository. ...

April 1, 2026 · 6 min · 1068 words · eakangk
A layered diagram showing GitHub Enterprise at the top flowing down through Organisation to a personal repository with a padlock overlay, representing policy inheritance

When Your Workplace Controls Your Personal GitHub Repos: Understanding GitHub Org Policies

I was hardening this blog’s GitHub repository as part of a security series — adding CodeQL static analysis, Dependabot, and secret scanning. Everything went smoothly until I tried to run CodeQL in a workflow against my personal, private repository. The workflow ran. The analysis completed. And then it failed with this: Warning: This run of the CodeQL Action does not have permission to access the CodeQL Action API endpoints. Code scanning is not enabled for this repository. The repository settings showed Code Scanning as available. The workflow had security-events: write. The YAML was valid. The workflow was not running from a fork. Nothing obvious was wrong. ...

April 1, 2026 · 7 min · 1371 words · eakangk
A software engineer using practical prompting techniques with an AI assistant to improve code outcomes

Prompting Essentials for Software Engineers: 4 Practical Strategies for Better AI Output

In software engineering, your output - the code that you write, is only as good as what you have learned, experienced and understood from your conversations with the client, which is the input. This is true when working with Large Language Models (LLMs). If you use GenAI tools to complement your expertise in software engineering, then here are some strategies you can use to move beyond basic code generation and into collaborative development, or better pair programming with AI. ...

March 29, 2026 · 3 min · 611 words · eakangk
A developer collaborating with an AI assistant while learning large language model concepts and workflows

Start Here to Learn Large Language Models: Best Andrej Karpathy Resources

Large Language models have evolved over the last decade but there is still time to learn and understand them. Let me share some resources I found useful. Andrej Karpathy - Intro to Large Language Models An excellent introduction video recorded by Andrej Karpathy, one of the co-founders of the world’s most notorious AI company, OpenAI, which he left in 2024 to found Eureka Labs. [1hr Talk] Intro to Large Language Models ...

March 7, 2026 · 3 min · 563 words · eakangk
Developer working with AI assistant, showcasing code generation and collaboration between human and AI

From Concept to Production: Building CalOohPay with AI-Assisted Development

The Beginning: A Problem There was a time when, every month, I spend 10-15 minutes reconciling on-call rotas for payroll - this was just for my teams. As an engineering manager responsible for multiple teams, this task was boring but necessary to compensate my engineers who bore the inconvenience of on-call responsibilities. I’d manually review PagerDuty schedules, count weekday versus weekend hours, apply different compensation rates, and compile everything for payroll processing. The more teams one had, the more time it took away from the already tightly packed schedule of an engineering manager, who manages multiple teams. ...

January 31, 2026 · 19 min · 3933 words · eakangk
SLO-driven architecture diagram showing reliability metrics integrated from design to deployment

Shift Reliability Left: Use SLOs to Guide Architecture Early

Reliability planning is most effective when it starts during design, not shortly before release. This post focuses on how Service Level Objectives (SLOs) and Service Level Indicators (SLIs) can be used early in the SDLC to guide architecture and delivery choices. Remind me what they are again SLI - Service Level Indicator A quantitative metric for a service’s performance, as experienced by the user of the service. It is a measure of a property of the service that is a good proxy for your user experience. ...

December 4, 2025 · 5 min · 903 words · eakangk
Engineering Manager Balancing Code and Leadership

To Code or Not to Code as an Engineering Manager: Making the Right Choice

I used to regularly run the engineering manager community of Practice at my current workplace. I loved and still love it. But now I barely get time to do anything extra. My hours are so squeezed into a specific slot of time - the time when my toddler is not at home. :D I got asked in the community slack channel a very important question. One that a lot of engineering managers debate in their heads. Especially if they used to be tech leads and then switched to managing others. They get their joy from helping others develop and also building something that others can use. ...

October 30, 2025 · 2 min · 424 words · eakangk
Transactional Outbox Pattern Architecture Diagram

Transactional Outbox Pattern: A Practical Guide to Trade-offs

In event-driven systems, services often need to update local state and publish an event for other services. Doing these as separate operations introduces a consistency risk known as the Dual Write Problem. The core requirement is simple: the database write and event publication should represent one logical change. If one succeeds and the other fails, downstream systems may observe incomplete state. The Transactional Outbox Pattern is a practical way to address this in many microservice architectures. ...

September 8, 2025 · 4 min · 794 words · eakangk
The Honey Badger Management Framework - document cover

The Honey Badger Management Framework

Never in my wildest dreams did I think I’d hear of an agile management framework of this name - HoneyBadger. What is HoneyBadger? HoneyBadger is an agile management framework. Now that doesn’t make much sense does it? Don’t we already have plenty of agile management frameworks? Let’s start breaking that down a bit Info ...

July 29, 2025 · 5 min · 855 words · eakangk
A high tech image depicting a migration to AWS Amplify on the cloud

Moving to AWS Amplify from Azure

In my earlier post, I shared how I clicked a button to migrate Azure CDN to Front Door and then started being charged a lot for hosting a simple blog on Azure. So I decided to end my relationship with Azure and move on to greener pastures with AWS. It was not too much work, so why not. I read about AWS Amplify and saw that it was the perfect solution to my problem. So off I went looking for resources to get onboard. ...

May 26, 2025 · 6 min · 1264 words · eakangk