git switch -c new-endeavors -f infosys

a farewell note to my infosys colleagues

Published
Reading time8 min read
git switch -c new-endeavors -f infosys

git switch -c new-endeavors -f infosys ๐Ÿ‘‹

After eight years at Infosys, I had to write a farewell note. The ones I have read โ€” and the ones I have written before โ€” usually feel like form letters with the names changed. I wanted this one to actually sound like me.

So I wrote it the only way I know how: as a sequence of git commands.

If you have ever used git, you already know how to read this. If you have not โ€” every line is a real git command, and the words after the # are the human translation. The story is the same either way.

I also built a small standalone web app of the whole thing, so it reads more like a live terminal than a static page:

๐Ÿ‘‰ ganesankar.github.io/git-switch-f-infy

Open whichever feels right โ€” the post below has more breathing room, the web app has the blinking cat.


INIT : How it began ๐ŸŒฑ

$ git init                                  # Joined at 2018 โ€” new company, new team, huge expectations. ๐ŸŒฑ
$ git config --global user.name  "Ganesan Karuppaiya"
$ git config --global user.email "ganesan.karuppaiya@รญรฑfโ–ˆแนกรฟแนก.com"
$ git config --global init.defaultBranch  learning-and-grow   # the only branch I ever wanted to live on. ๐Ÿ“š
$ git config --global core.empathy  true    # learned and set globally. ๐Ÿค
$ git config --global core.kindness true    # same. and never going to --unset. ๐Ÿ’›
$ git config --list                         # turns out, the values you gave me will stay configured for life. ๐Ÿ’›

STATUS : How it went... โค๏ธ

$ git status                                # On branch learning. Clean working tree. Heart: full. โค๏ธ
$ git add .                                 # Staged every lesson, every laugh, every funny moment. ๐Ÿ˜„
$ git add -p                                # Some moments picked carefully, bit by bit โ€” they were so special. โœจ
$ git diff                                  # The me who walked in vs. Me standing here today โ€” massive diff. ๐Ÿ˜…
$ git diff HEAD                             # Even compared to yesterday, time changed me. ๐Ÿ™‚
$ git diff --cached THANKS.md               # Reviewing what I am about to say, one last time. ๐Ÿฅฒ

EXIT : How it ended ... ๐Ÿ“œ

$ git commit -m "feat: joined with huge expectations, gained a lifetime of growth" ๐ŸŒฑ
$ git commit -am "learn: tech, people, patience, kindness โ€” all merged into me" ๐Ÿค
$ git commit --amend -m "fix: not just an infocision, thanks to you all" ๐Ÿ™Œ
$ git log --stat                            # Look at all the files of my life this place touched. ๐Ÿ“‚
$ git log -p THANKS.md                      # Every line here was written by some trust and some space. ๐Ÿ™
$ git show HEAD                             # The latest version of me โ€” built on top of all of you. ๐Ÿ’ช
$ git log --oneline --decorate --graph      # A graph of memories, branching, merging, never linear, always beautiful. ๐ŸŒณโœจ

WHILE LEAVING : What I carry with me ... ๐ŸŽ’

$ ls -la                                    # The artifacts of this chapter โ€” files written with intent. ๐Ÿ“‚
README.md                                   # who I am โ€” co-authored by every one of you ๐Ÿ“–
CONTRIBUTING.md                             # the unwritten code: kindness, ownership, candor ๐Ÿค
CHANGELOG.md                                # versions of me, one release per learning ๐Ÿ“
THANKS.md                                   # the longest file in this repo โ€” still not long enough ๐Ÿ’›
LICENSE.md                                  # the permission you all gave me to grow without judgment ๐Ÿ“œ

CROSSROADS : Stay In Infosys vs Bigger Dreams ๐Ÿ›ค๏ธ

$ git branch                                # Being honest, I wished to keep this branch checked out forever. ๐Ÿฅบ
$ git switch -c stay-in-infy                # I would have happily kept committing here for years to come. ๐Ÿ’›
$ git checkout stay-in-infy                 # But the situation around me is no longer the same. ๐Ÿฅบ
$ git merge bigger-dreams                   # And there are bigger dreams quietly asking to be merged in. ๐ŸŒ 
$ git branch -d stay-in-infy                # So, with respect and a grateful heart, I am closing this branch. ๐Ÿ™

ALSO : While leaving โ˜•

$ git stash push -m "wip: unfinished projects, inside jokes, coffee chats โ˜•"
$ git stash list                            # All safely parked in my heart. ๐Ÿ’›
$ git stash pop                             # Will be replayed every time I think of you. ๐Ÿ’ญ

LETTING GO : With heavy heart ... ๐Ÿ•Š๏ธ

$ git restore THANKS.md                     # I cannot undo the goodbye, butโ€ฆ
$ git restore --staged regrets.md           # I unstage every regret โ€” only gratitude remains. ๐Ÿ™
$ git reset --soft HEAD~1                   # I undo nothing of what we built โ€” I keep all the changes with me. ๐ŸŽ’
$ git reset --hard bitterness               # error: pathspec 'bitterness' did not match anything. Good. There is none. ๐Ÿ˜Š
$ git revert <any-hard-day>                 # The tough days? Reverted by the kindness you all showed. ๐Ÿค—

ALSO : What I leave behind ... ๐Ÿ™…

$ cat .gitignore                            # Things this repo was never going to track.
bitterness
regrets/
gossip.log
*.drama
node_modules/                               # we depended on each other, not on libraries ๐Ÿค

HANDOVER - Logging out and moving on ๐Ÿ”‘

$ git rev-parse --abbrev-ref HEAD           # infy-tech-lead
$ git checkout -b new-endeavors             # Switched to a new branch 'new-endeavors'. ๐Ÿš€
$ git push origin --delete infy-tech-lead   # Letting this role go โ€” gently, gratefully. ๐Ÿ™
$ git rm ganesan.karuppaiya@รญรฑfโ–ˆแนกรฟแนก.com     # Removing my login from these halls โ€” but never from this story. ๐Ÿชช
$ git mv infosys new-endeavors              # Moving my path to the next chapter, carrying the lessons along. ๐Ÿ“โœจ
$ git tag -a v1.0-farewell -m "Final farewell note โ€” with love" ๐Ÿ’
$ git push origin v1.0-farewell             # Tagging this chapter so I never lose its commit hash in memory. ๐Ÿท๏ธ

I WISH : To keep in touch ๐Ÿค

$ git remote add friends `https://ganesankar.github.io`
$ git remote -v
  friends   https://ganesankar.github.io  (fetch)
  friends   https://ganesankar.github.io  (push)
$ git fetch friends                         # I will check on you. Often. ๐Ÿ‘€๐Ÿ™‚
$ git pull --rebase friends main            # And if life lets me, may rebase my path to cross yours again. ๐Ÿ›ค๏ธ
$ git blame me                              # To point who shaped me, `git blame` points straight to all of you. ๐Ÿ™
$ git clone <this-culture> to-my-next-team  # Maybe taking a clone of this culture wherever I go next. ๐ŸŒŸ

COMMAND NOT EXIST: See you around ๐Ÿ‘‹

$ git help goodbye
'goodbye' is not a git command. See 'git --help'.
# Maybe that is the point โ€” this is not really a goodbye. ๐Ÿ™‚

HIGHLIGHTS : What I rewind now ...

$ git log --oneline --decorate --graph --author="[ganesan.karuppaiya]"
* (HEAD -> new-endeavors, tag: v1.0-farewell) Farewell, with gratitude ๐ŸŒธ
* `release(production)`: many launches, calm midnights โ€” predictability earned, not gifted ๐Ÿ“ฆ
* `experiment(playground)`: POCs, hackathons, side quests โ€” never stopped tinkering ๐Ÿงช
* `style(craft)`: code reviews, design systems, accessibility โ€” quality as a default ๐ŸŽจ
* `hotfix(production)`: showed up for the fires, not just mine โ€” calm hands, clear heads ๐Ÿ”ฅ
* `docs(awards)`: continuously recognized and appreciated for the work โ€” forever humbled ๐Ÿ™
* `chore(interviews)`: brought new talent into the family โ€” every "yes" felt like a win ๐Ÿง‘โ€๐Ÿ’ป
* `merge(friendships)`: the colleagues who became family โ€” quietly, completely, they built me ๐Ÿค
* `ops(rfp)`: led RFPs across multiple pursuits โ€” won some, learned from all ๐Ÿ“‘
* `refactor(full-stack)`: UI โ†’ API โ†’ Infra โ†’ Data โ€” given the room to learn every layer ๐Ÿ”
* `feat(homecoming)` ๐Ÿ‡ฎ๐Ÿ‡ณ: returned home โ€” an unavoidable situation called me back ๐Ÿ 
* `feat(usa)` ๐Ÿ‡บ๐Ÿ‡ธ: on-site at Beaverton, Nike World Headquarters โ€” privileged to work alongside great people โœจ
* `feat(canada)` ๐Ÿ‡จ๐Ÿ‡ฆ: based out of Vancouver โ€” explored a beautiful country and learned a beautiful culture ๐Ÿ
* `feat(nike)`: shipped multiple B2B applications for Nike โ€” from concept to scale ๐Ÿ‘Ÿ
* `feat(ajio)`: on-site in Bangalore โ€” built a retail B2B application for AJIO from the ground up ๐Ÿ›๏ธ
* `learn`: people > process, kindness > KPIs ๐Ÿ’›
* `feat(joined)`: as a Tech Lead โ€” huge expectations, hungrier mind ๐ŸŒฑ
* `Initial Commit`: a stranger walked in ๐Ÿ‘‹

ATLAST : Hoping for the best ...

$ git status
On branch new-endeavors                    # Nothing to commit yet, but everything to remember. ๐Ÿ’ซ

OUTRO : The story under the commands

The git commands are a costume. The story underneath is plain.

I joined a infosys almost a decade ago. I am leaving it now. In between, I shipped some things, learned more, and met a small set of people who became the actual reason I kept turning up. That is the part the commands cannot capture.

To everyone who taught me, paired with me, escalated my bugs and forgave my mistakes โ€” thank you for the eight years.

That is the only commit I will not be reverting.

git switch -c new-endeavors -f infosys | Ganesan Karuppaiya