<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Vedang.me, posts tagged culture</title>
  <link href="https://vedang.me/feeds/culture.xml" rel="self"/>
  <link href="https://vedang.me/"/>
  <updated>2026-08-31T02:14:12+00:00</updated>
  <id>https://vedang.me/</id>
  <author>
    <name>Vedang Manerikar</name>
  </author>
  <entry>
    <id>https://vedang.me/gojek-10x-engineering/</id>
    <link href="https://vedang.me/gojek-10x-engineering/"/>
    <title>Lazy Weekend Viewing: GOJEK's 10x Engineer - Truth or Myth?</title>
    <updated>2019-07-20T00:00:00+00:00</updated>
    <content type="html"><![CDATA[<p><div class="orgtoc"></p><ul><li><a href='#org0d8a8b6'>Executive Summary</a></li><li><a href='#org8076cdb'>The video</a></li><li><a href='#org122b20a'>Introductions</a></li><li><a href='#org2f90d0f'>How do you get so much done with so few engineers</a></li><li><a href='#org8e9ae08'>Collaboration, Communication and Team Size</a></li><li><a href='#org51ff81b'>What about "number of pods"? Will infinite teams of 5 scale infinitely?</a></li><li><a href='#orge1acd86'>Complexity of organisations</a></li><li><a href='#org2eec0d4'>Monolith to SOA</a></li><li><a href='#orgcd71466'>Relationship as a service AKA How politics enters your system</a></li><li><a href='#orgb175c5d'>Is there such a thing as a 10x engineer?</a></li><li><a href='#org351e4de'>Good practices in coding</a></li><li><a href='#orgc854b60'>Differences between good engineers and 10x engineers</a></li><li><a href='#org6da9ca1'>How do you spot red flags in a new hire?</a></li><li><a href='#org06acc0a'>Onboarding / Engineering bootcamp</a></li><li><a href='#org8a3e3e6'>Gojek culture</a></div></li></ul><p><a id="org0d8a8b6"></a></p><h1 id="executive_summary">Executive Summary</h1><ul><li>Engineering quality is paramount. Focus on <a href='https://dave.cheney.net/2019/07/09/clear-is-better-than-clever'>clean and clear code</a>. Code is the primary medium of communication for any engineer. Write beautiful code and hold people to high standards.</li><li>Adding head count has vast hidden costs and often brings down output. The reason for this is the exponential increase in communication required to align everyone to common goals.</li><li>Similarly, pods cannot scale unless they can own small, independent components.</li><li>Monoliths are normal and good when the company is small. Refactoring the monolithic model into different components allows us to scale pods and org.</li><li>Carve monoliths only when it hits critical mass. Then, identify the pain and pull it out into it's own pod.</li><li>"Relationship as a service" or "Please get this done for me over and above other stuff on your plate"<ul><li>"Traffic congestion" (A team which is too busy) and structural failure can lead to the impression that the system is bureaucratic and political.</li></ul></li><li>Criteria when hiring Engineers<ul><li>Computer science (Can computers understand your code?)<ul><li>Ability to grasp large complex systems</li><li>Understanding of implications of design choices on that system.</li></ul></li><li>Software Engineering (Can humans understand your code?)<ul><li>How well do you communicate through your code? This is the metric that enables building <strong>good</strong> systems.</li><li>The hygiene you show in code is the hygiene you will enforce on others.</li></ul></li><li>Good behavioral traits (Can you grow?)<ul><li>Curious</li><li>Wants to learn</li><li>Can accept feedback</li><li>"Strong opinions, Weakly held."</li><li>"Pride without attachment."</li></ul></li></ul></li><li>Find the full video <a href='https://www.youtube.com/watch?v=He0XBBfCEVk'>here</a>!</li><li>The rest of this post is detailed notes on the video</li></ul><p><a id="org8076cdb"></a></p><h1 id="the_video">The video</h1><p><div class="video-container"> <iframe src="https://www.youtube.com/embed/He0XBBfCEVk" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen> </iframe> </div></p><p><a id="org122b20a"></a></p><h1 id="introductions">Introductions</h1><ul><li>CEO: Nadiem Makarim</li><li>CTO: Niranjan Paranjape</li><li>Tech Recruitment Head: Sidu Ponnappa</li><li>C42 Engineering: Sequoia SWAT Team for solving tech problems<ul><li>They were the rare "other Clojure shop" in India in 2010.</li></ul></li><li>Common consulting milestone for them was "the Client just tried to poach me". When Gojek tried this with Niranjan, they sold the entire company to Gojek.</li><li>Today, Gojek does $9 BILLION in transactions with 300 engineers.</li></ul><p><a id="org2f90d0f"></a></p><h1 id="how_do_you_get_so_much_done_with_so_few_engineers">How do you get so much done with so few engineers</h1><ul><li>Adding headcount does not increase output.</li><li>With every engineer you add, you actually slow down work (exponentially)</li><li>A good finance person will challenge you on every item of spend because they understand that that's how they lose money.</li><li>Similarly, a good engineering leader will challenge you on every addition of headcount. The hidden cost is enormous and impacts ability to deliver quickly and at quality.</li></ul><p><a id="org8e9ae08"></a></p><h1 id="collaboration%2C_communication_and_team_size">Collaboration, Communication and Team Size</h1><ul><li>Every person you add exponentially increases the combinatorics of communication you need in order to agree on what exactly it is that you are building.</li><li><strong>Code is communication between humans. Keep it clean and simple.</strong></li><li>Upto 4 people, productivity grows linearly with addition of people. Beyond that it starts plateauing and dipping.<ul><li>The person who observed this started slicing and dicing teams so that at any point in time a subsystem was being worked on by no more than 4 people.</li><li>By <a href='https://goodroot.ca/post/2018/10/13/practicality-metaphysics-conways-law/'>Conway's Law</a>, he was forcing system architecture to be set up in a certain way.</li></ul></li><li>We chose to map out our systems based on what a 5 person team could do.</li></ul><p><a id="org51ff81b"></a></p><h1 id="what_about_%22number_of_pods%22%3F_will_infinite_teams_of_5_scale_infinitely%3F">What about "number of pods"? Will infinite teams of 5 scale infinitely?</h1><ul><li>As an organization, we find similar diminishing returns with growing the number of pods.</li><li>The company's ability to add pods is also limited by ability of the pods to understand the underlying system.</li><li>If your pods are independent (have to collaborate only once in 2 to 4 weeks), then you are in a manageable situation.</li><li>Multiple pods working on the same problem leads to pushing for local goals (evolving the system to maximize your objectives based on limited understanding)</li></ul><p><a id="orge1acd86"></a></p><h1 id="complexity_of_organisations">Complexity of organisations</h1><ul><li>"Don't slow me down" from CEO to engineering<ul><li>Philosopher poet engineers</li><li>Engineering had to educate the CEO on the bad effects of not on-boarding new comers fast enough</li></ul></li><li>Adding Kafka to our stack allowed us to scale<ul><li>Helped us decouple communication</li><li>Tap into our data, you don't need to ask me anymore.</li></ul></li><li><strong>Refactoring the monolithic model into different components allowed us to put more people on the independent teams.</strong></li></ul><p><a id="org2eec0d4"></a></p><h1 id="monolith_to_soa">Monolith to SOA</h1><ul><li>We first pulled out the allocation system<ul><li>matching driver to customer</li></ul></li><li>Next we pulled out Go Pay<ul><li>This allowed us to staff the team of Go Pay without them having to understand the entire monolith.</li></ul></li><li><strong>Identify a problem, pull it out, establish a pod around it.</strong></li><li>CTO was pushing CEO:<ul><li>Before we move into this new thing, we need to get rid of the monolith first.</li><li>The choice they made was <strong>never stall growth</strong>. This meant hanging on to the monolith for longer than they would have liked, and refactoring it in bits and pieces rather than in one single effort.</li></ul></li><li>When starting out, it makes complete sense to have a monolith.</li><li>When you carve a system out of a monolith, eventually that will become a monolith.<ul><li>Now you need to split it again.</li><li><strong>Identify when the monolith reaches critical mass, and then refactor your team and code-base in lockstep.</strong></li></ul></li></ul><p><a id="orgcd71466"></a></p><h1 id="relationship_as_a_service_aka_how_politics_enters_your_system">Relationship as a service AKA How politics enters your system</h1><ul><li>I need something from your system, so I'm going to lean on our relationship to unblock me and ignore your own priorities.</li><li>"Hey I really need this done fast, because X".</li><li>This will grow until you are completely busy trying to unblock other people and are unable to focus on any of your own priorities.</li><li>Now you have a bureaucracy. The person with the back-channel to the blocked system gets to jump the queue. This inherently does not scale because people without the relationship back-channel get more and more frustrated.</li><li>"Our organization is political." I don't have privileged access, therefore that other guy must be master politician.</li><li><strong>The actual underlying problem is traffic congestion.</strong><ul><li>If you are trying to do your best, you are going to use every resource at your disposal, including your relationships, to get work done</li></ul></li><li><strong>Even in the most well-intentioned and non-egotistical organizations, structural failure leads to the perception of favouritism</strong></li></ul><p><a id="orgb175c5d"></a></p><h1 id="is_there_such_a_thing_as_a_10x_engineer%3F">Is there such a thing as a 10x engineer?</h1><ul><li><strong>As system complexity grows, for you to meaningfully contribute, you need to know the system!</strong></li><li>Criteria to select engineers<ul><li>Computer science (can computers understand your code?)<ul><li>Ability to grasp large complex systems</li><li>Understanding of implications of design choices on that system.</li></ul></li><li>Software Engineering (can humans understand your code?)<ul><li>How well do you communicate through your code?</li><li>Communication problems are the hard blockers on building good systems.</li><li>Well written code provides contextual logic and <a href='https://dave.cheney.net/2019/07/09/clear-is-better-than-clever'>clarity</a>.</li></ul></li><li>Good behavioral traits:<ul><li>curious</li><li>wants to learn</li><li>reads books</li><li>can accept feedback</li><li>^ This is the kind of person who can grow.</li></ul></li></ul></li></ul><p><a id="org351e4de"></a></p><h1 id="good_practices_in_coding">Good practices in coding</h1><ul><li>Every code-base comes with a glossary</li><li>Terms have specific meaning, and naming is critical in the dividends it pays off in the future.</li><li>Every engineer at every level has to take a written test</li><li>We are not looking at whether you can solve the complex problem. We are judging how you express yourself. You are a programmer, and your code should speak well for you.</li><li><strong>Hygiene becomes more and more important as a programmer becomes more and more senior.</strong><ul><li>The hygiene you show in code is the hygiene you will enforce on others.</li></ul></li><li>High standards are important.</li></ul><p><a id="orgc854b60"></a></p><h1 id="differences_between_good_engineers_and_10x_engineers">Differences between good engineers and 10x engineers</h1><ul><li>10x <strong>outcome</strong> (not output)</li><li>As you grow your organization, individual outcome is less important. Team outcome is what you need to measure.</li><li>Engineering is completely a team sport.</li><li>You can have deeply capable and extremely competent individual contributors who like to work alone. As long as their code fits beautifully with other systems, they are multiplying everyone's capacity.</li></ul><p><a id="org6da9ca1"></a></p><h1 id="how_do_you_spot_red_flags_in_a_new_hire%3F">How do you spot red flags in a new hire?</h1><ul><li>Every good engineer is highly opinionated. A good engineer has strong opinions weakly held.<ul><li>You should be able to change your opinion on being presented facts.</li></ul></li><li>If you are unable to deal with criticism of your code, that's a smell.<ul><li>We ask junior people to interview senior engineers. This shows the grace they have when dealing with others.</li></ul></li><li>We routinely wind up in situations where you have young people owning complex systems. Senior engineers need to be hired to now deal with these systems, and they will be on-boarded by juniors. They should be able to deal with this fact.</li><li>CTO: "When I lay out a design, I expect people to give me rational criticism so that I can learn from them."</li><li>If you had to hire someone with deep experience vs great behavioral foundations, what would you choose?<ul><li>It Depends!</li><li>Sometimes, you need to bring deep experience to the table to build something out and learn from the guru.</li><li>Behavioral traits means that someone is teachable. Outside the Valley, this is extremely important because of the lack of access to experienced engineering.</li></ul></li></ul><p><a id="org06acc0a"></a></p><h1 id="onboarding_%2F_engineering_bootcamp">Onboarding / Engineering bootcamp</h1><ul><li>Structured decision making</li><li>Basic coding hygiene</li><li>Collaboration<ul><li>How do you engage with someone else to meaningfully decide reasonably quickly what something in code should be.</li></ul></li><li>Heavy focus on coding during the bootcamp.</li><li>We bring in coaches from <strong>every team</strong> and teach. (regardless of hire). This helps us build empathy, which is critical for future collaboration.</li><li>Pride without attachment.<ul><li>Pride allows you to focus on creating beautiful code.</li><li>Attachment means you will stand in the way of the evolution of your beautiful baby. You need to let it go and let others change it.</li><li>If you look back at code you wrote 6 months back and don't notice how bad you were, you aren't growing.</li></ul></li><li>Repeat the same problem every Monday throughout the whole bootcamp. Ask them to review every week and see if they find that feeling of progress.</li></ul><p><a id="org8a3e3e6"></a></p><h1 id="gojek_culture">Gojek culture</h1><ul><li>Even the most high-performing team has to deal with intense time pressure.</li><li>What makes or breaks teams under pressure?<ul><li>Show them the impact that they are making.</li><li>You don't need to push engineers, you need to give them the rush! External force will not drive the maker as much as the impact of work will.</li><li>The value you create is not proportional to the time you put in, it's proportional to the state of your mind in that time you put in.<ul><li>If you are burned out, or your team mate is burned out then there is going to be a huge negative spiral.</li></ul></li><li>To harness creativity, you need balance and psychological safety. The hours that you put in, you need to be in a state of flow. This requires you to take short breaks after days of intense activity.</li></ul></li><li>You can have a 10x engineer amidst you, but you may never know it because you did not give them sufficient leeway to unleash their art.</li></ul>]]></content>
  </entry>
  <entry>
    <id>https://vedang.me/imagine-working-in-engineering-at-helpshift/</id>
    <link href="https://vedang.me/imagine-working-in-engineering-at-helpshift/"/>
    <title>Imagine Working in Engineering at Helpshift</title>
    <updated>2017-09-07T00:00:00+00:00</updated>
    <content type="html"><![CDATA[<p><div class="orgtoc"></p><ul><li><a href='#org4716c40'>What does your day-to-day at Helpshift look like?</a></li><li><a href='#org37a7b79'>What has been your favorite off-site team oriented event, and why?</a></li><li><a href='#orgadfbee9'>What role(s) did you start in at Helpshift and how have you graduated/migrated into different roles?</a></li><li><a href='#orge5f8364'>Favourite thing about working for an SF tech startup:</a></li><li><a href='#org3699c28'>What advice would you have for prospective Helpshift candidates?</a></li><li><a href='#org5df84e4'>What is your proudest moment at Helpshift?</a></li><li><a href='#orgfc1f1f2'>How would you describe the company culture and what do you like most about it?</a></li><li><a href='#org6ef9d7d'>Superpower (real or fake): Obscure Emacs shortcuts.</a></li><li><a href='#org73be9b8'>Slightly addicted to: Tea.</a></li><li><a href='#org13212bb'>Always on the search for the perfect: new book to read.</a></li><li><a href='#orgd6ec17e'>If you could interview one person, dead or alive, who would it be and why?</a></div></li></ul><p><em>Cross-posted from my interview published on <a href='https://medium.com/@helpshift/image-ine-working-in-engineering-at-helpshift-8818247e2188'>Helpshift's Medium blog</a></em></p><ul><li>Name: Vedang Manerikar</li><li>Current Role: Principal Engineering Manager, Backend</li><li>How long you have been with Helpshift?: 7 years</li></ul><p><a id="org4716c40"></a></p><h1 id="what_does_your_day-to-day_at_helpshift_look_like%3F">What does your day-to-day at Helpshift look like?</h1><p>My day-to-day is unblocking people and getting things done!</p><p>I review architecture, read code, enable customer service, help product guys understand the engineering pros and cons of their product decisions and prioritize work for maximum productivity. I work with an amazing team. They make all of this possible and achievable.</p><p>That means I also get to hang out with my best friends, catch up on their day-to-day, laugh at inside jokes that have been running for years and overall have a blast. Seven years at a place lets you build deep relationships and puts a smile on your face when you think about work!</p><p><a id="org37a7b79"></a></p><h1 id="what_has_been_your_favorite_off-site_team_oriented_event%2C_and_why%3F">What has been your favorite off-site team oriented event, and why?</h1><p>When we were cash-strapped and raising funds, a team off-site was the running joke of the company. "After Series A!", we would raise our glasses and say. As time went on without funding in sight, every request turned into "After Series A!".</p><p>So when we did raise our first round, we treated ourselves to a long weekend at a spectacular villa in Goa. It was a heady celebration and the world was our oyster. It remains my favorite off-site because the funding felt like validation.</p><p><a id="orgadfbee9"></a></p><h1 id="what_role%28s%29_did_you_start_in_at_helpshift_and_how_have_you_graduated%2Fmigrated_into_different_roles%3F">What role(s) did you start in at Helpshift and how have you graduated/migrated into different roles?</h1><p>I came to Helpshift with a strong systems background: writing kernel modules and working on storage replication. I started writing Python at Helpshift and then graduated to Clojure (in 2011, when almost no one else was writing Clojure). I've since written and helped design large chunks of the Helpshift architecture, and have learnt interesting things about distributed systems through trial-by-fire. Today, I make an impact by making sure my team has clear, unambiguous goals and all the resources to achieve these goals.</p><p><a id="orge5f8364"></a></p><h1 id="favourite_thing_about_working_for_an_sf_tech_startup%3A">Favourite thing about working for an SF tech startup:</h1><p>I have a lot of "favorite things" about working at Helpshift (We keep our workplace fun!). A small example of this is that on any given day someone or the other will bring home-made snacks and goodies for the others to enjoy.</p><p><a id="org3699c28"></a></p><h1 id="what_advice_would_you_have_for_prospective_helpshift_candidates%3F">What advice would you have for prospective Helpshift candidates?</h1><p>We're still a small enough company that everyone knows everyone else by name. If you're the kind of person who wants to get in on the ground floor and grow with a company, we're perfect for you. Come with a no-nonsense, no-bullshit attitude. Be a kind person.</p><p><a id="org5df84e4"></a></p><h1 id="what_is_your_proudest_moment_at_helpshift%3F">What is your proudest moment at Helpshift?</h1><p>My colleagues and I have taken this company from serving 0 requests per second to serving 50,000 requests per second. We're installed in over 2 Billion devices in the world. That means that there's a 50% chance that you (reader) have us installed in one of the apps on your phone. That sentence is a source of great pride for me.</p><p><a id="orgfc1f1f2"></a></p><h1 id="how_would_you_describe_the_company_culture_and_what_do_you_like_most_about_it%3F">How would you describe the company culture and what do you like most about it?</h1><p>As a company, we've always looked for attitude over smarts. We want people who are good listeners and good communicators. We want people who are passionate and hold strong opinions. We want people who care about quality. This is the culture that we've always striven to maintain at Helpshift.</p><p><a id="org6ef9d7d"></a></p><h1 id="superpower_%28real_or_fake%29%3A_obscure_emacs_shortcuts.">Superpower (real or fake): Obscure Emacs shortcuts.</h1><p>Give a man Emacs and he'll get some programming done. Teach a man how to tweak it and play with it and he'll happily shave yaks for the rest of his life.</p><p><a id="org73be9b8"></a></p><h1 id="slightly_addicted_to%3A_tea.">Slightly addicted to: Tea.</h1><p>Walking out of the office to have road-side tea in the evening is an old Helpshift tradition. I'm always on the lookout for great Masala Chai, and if you come to my home I'll whip up a fantastic cup of tea for us to chat over!</p><p><a id="org13212bb"></a></p><h1 id="always_on_the_search_for_the_perfect%3A_new_book_to_read.">Always on the search for the perfect: new book to read.</h1><p>Reading is one of my favorite ways to unwind. I read anything that I can get my hands on: fantasies, travelogues, thrillers, pop psychology, autobiographies, technical books, comics, you name it!</p><p><a id="orgd6ec17e"></a></p><h1 id="if_you_could_interview_one_person%2C_dead_or_alive%2C_who_would_it_be_and_why%3F">If you could interview one person, dead or alive, who would it be and why?</h1><p>Isaac Newton or Albert Einstein or Alan Turing! (Sorry I cheated.) These were phenomenal people with world-changing ideas. How did they get them? How did they remain productive all their life? What did "work" mean for them? What was their work day like? What did they do to unwind? What did they do for leisure? Who did <span class="underline">they</span> look up to? I'd love to know these answers!</p>]]></content>
  </entry>
</feed>
