Skip to content

Instantly share code, notes, and snippets.

@ikouchiha47
Last active July 12, 2024 11:46
Show Gist options
  • Save ikouchiha47/249e55b8d84d8dc1fd99742bab765e2b to your computer and use it in GitHub Desktop.
Save ikouchiha47/249e55b8d84d8dc1fd99742bab765e2b to your computer and use it in GitHub Desktop.
Resume
# Fonts: Roboto, FontAwesome, Source Sans Pro
#
# curl -fsSL https://typst.community/typst-install/install.sh | sh
has_typst=$(which typst)
if [[ -z "$has_typst" ]]; then
curl -fsSL https://typst.community/typst-install/install.sh | sh
fi
typst compile resume.typ
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
#import "@preview/modern-cv:0.3.1": *
#show: resume.with(
author: (
firstname: "Amitava",
lastname: "Ghosh",
email: "[email protected]",
phone: "(+91) 629-409-7693",
github: "ikouchiha47",
linkedin: "amitavaag",
address: "India",
positions: (
"Software Engineer",
"Software Architect",
"Developer",
),
),
date: datetime.today().display(),
language: "en",
colored-headers: true,
)
= Experience
\
#set text(11pt)
Software Engineer designing and implementing scalable, distributed systems.
Mostly a back-end engineer, specializing in event-based systems and core services at scale.
My daily work involves, designing system, planning and implementing them. Increasing overall application performance of different systems, handling encoding, logging, tracing, debugging production issues, contribute to engineering practices and tooling for developer experience.\
\
#resume-entry(
title: "TheBackendCompany",
location: "Bengaluru, India",
date: "12/2023 - Now",
description: "Freelance & Consulting till full time emmployment",
)
#resume-item[
- Means of survival till I secure a job
- Consulted a startup on setting up their online presence, providing them landing page designs, cost estimation to start up and scale with online service providers like Zoho, Microsoft emails, server cost, domain pricing etc.
- Build a library for a client who wanted multiple jira tickets, mentioned in PR, to be state changed, using webhooks
- Worked on a small python project, with ollama backend to provide an api to categorize text. And another library using spacy to do Named Entity Recognition (I am not an AI expert)
- Working on a some projects of my own at github.com/go-batteries. Building emulators and storage engine to understand system and therbey understand performance better.
]
#resume-entry(
title: "Career Break",
location: "Bengaluru, India",
date: "08/2023 - 11/2023",
description: "Working on my product",
)
#resume-item[
- Health Crisis
- The break was for two reasons, overall family's health took a downturn really quick and I also "needed" to do something for myself.
- Mr.Notorious
- Initially the website was hosted from my home laptop using a GCP as VPS, socat and zerotier.
- I managed to start an apparel company for serious weight-lifters. I handled most things, tech, graphic design, ideation, fabric research, market research for vendors and order quantities.
- I gave away a couple at venues outside a competion and at the gym. Ended up selling 20 pieces. After which the profit margin wasn't making sense.
- The cool factor was providing a customizable QR code on the sleeves to link directly to product page or self promote. The reminisance can be found on instagram #link("https://www.instagram.com/impowerbuff")[impowerbuff], and mr-notorious was the name of the cohort.
- I ended up learning deployment and CI, adding terraform and some AWS products, and some networking.
]
#resume-entry(
title: "Senior Software Engineer",
location: "Bengaluru, India",
date: "08/2020 - 07/2023",
description: "Sequoia",
)
#resume-item[
- Core services
- Redesign, implementation and delivery of the Notification Service, to improve throughput and only once delivery guarantees using SQS. Involved collaboration between testers and frontend to ensure functionality
- Mitigate issues where user would try to login to pishing websites, by introducing email based OTP verification and device registration
- Handling encryption decryption strategies and database migration for securely storing important documents in S3, to comply with PII regulations.
- Orchestrate the company wide shift to using the same strategy across multiple languages, by building bindings or using IPC
- Build the URL Shortener service to enable proper decrypted download of said files. (backed by redis)
- Helped solve user login failures, using request tracing and AWS Insights, proposed plans to mitigate the database locking issue.
- Designed and build a CSV manager, to handle file uploads in multiple formats
- Handled Byte order marks, Dealt with different encoding, date formats and header validations to ensure quality data
- Memory mapped files for faster processing, and later came up with a plan to make processing asynchronous
- Build an OpenID like mechanism, for allow companies to share employment details, once ToA was agreed
- And a few other projects, involving GraphQL, AWS Lambda, Airflow and MWAA API
- Other Engineering Work
- Building and maintaining the Golang SDK, helping developers, thereby helping developers not replicate common code
- Build a Db resolver library for Gorm V1, to split read and write queries into appropriate database connections
- Figuring out network connection issue, memory leaks, benchmarking and profiling using pprof and Flamegraphs to figure out production issues and improve Code Quality.
- Figure out SSO Login Issues to retain customers
- Code reviews and lecturing other people on golang concurrency, and nodejs Promises, debugging using logs only, ensuring we have good enough code quality by default.
]
#resume-entry(
title: "Product Engineer",
location: "Bengaluru, India",
date: "2016 - 2020",
description: "Gojek",
)
#resume-item[
- Core Services
- During customer service monolith decomposition worked on Oauth based authentication and authorization, porting from Rails to Golang
- Gateway migration: Handled the customer gateway migration from HAproxy to Kong, reducing load on authentication caused by internal services
- Work involved, learning Lua, writing the authentication Kong plugins
- Figure out deployment of Kong, and Nginx config, percentage rollout planning
- Figuring out the system limits and planning the Kong api segregation (parsing HAP logs and trial error)
- Analyze tcpdumps to figure out reconnection issues, owing to reduce system limits and back-test the system with shadow traffic
- Come up with a meta config, and setup an org wide repo, calling for all developers to migrate their APIs
- Help out security team, as they now had greater visibility and control over public facing API whitelisting.
- Worked in the Global search team, and helping in writing pipelines for existing services to send changelogs (CDC), for indexing in Elastic Search
- Work involved taking feedback from alpha users to send appropriate data to front-end
- Participated in the internationalization phase, introducing location headers, and sending response in users preferred or default language/location preference
- Worked briefly on an E-commerce project, was mostly responsible for loading a million store items data.
- All work involved setting metric and alerts and being on production support, and the need for playbook
]
#resume-entry(
title: "Software Engineer",
location: "Pune, India",
date: "08/2016 - 09/2016",
description: "Leftshift",
)
#resume-item[
- Worked here briefly, before getting acquired by Gojek
- Worked on a project to periodically get Gojek app reviews, writing API and database structure, for data team to analyze, etc.
]
#resume-entry(
title: "Software Engineer",
location: "Kolkata, India",
date: "2014 - 2016",
description: "Kreeti Technologies",
)
#show link: underline
#resume-item[
- Setup of the full stack of Memento , a social network app, database design,in MERN stack and deployment with Heroku. #link("https://web.archive.org/web/20171030101912/https://www.smarketplace.com/")[preview]
- Implementation of login and account creation for CPG and Retailer, authentication, and authorization in Rails. Worked with UI/UX engineers. Photo upload using s3 and ImageMagick for image formatting. #link("https://web.archive.org/web/20171030101912/https://www.smarketplace.com/")[preview]
- Implementing a commenting feature on the promotions page for communication between multiple parties, Email-based weekly and daily reminder of promotions with ActiveJob, sidekiq.
- Rebuilding the internal payslip generation, with dashboard in Elixir.
- Matrimony app, handling caste system with multitenancy, handling authentication with devise, tenancy with act_as_tenant, search and angular frontend #link("https://web.archive.org/web/20171030101912/https://merayog.com/")[preview]
]
= Projects
#resume-entry(
title: "File storage",
location: [#github-link("go-batteries/arbokcore")],
date: "",
description: "A distributed-ish file upload toy project",
)
#resume-item[
- file storage and sharing solution, handling chunked file upload and download and notify using SSE
- Learning SLDC and CRDT to propagate only updated file changes and reconstruction of information
- Also, fiddled with fine tuning the Sqlite DB, using WAL logs, ensuring transaction isolation for strong consistency when needed, increase mem table sizes, changing sync mode to NORMAL etc.
]
#resume-entry(
title: "DB Resolver",
location: [#github-link("go-gorm-v1/dbresolver")],
date: "",
description: "Database Proxy",
)
#resume-item[
- gorm v1 didn't have a db resolver, so needed to build one to separate read and write queries
]
#resume-entry(
title: "Hawkeye",
location: github-link("go-batteries/hawkeye"),
date: "Sep. 2019 - Present",
description: "Metric Collector",
)
#resume-item[
- Make shift metric collector, once used in production, which helped catch errors early
- Until it was finally and thankfully replaced by datadog metrics.
]
#resume-entry(
title: "Emulator",
location: [#github-link("ikouchiha47/emulators")],
date: "",
description: "Chip 8 emulator",
)
#resume-item[
- The aim was to learn zig, and is to end up writing the gameboy emulator
]
= Skills
#resume-skill-item(
"Languages",
(strong("Go"), strong("Javascript"), strong("Rails"), "Lua", "Python", "Bash"),
)
#resume-skill-item(
"Databases",
("MySQL", "PostgreSQL", strong("Redis"), "Some Mongodb in Multi cluster"),
)
#resume-skill-item(
"API stuff",
(strong("REST"), strong("GraphQL"))
)
#resume-skill-item(
"Technologies",
("AWS", "Terraform", "Containerization (Docker) & Namespaces", "SDKs", "DSL", "Grpc", "Protobuf", "Some akfka", "Redis streams"),
)
#resume-skill-item(
"Other Skills",
("Distributed Systems", "Overservability", "Debugging convoluted problems"),
)
#resume-skill-item("Spoken Languages", (strong("English"),))
= Education
#resume-entry(
title: "West Bengal University of Technology",
location: "Kolkata, India",
date: "2010 - 2014",
description: "B.Tech in Electronics & Communication Engineering",
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment