Engineer Chapter 2
The cloud startup job
Of course I am not a Software engineer but I’m a Engineer a Production engineer, meaning I have engineering in mass, qualitative, manual, tiered or any kind of production process you can think of. I can proudly say I can understand process of any kind and can explain it in simple terms to anyone. This is my biggest strength.
I was taught Poka-yoke in my engineering and I immediately understand the concept. But I realised over the time the purpose is not to prevent mistakes but to let person working focus on other important tasks that does need more focus work. This is what I always felt about myself or work I do but I realised when I started working on Developer Experience.
Because of it doesn’t matter what is expected from me, I always deliver what is expected. Most of the time on time but sometimes with delay which will be not without any justification. I can’t say with 100% quality as it can be subjective but I don’t let the task complete until I’m satisfied. This is my biggest weakness but I’m proud of myself making such mistakes in past.
Since last year or two I’m constantly confronted the problems with this type of learning. You just end up using the language/ technology for short period of time and never understand its purpose or mindset in which the author has created it. Of course, I’m not the first person to realise this problem but for me this is one of the biggest blockers in my career growth.
The reason I started this as my first blog post is to release the pressure that keeps building inside me.
My goal is to keep adding blog posts here to re-understand something I had learned or something I want to learn. Of course that doesn’t mean that I’ll release all the post publicly.
Was leading development of cloud management SaaS solution. Automated containerisation of legacy application on linux using strace, proc fs written in golang.
The sports streaming platform job
Started as a backend engineer part of the payments team integrating PSP. Later on became a Platform engineer specialized in DX. Rewrote front-end deployment application to simplify complex multi region, edge, version deployments. Maintained internal CLI utility providing easier AWS account access, de/encryption, changelog management. Built a CLI tool to migrate Drone CI pipeline yaml to Github Actions yaml files. Worked on implementing and promoting inner-source. Backstage implementation
The dutch flight booking platform job
Managing internal tooling such as CI/ CD, CLIs automation, Monitoring stack. Improving engineering productivity and developer experience. Currently leading in-house CI/ CD to GitHub Actions migration and using Backstage CRD based catalog for keyless access of GCP and AWS in GitHub actions. It will be also used to reduce ambiguous ownership of services, and easy on/off boarding of engineers
PERSONAL PROJECTS go-grpc-hmac HMAC Interceptor for golang gRPC client and server. Only requires a secret provider function. go-shutdown-graceful Monitors syscall signals. On receiving such signal, gracefully shutdown application. trivy-cache-action Cache trivy vulnerability database in GitHub Action cache to reduce scan step duration specially on self-hosted runners. awesome-jenkins-utils Collection of Jenkins Scripted pipeline utility functions/ scripts. pod-dependency-init-container Init container for kubernetes pod that can wait for other pods defined in dependency. k8s-update-ecr-creds Kubernetes Cron Job and Service Account and RBAC config for refreshing ECR login token to avoid ImagePullBackOff issues. Useful when container images are in AWS ECR but K8s cluster is not on AWS.
OPEN SOURCE CONTRIBUTION protoc-gen-gotf Open source initiative I took at Travix being a sole contributor to the project. Itβs a Protoc plugin that generates go code for a terraform provider using Protobuf messages and services. It can also generate skeleton code that only requires code performing gRPC calls. This plugin aims to speed up the development of terraform providers by generating the boilerplate and skeleton code. And reduce maintenance of such developed providers by synchronization of Protobuf messages and their fields with terraform block schema and attributes. Jenkins 1.x plugin for delivery pipeline Now outdated plugin, but in Jenkins 1 it was useful to trigger downstream projects based on build stability of multiple upstream projects.