Tag Archives: startup

Starting a New Job In March 2026

I’ll be starting a new job this March. At my new job, I’ll be working with distributed data, its security, and its resilience. I do hope that I get to write some Rust! I guess I also need to buy a few more books on distributed systems, microservices, and data engineering. And some pants to go to the office a few days a week.

I’ve made my peace with the fact that I need to specialize now — or rather have a specialized resume. That means saying goodbye to many things I’ve enjoyed indulging in the past, kernel and systems programming, numerical analysis, algorithm development, and more.

Most of my work experience has been in startups and academic labs. I co-founded one startup and spent six good years at it. It didn’t work out but I have no major complaints. I’ll probably try again someday when personal life is a bit less exciting. After that, I worked at another startup for almost a year. Each startup is entirely different and that makes them both exciting and dangerous. Exciting because you may encounter a totally new way of accomplishing something which you’ve never thought about. Dangerous because if something doesn’t work as well as you like, you have no easy escape. Unlike in large organizations where you can try to switch teams, at startups, you navigate the choppy waters or jump ship.

To me, equity and cutting-edge development or engineering work (in no particular order) are two good reasons to work at any startup. Though for every one unit of cutting-edge work you enjoy, there are typically nine to 999 units of drudgery involved. But that is totally fine. Being a professional doesn’t mean you have to like your job all the time to do it well.

So, after seven years in startups, I was looking for a more structured environment to specialize. I am perfectly fine being a small “specialized” cog in a giant machine where I could appreciate the satisfaction of a task well done. And it feels that the grass is greener on the other side? Reddit seems to agree.

Over the years, I’ve done many things: kernel components, patent filings, numerical simulators, web and Android apps, SDKs and libraries, DevOps, and people-ware such as hiring, designing office layouts, finding vendors, and fixing IKEA furniture. I speak Rust, C++, Python, C, PHP, and TeX fluently, and I’m passable in Haskell, Lua, Java, Kotlin, Scheme, and a few HDLs like Bluespec, Verilog, and VHDL. This makes for a good generalist profile, but no “specialized cog” in a giant machine needs most of that.

So, the first and the hardest problem was figuring out what I want to drop from my résumé so that a job application would actually invite interviews. I could see three to four specialised resumes in my current 12 YoE generalist resume with each having 3-6 YoE. I also need to consider the local economy and hiring patterns. Bengaluru isn’t a place where kernel or compiler developer jobs are easy to find compared to backend or app development roles. The former exist mostly in a few large organizations that follow very different hiring models from startups. I had to focus on my most recent experience and eventually settled on security, APIs, and Rust/C++ development work.

I started the process of writing a resume in late November 2025. Not out of ambivalence toward my current job but to prepare for the worst, and to build muscle memory. It took me more than three months of refining. I feel my résumé is in good shape. I’m not the most careful writer, so I need to reread my writing multiple times to ensure it’s readable. This becomes even more important for a résumé, which has to be succinct and speak clearly to a right audience. I worked on it at a slower pace: editing on weekdays, reading on weekends, and repeating the cycle. r/EngineeringResume has great advice on résumé writing. I also fed my résumé to ChatGPT and Gemini and asked for reviews. It was very useful early on—it helped refine things quite a bit and offered generic advice to tweak the résumé for specific job descriptions, which I rarely accepted. I found it very useful many times.

After a couple of months of reading, tweaking, and rereading my résumé, I felt confident enough to start applying more liberally. I shared my résumé with a few friends for referrals. I’m not always comfortable asking for help—I prefer to walk in through the front door.

I also started doing leetcode and enjoyed the challenge for a week. But soon I lost interest. I am never going to use those patterns at work. Earlier, I took courses in cybersecurity and project management and using a Coursera subscription, but only completed ones I genuinely enjoyed—for example, an excellent course in project management and a few others. I’m not sure if anyone ever looked at these certificates. These courses were a better time spent than streaming something on Netflix.

Things started picking up pace in late December. I got a few positive responses, which would fizzled out after I share my expected salary. Still, it gave me enough confidence to apply to larger organizations. In hindsight, I think I applied to Bunny CDN a bit too early with a weaker résumé—I would have loved to interview with them. Surprisingly, several places I thought would be interested never responded at all or responded very late.

In January, I received positive responses from some large or mid-to-large enterprises: Cloudflare, Toyota, Veeam, HPE, and AMD. Cloudflare, Veeam, and Toyota moved quickly. I missed Cloudflare’s second round but didn’t get another chance to reschedule. I’m still embarrassed about that mistake and also disappointed that Cloudflare didn’t respond to the request to reschedule. My interview experiences at Toyota and Veeam were the best. No one showed up for my scheduled interview at HPE (PS: They called again and promise to reschedule again but I didn’t get any email!)! I declined an interview with AMD after accepting the offer from Veeam. I’m still waiting to hear back from Toyota about the final offer. Things can suddenly move very slowly at large enterprises.

After receiving one offer, I stopped applying for similar role but thought of finishing the other ongoing interviews. How I prepared for interviews is another story. The short answer is, you can never over prepare and you must spend enough time preparing. There are some excellent resources on YouTube. I’ve nothing interesting to add here.

I wasn’t planning to resign from my current job even after receiving any offer. I had significant equity, and the founders are genuinely nice people. My issues were with the day-to-day work and the nature of the organization. I never felt like I was in an engineering org, but rather in a “science” org that think in terms of projects. I like to think in terms of “product” and the word “project” sounds almost philosophical to me (full disclaimer: I’ve a PhD in system biology so I know what “project” means.) While engineering is mostly about maintaining and refining a product or a working solution, academia is mostly about “publish and let it rot” (project). And that’s why I don’t get excited about the word “project”! To be fair, academic incentives are mostly “I was here first, don’t pee on this territory” kind and not “lets build a usable product so folks will pay us money” kind! A few minor developments nudged me to resign before having an offer in hand. I thought resigning will help me focus on the interview process. Fortunately, things worked out well for me and I got an offer after a couple of weeks of resigning. I wouldn’t recommend this route to everyone since interviews are social processes and things can go south very easily even when interviews look very promising.

I also interviewed at a few cybersecurity based startups in growing phase for IC roles. I was taken aback by the LeetCode-style questions for senior positions. I had expected discussions around real security problems they were hiring me to solve. Maybe I just hate LeetCode because I don’t do well in live interview settings and it’s easy to criticize what you’re not good at. I also posted on HN (the “Who Wants to Be Hired” thread). Surprisingly, someone from KLA Chennai responded positively. With KLA, I had the most energetic introduction and screening call ever. I felt that they are thinking very highly of me. I was disappointed that I didn’t perform well enough on their technical assessment (HPC, C/C++) to move forward.

There were also some funny—or irritating, depending on your perspective—experiences. At one European startup with an office in Bengaluru, I was interviewed for two different job descriptions in two separate rounds. I was also asked to write code in Google Docs! At another early-stage startup, they asked me for my high-school board and marks (founder worked at Byju’s!). I tried to keep a straight face. I guess it takes all kinds.

October 25, 2025: Weekly Notes 2025/19


1c9395c136d54d75ac1d5388f3dd451e

  • Paying attention to the structure of communication and work is a full-time job.
    I hope more folks write about it in the context of small teams.
    There is a lot of documentation and advice for enterprise-like environments.
  • I’ve started playing with HTMX a little. I used it at work lately.
    Instead of sending JSON from the server, I am sending HTML using HTMX.
    It feels weird at first—but it is not!
    I am still not sure how far I can go with it.
    Note that I have a PHP 8 monolith at work rather than a JSON API + Vue/React app.
  • You can read about it here:

    https://htmx.org/essays/hateoas/
    .
    Note that you can find an equal number of decent articles suggesting why this is a bad idea!
  • It’s been a while since we heard from Evan.
    I’ve been itching to try Elm for a while.
    The frontend is a complex problem, and many folks recommend Elm to deal with it.



  • Which is a better input to an AI—text or pixels?
    Many believe pixels to be better:

    https://news.ycombinator.com/item?id=45658928
    .
    Karpathy worked (works?) at Tesla, which has its driving system entirely based on camera inputs!
  • I find pixels to be a more “natural” input in biological systems than language—for example,
    mammalian vision systems.
    Olfaction and haptics are equally natural.
    All of these modalities look very different from each other to me,
    even though they create final representations in neural activity.
    A bit like how Haskell and TeX are different even though they run on the same processor!!
  • I don’t think there is something terribly common in these two modalities,
    even if there are correlates or similarities in neural representation.
    Perhaps vision is much more complex than other modalities and

    More Is Different | Science
    .

September 6, 2025: Weekly Notes 2025/12

  • I ordered https://www.oreilly.com/library/view/typescript-cookbook/9781098136642/ early this week. The packaging smelled like kerosene so I returned it. Today, I got a less-stinky replacement. Whey did they wrap the book in such a stinky paper! The book is great. Its my second book on TS after https://effectivetypescript.com/ Can’t wait to read it. Already referred to it on Enum which are pretty finicky in TS.
    • It’s very impressive how much typescript can do while maintaining such a great compatibility with JS.
  • I am more and more concerned about stability of OS on my laptop. Which is funny because during my college days, I’d spend whole week on installing different login manager, window manager and OSes. I had Gentoo on the lab desktop and a Puppy Linux pen-drive with me all the time. These days, if anything is slightly different than muscle memory, I gets annoyed.
  • I am very close to replace my OpenSUSE TW with Debian 13 today. I want a robust base. Appimage is pretty good these days and I don’t see any reason for using a bleeding edge OS. OpenSUSE is a great OS but I wish zypper ref was faster and parallel download is available a year ago.
    • I may have to install Windows on my laptop since a few software (like Notion) has no good app on Linux. Also some of the consultancy work I do needs Windows e.g. kernel mini-filter etc. Also the sound quality in meetings is not very great on Linux. Not really a fault of Linux when vendors don’t spend anything on Linux.
  • Are there startups where folks worked 9 to 5 and succeeded?

Some Thoughts on “Peopleware at Startup”

How important are people to the success of your startup? I believe the answer to be somewhere in between of “very” and “what else is there”. And so startups go hunting for rock-star, or 10x programmers.

Do you really need to hire a few 10x engineers to succeed? Of course not! One of my favorite band “Indian Ocean” has average musicians and yet they make great music. Afghanistan and New Zeeland cricket team has done remarkably well without having rock-stars. I firmly believe that a programmer who is barely 10% better at day to day chores is at least twice or thrice a productive as normal engineer over a course of a year! The reason is the non-linearity called compounding.

You may have felt it in school. A kid who puts 5-10% extra effort every day may become twice as accomplished at the end of the year. Folks who do well at competitive exams seem to understand this very well, though they articulate it as discipline (and hard work). A fund with 5% compounding interests doubles every 14 years, with 10% every 7 years, with 15% every 5 years. A mere 10% change in day to day activity can reduce the timelines by 10 years (and vice versa)!

I firmly believe that many day-to-day activities related to software development have strong compounding effect on its completion or quality, or both.

Finding force-multipliers

How does a project get to be a year late? One day at a time.

When I was in college, Prof. H. Narayanan told me once, “You are creative, but you should also be right!” I didn’t think much of it that time. When you like working with computers, you can’t stop appreciating how hard it is to get it “right”.

Is it possible to get hard problems right in the first or second try? Eventually yes. I mean, anyone can make good progress on anything given “enough” time with consistent effort! But if we are a startup, we don’t have the luxury of spending years. I think we can get it right in first or second attempt if you do the “planning”. You could break the hard problem down to simpler problems that your team and solve with minimal supervision. If you can’t, find someone who can!

Let me put it more concretely. Let’s say I can solve a class A problem 50% of time, class B 90% of time, and class C almost always, i.e., 99% of times. What are my chances of solving a problem if I can break it into two problems of class A, or four class B, or eight class C problems?

Class of sub-problemsChance of solving one problem of this class# ProblemsChance of solving all
A502 of class A25%
B754 of class B31%
C998 of class C92%

You have two options. Find someone who can solve the master problem with 92% chance, or find someone who can break it into eight class C problems. I always seek out the later type of people when I conduct interviews. People who can partition a problem into multiple simpler problems that can be delegated to others. These folks are force multiplier (positive compounding, that is)!

This leads to a corollary that 10x engineers are not necessary. I’ve not met one yet, let alone hiring one. There is an easier way. Search for normal devs who show signs of positive compounding. These folks are usually disciplined in some way, and excellent with tools. Add a force multiplier to the team, and you are done.

None of the musicians in the band Indian Ocean is what I’d call a 10x musician, but their work is of great quality and value. Why can’t start up teams be like that?

Managing Peopleware

The top performers' space is quieter, more prive

A lot has been written about managing teams. You hire talented and energetic people, and they start off very well. You think everything is great but suddenly after a year or so, things are lukewarm at best. What is going on?

In case of young hires, the reason can be pretty really simple. It not always the case that management is evil. When you start a new job (or a PhD program), there is a sense of anticipation. And when you finish a hard project, there is a sense of accomplishment. At these stages, one feels good and life is good. It’s the middle years — after anticipation is over and before accomplishment — that are taxing. If you don’t want to spend time motivating your young hires then just don’t hire anyone under 30s. Though, I’d recommend hiring talented young folks but ensure that they leave for greener pasture in a year or two on good terms.

For experienced hires, perhaps the reason is equally simple. Everyone has a different set of values, and what you value most may not be on the top of their list. You may value product-market-fit and customer-satisfaction, or the next fund-raise above everything else, but the developer just wants to write Rust and clean up tech-debt rather than thinking about any of that! Can you figure out how to work with your peopleware without asking them to sort their values according to your list?

Small things also matter a lot. Programming is a form of writing, and writing is primarily a solitary activity. If someone is good at it, they must have enjoyed spending a considerable time alone learning the craft. Don’t disturb them every couple of hours by sending notifications and emails. Schedule your communication effectively. These minor irritant compounds negatively on a developer psyche, much like “Scar Tissues Make Relationships Wear Out” — John Ousterhout.

I know some very good programmers who are good at talking, and even documentation, but I haven’t seen one yet who loves being a social-butterfly all the time, and doesn’t hate context-switching.

Leadership ensures ‘Everyone Going In the Same Direction’

There is much more to leadership, but I am very much content with this view. It is effective enough for managing a project, if not the whole organization! Therefore, the primary job of team leadership is communicating to ensure that everybody going in the same direction.

While I love setting up processes and workflows, I do recognize the creativity comes from people and not from processes. So there must be some channels for expressing creativity. But beware! I think creativity always conflict with that boring thing called ‘getting things done’. Being creative is nice, but “creative thinking” or thinking outside the box always leads to a different path than what you’ve charted, else it won’t be called creative.

The hardest part for leadership is to say “no” to seemingly good ideas that could lead the startup astray. I don’t feel very comfortable saying no to people for ideas, so I just don’t encourage “creative” ideas in most of the meetings. Like a young Ph.D. student, startup will do well not to indulge into “creative” things. The benefits are imaginary if any, but the cost (time spent) is real! There is time for being creative when you’ve not charted your course.

Also, I am a big fan of incremental improvements. The important meetings must be well-structured and focused, and any attempt to steal the focus should meet with a friendly frown and discouragement.

There is another indispensable aspect of leadership which is required to overcome problems discussed in A Group is Its Own Worst Enemy by Clay Shirky. If you are in this situation, then good luck. You must act decisively or give the position to someone who can. Leadership becomes a bit like using a toilet: you either shit or get off the seat!

June 29, 2025: Weekly Note 2025/02

  • For the last couple of weeks, Ookie has been going to a day-care for a few hours. She gets to play with other kids there. “Playing with other kids” has been the reason for sending her there. After a few days of fuss, she now seems to be enjoying her time there. My very friendly neighbors think that she is too young to go to day-care!
  • Somehow I managed to run 400 km so far! My pace has been slowest. I still need to complete 600 km in the second half of the year.
    • I’ve started paying for RUNALYZE. It is nice that more and more services are offering purchase-parity plan for subscription for Indian users. I’ve been using jonasoreland/runnerup: A open source run tracker for a long time to sync my runs with Runalyze/Strava. One dollar=Rs 100, but it is roughly Rs 30 in purchase parity, so you have to reduce the pricing by third for Indian users! If you are doing this, I’d be happy to work for you for a purchase parity adjusted salary😛.
  • I added another small tool that generates QR codes with a logo. You can find it here https://tools.maxflow.in/tool/qrcodes.
  • I had a minor meltdown at work 😭. Not proud of it. It’s hard to keep cool when many co-workers write almost empty email without a subject/body to report bugs. I’ve been trying to get them to use GitLab issues for a few months now. Either, I need to disengage from work a little at this workplace, or find a place where co-workers are adults and not only they come to work but also know how to structure and plan it.
  • I read Programming as theory building : Naur.pdf and found it illuminating. I am pretty sure I’d have yawned reading it some 10 years ago. This article — written a year before I was born — put “programmers” at the center of software development. I don’t think I can reduce this article to soundbites. Do read. I learnt about this article from HN.

naur-prog-as-theory-building.png -- Naur - Programming as theory building
– I wrote another small utility to remind me that a LWN article has finally become open. I am not able to pay for LWN subscription due to HDFC Bank related issues and I forget to revisit the link when it is open. Perhaps I can rent a VPS in this money and read the article two weeks later?! LWN is a great resource and I feel bad for not paying for it though!
– My Wallet from Budgetbakers is no longer syncing with HDFC Bank. Their support is working on the issue. HDFC seem to have changed their login flow again! My another bank, DBS Bank, doesn’t have saving account API🤣. I opened account here thinking that they are “tech-savvy”!
– I’ve been thinking about hiring a lot these days. At my current company which is an early stage startup, they have been struggling to hire a dev for the last 5 months! I was part of a few interviews — some went well and most were meh, but not able to hire for 5 months feels a bit extreme!
– Both mango trees in my street has mangoes this year! Here is my daughter Ookie playing with her friend. Fortunately, like many streets in Bengaluru, this street is a dead end and have no traffic.

signal-2025-06-28-192959_002.jpeg -- Ookie trying to convince her co-worker to use Rust while Kalu the fifth doing her stuff

July 26, 2025: Weekly Note 2025/06

  • I’ve been a little sick this whole week — a mild cold and occasional coughing. Running was a bit slow, and it took some effort to go out and run. Perhaps some flu.
  • Almost everyone I knew from college has left or about to leave my neighborhood — for search of job, education, status, money or other foo and bars. Sometimes I wonder if there is a point anymore in investing time in people these days?! I wish I am wrong. I have cultivated a few good relationships with my neighbors. Making friends become harder and harder as you age. Looks like it is a universal problem in industrial part of our civilization — at least major newspapers often write articles about it.
  • I am excited about what PHP has been doing lately. The language has added a few QoL improvements. Most recently the https://wiki.php.net/rfc/pipe-operator-v3.
  • I am thinking of writing down what I learnt about hiring for a startup (in Indian context) in a blog post. A lot of advice I find on internet is not very effective in our style of society.
  • I’ve been itching to pickup combinatorics — every problem requires a different trick, and the subject doesn’t require ten courses before making any progress. Like linear algebra, it is very computer friendly. One can do it a hobby or as profession.
    • I plan to implement some routing algorithms for PCB routing to integrate into KiCAD. https://github.com/freerouting/freerouting the inspiration. Of course, it is in Rust with Python bindings generated using PyO3.

June 22, 2025: Weekly Notes 2025/01

I guess, from now on, I am writing weekly notes every weekend. I learnt about weekly notes from Thej many years ago.

Currently, I am at a early stage startup. I joined them early this year after quitting my startup Subconscious Compute (more on it some other day). I’ve been building them an EHR platform to collect responses and related APIs though I was hired to do something totally different. First, a summary of what I’ve been doing here.

I started with Vue3 and fastapi and learnt Typescript along the way. It started off well. I managed to launch a demo version in a month. Most of its users are not technical and this was the first time I built a web-system for non-developers. And quickly realized why there is so much fuss about designing UI for non-tech users.

  • If you are a solo developer or a very small team, DO NOT split your frontend and backend — it creates more than 2x work. For a non-technical leadership (which might think they understand tech), it is a simple ask for adding or changing something trivial at UI, but for you it is migrating your schema, APIs and frontend models. And what is worse, you will make mistakes. You should only change things in one place. DRY and ensuring Single Source of Truth (SSoT).
  • So I bit the bullet and rewrote it in PHP8 & Codeigniter4. DX is now much better. First, I don’t have to switch between Python and Typescript/Javascript. Second, the system now crashes if someone submit invalid value rather than accepting wrong/empty values. The database schema validates the value. Perhaps I’ll add validator in the form/UI using </> htmx – high power tools for html.

This week

  • I explored a few server side qr code scanners. The most commonly used one is mchehab/zbar which doesn’t work well when image is tilted or rotated. Another tool rxing-core/rxing: cRustacean Crossing did a better job (it is in Rust). For example, in the following image, zbar detected no qr-code while rxing was able to detect two. Usually folks will do the qr code scanning using browser or camera at phone. There are some use cases where image needs to uploaded to server for QR scanning.

    IMG_20250618_185815 -- Sample QR Codes. This image contains 4 QR codes for testing various QR detection cli tools.

  • I wrote a Gitlab job to create backup of PostgreSQL server. It runs every 4 hours, uses pg_dump to create a dump, compress it and then Use curl to upload files to S3 bucket.

  • I found https://builtin.com/ on https://fosstodon.org/@ansate@social.coop/114707324371116735. It’s matches are pretty relevant. I’ve been updating my resume and thinking of reaching out to my network for opportunities.

Thinking of joining a startup, consider these points

If you are early in your career and considering working for an early-stage startup (or any stage startup), consider the following points sincerely.

You are not being hired to “learn things” unless learning means solving their problems. Many folks I interviewed seem to have a strange view of learning as if it is like Brownian process. You can learn the rest of your life and don’t accomplish much. Learning == solving problems is a healthy starting point. This view doesn’t conflict with industry interests. In other words, don’t expect to be paid for learning things; you are paid to get things done.

Before interviewing, learn about the product or problem a startup is building or solving. Your time there will revolve around that. Consider yourself extremely lucky if you get to work at things you love. But you must be ok to do things you don’t terribly like. You don’t have to “love it” to get it done properly. Be professional! Also, great jobs don’t grow on trees; you have to earn them!

If you don’t value equity, you don’t value the startup game! There are not many good reasons to work at a startup (fewer to start one). Equity and working in trenches at the frontline are the only good reasons I can think of. I feel that it is okay if you only care for “here and now” things such as cash in hand, as long as you don’t take more than you deliver.

Startups may have money, but most of them usually do. But they are always short on time. If you tend to procrastinate, do not go near a startup. Everything must have been done yesterday. Speed is a virtue. Please consider again if you are laid-back and don’t enjoy the rush. There will always be a rush, and deadlines may bring out the worst in people. And if you also have thin skin, you are in a hell of a pickle!

You may have to do a lot of work you were not hired for. No startup can anticipate your role there. You may have to become a generalist rather than a specialist. Startup hiring advice: prefer generalists over specialists.

Netflix got this right: Your workplace is, at best, your team, not a family. I won’t work with my family or friends since most will be terrible co-workers. Being part of a team means always pulling your weight and some more.

Don’t go to a cricket field if you only care about batting. Your team will be better off without you, no matter how great you are at swinging a bat. In a startup, you may never get to bat and perhaps spend most of your time curating the pitch, watering the ground, and managing the gymkhana. You join for the whole game, not just for batting or bowling.