33
52 Comments

Rejected from a VC due to tech stack

A new venture I am involved in is in the midst of a seed round.

We got really far with an established VC, and had workshops across strategy, product and tech to make sure we were a good fit. The final answer was no.

To my surprise, the reason for this was due to the choice of the technology stack, which meant they didn't have confidence in the tech arm (I'm the CTO, so that would be my area :/)

We are a data-analytics company. The main chosen tech stack is Vue.js, Typescript, Azure, C#, .Net, Azure Functions, CosmosDb, Docker - but we're at the point where changing that wouldn't be too painful.

The general feedback during the tech workshop was that it was a surprising choice, given we are aspiring to move into data-analytics and a language like python (no doubt running on AWS) would be a better choice - especially when it comes to hiring, as the typical C#/.Net developer would be too enterprise focused.

I lightly fought back. Over the last 12 years of my career around .Net technologies (not 100% I might add, but it's certainly my primary experience) I have been involved in startups just as much as enterprise using .Net Framework, and I've come across some seriously talented and capable .Net developers and Azure architects.

It's completely true, that when we want to move into more "full on" ML features (probably Series A+) we will need to hire data scientists using python as it's the dominating force in the ML space.
But I don't see this as a reason to run the entire stack in Python. Running a Microservices architecture means that we can run most of the business layer on the .Net/Azure stack and have a dedicated team to running and hosting ML models in Python.

The feedback went something along the lines of "We don't like working with tech leadership that only uses 'what they know'".
Could I run the tech of this startup in another stack than what I have primary experience with? I'm absolutely sure I can.

But should I?

Except for risking getting rejected from VCs who have tech prejudice, I haven't yet found a valid reason for shifting the tech stack - and I've gone fairly deep.

So what's the deal - Am I being stubborn? Am I becoming a tech dinosaur? Or should I shrug this off and move on?

Edit: one small word about the poll below. I'm not outsourcing my decision-making, and it will take much more than an indie hacker post to make me swap any of our tech decisions. But I was curious as to where the community stands as a whole on the situation. And thanks for the replies so far.. much appreciated.

I think Patrick should:
  1. Switch stack
  2. Stand your ground
  3. Get a new job
Vote
  1. 14

    If I were you, I will change VC not the tech stack.

    Your tech stack looks good and you will be much more productive with the stack you are already comfortable with. And adding Python as a microservice whereever required is not a big deal.

    I worked with all major Cloud platforms, AWS, GCP, Azure and University of Michigan internal cloud platform, etc. I am partly responsible for moving LNF services to Azure Cloud. Among all the cloud services I used, I felt Azure is the fastest way to build cloud apps. The amount of config shit we can avoid with Azure itself is soo tempting. Working on Azure with Visual Studio is a pleasure. And C# is the most productive language I know. Maybe C# is the only language which got functional, ObjectOriented features builtin without any external plugins.

    1. 0

      Not a Ruby developer, I'm guessing.

  2. 6

    I was expecting to see something like ruby on rails running on bare metal, or python running directly on VMs. But Azure Cloud function with Vue and TS. WTF. We are using AWS equivalents, Vue, JS (no TS), docker, etc... To run our tech:

    Sure C# is a bit eh, but it is 1000x better than JVM, and other framework languages. I wouldn't use it over JS today, but I never regretted using it like I did with the graveyard of other languages.

    I would tell them to go fuck off. But before you do that, you should ask what tech stack would be better and tell them that you can switch to that, if there is a problem with _____.

    Focus on outcomes, which outcome is negatively impacted by your stack, and then focus on fixing that. Don't focus on arbitrary things. Literally the only thing that doesn't matter for a startup is what your stack is.

    Let's break down the comment though:

    We don't like working with tech leadership that only uses 'what they know'.

    That's definitely a red flag, using only what you know is always wrong, you need to use the best tool for the job, and that's the one that matches the domain. However domains change over time and so do tools. If you are answering questions as the CTO as "We did this because we know it" and not "the reason for X is Y" then you have a problem.

    Decisions on tech should be done deliberately:

    • Why did you pick TS
    • Why are you running on Azure instead of GCP or AWS?
    • How do you decide when to switch languages and frameworks in your team?
    • What does your team do to stay ahead of technology innovations in the SWE space?

    These are the right questions. It isn't about tech stack It's about tech decisions.

    1. 3

      That's definitely a red flag, using only what you know is always wrong, you need to use the best tool for the job

      Hold on now.

      For indie founders, using only what you know is almost always the right thing to do.

      Build a little prototype, get validation, do NOT start playing with some fancy new tech just because a tech trend says you're supposed to.

      After validation, that's a different matter.

      Of course, re the OP, this is a VC play we're talking about here so the rules are different.

      In the VC world it's not about using the right tools for the job, it's about ticking checkboxes.

      Reducing risk in the eyes of investors.

      If you look different to the herd, you better have a convincing argument as to why your tech choices will give you a competitive advantage over other deal flow walking through the door.

      1. 3

        Great response. You've captured exactly what I think has occured.

    2. 2

      "C# is [snip] 1000x better than JVM"

      Why do you say that? (Just curious)

      1. 2

        C# itself has sped up in terms o f version/feature release .. oracle don't seem to give a f**k.
        Both are similar.... However to answer you question would be an essay, things like LINQ come to mind but I'd find a java refugee and ask them about the green fields they found in C# and what water in a dessert feels like..
        If we go into things like .net itself: it's now entirely rewritten, cross platform, and totally OS on github many people have a on older negative view like this VC on what is quite literarily a different framework..
        Ignorance is bliss, OP avoided a bad pairing

        1. 1

          Just to balance/counter some of that for other readers (but not argumentative :) )...

          • Re Release cadence - To be fair Java itself ships new releases 2x a year now.
          • Re LINQ - Java8+ has Collection Streams for stuff like filter/map/reduce/group-by/etc.
          • Re Platform - Yeah both .NET and JVM/JDK being OSS are massive positives for both platforms. I also love the fact that the C# compiler is self-hosted (written in C#).

          I think Java's bad rep is largely earned from the Java6 (and earlier) era, when Sun Microsystems were at the wheel.

          C# sure does have some nice features over Java though:

          • 100x better null handling (nullable/non-nullable types as well as the ?? and ?. operators)
          • Value types (Structs) - Java will have those "soon" I believe
          • dynamic keyword for multifunction dispatch
          • out parameters
          • covariance/contravariance and the "newable constraint" for its generics
          • and more!..
    3. 2

      Thanks for the reply.

      "I was expecting to see something like ruby on rails running on bare metal, or python running directly on VMs. But Azure Cloud function with Vue and TS. WTF. We are using AWS equivalents, Vue, JS (no TS), docker, etc... To run our tech"

      Why WTF, just curious? Vue.js with Typescript is incredibly common. Azure Functions in the backend is just to support the de-coupled architecture of micro-services. Or "nano services" if you want to get particularly buzzwordy.

      Bare metal VMs with a low-level language are great when you are crunching large data sets and need pure performance. At this stage of our journey, we really don't need that, so higher-level languages are helpful at iterating at speed, remaining agile, and not worrying about maintaining infrastructure with VMs.

      "That's definitely a red flag, using only what you know is always wrong, you need to use the best tool for the job, and that's the one that matches the domain. However domains change over time and so do tools. If you are answering questions as the CTO as "We did this because we know it" and not "the reason for X is Y" then you have a problem."

      It's easy to say a good solution to this, as a CTO, is to know everything deep and then make the best choice. I do challenge just how possible that is in the real-world. Sure, there are plenty of polyglot programmers out there, and I personally know multiple languages and am familiar with technology outside of the Microsoft domain.
      However - can I know the absolute inner workings of GCP, AWS and Azure to make the perfect choice? Of course not. I need to be aware, informed and up-to-date. But is going with a Microsoft stack a bad choice because i am particularly familiar with it? Ultimately I need to hire (at a senior level), architect, improve, iterate - it may as well be with the tech that matches my expertise- in particular when I can design an architecture to span multiple technologies when we need to and so far I haven't found a strong argument against the stack.

      1. 1

        It was sarcasm, so you misunderstood the sentiment.

        I'm WTF because I agree with you. If you had been using one of those other stacks, that's when the feedback would have been relevant.

        You have the mindset backwards, I think. It isn't a good argument against, you need to have a good argument for your tech. But with what you are using that isn't a conversation that makes sense either way.

        1. 2

          To be clear, the issue is not us misunderstanding you or your sentiment. If we don't understand that you're trying to be funny (?) then it is actually you who is not communicating well.

        2. 2

          As mentioned in other threads, seems strong here it could be the way you talk about the tech, being super defensive when asked about tech choices
          (Throwing another match the fire - super common for ms stack members. ;) )

        3. 1

          Sarcasm doesn't travel well over a keyboard :)

          You're right about needing to have a good argument for the tech choice.

  3. 5

    Stick by your guns.
    C# and dotnet are fantastic for general web development. Being fully supported by Microsoft and first class support for Azure. I really don’t understand why people hate C# so much.

    I would expect Python to be used for the analysis though, that’s what it’s best for.

    I’d say keep going, build your microservices architecture and use the best language for the job.

  4. 4

    "We don't like working with tech leadership that only uses 'what they know'".

    Or equivalently "We don't like working with tech leadership that uses 'what we don't know'".

  5. 3

    Definitely stand your ground. I can represent other investors and I respect their opinions. Have been raising my own and worked in startup investment firms.

    Tech tech is always the last thing we’d measure. Just like idea and business model, tech tech also change from time to time. What’s really stand is your people and problems you’re solving.

    Find someone who believes in your team.

  6. 2

    I completely understand the VCs perspective. What they didn't tell you is the exit probability. If your main stack is in .Net it limits the potential companies who can acquire it. A few years back, a startup where I was involved as the CTO decided to convert the entire product from .Net to PHP. They did end up bing acquired by another large company.

    1. 2

      I think it depends on the type of acquisition.
      If it's an acqui-hire - then you're right the tech stack needs to line up with the acquiring company.

      There are many other reasons for acquisition, and in many cases the underlying stack that the tech is based on won't be a consideration. After all, this is why we have REST APIs and platform-agnostic messaging technology.

  7. 2

    I agree with the investors that when it comes to hiring, especially the most advancements in ML are made in Python, it is hard to ignore it. That being side, you don't need to switch the whole tech stack to Python. C# and .Net is probably good for data extraction and transformation, then you can use Python for analytic and machine learning tasks. I have been using Python for my data analytic platform for news articles, I used Kafka, Pulsar and Redis as connectors for my analytic components, which means my colleague can use whatever language/framework they want, as long as the input/output format is agreed on.

    I don't see why you cannot add Python as an addition to your stack, so maybe your answer to VC would be you are willing to take any suitable technology for the task and the architect is flexible for that. Why reject a person because he uses Python if he is really good and does what you need for the product?

  8. 2

    I think they are wrong. You should prefer the stack you are comfortable leading. You could combine .NET and Python easily.

  9. 2

    My main question would be: do you need VC backing?

    If no, then stand your ground and run with it.

    If yes, then: do you expect a similar response from other VCs?

    Possibly the issue is not so much around the tech stack being a problem per se. But that they want to see you make changes that they recommend even if it's a huge amount of work. They want to see commitment and for you to show them that they are in control of your direction.

  10. 2

    On the first read through I was very confused because I was guided by your bias into evaluating the tech stack and didn't see any concerns and certainly wouldn't have switched to Python because candidates with C# will be "too enterprise-ey".

    When I read through your post the second time I see the real issue. As others have started to point out, the VC's concern isn't with your tech stack, it's with you. The good news though is it's likely just your inexperience with pitching technical decisions and justifying them through scrutiny.

    You need a few CTO level slides explaining how you selected your tech stack. Your slides should include the following:

    • Your evaluation criteria and selection objectives relative to your domain
    • A matrix of the technology options you evaluated against the criteria
    • A SWOT analysis of your selected stack, and what mitigating factors you've considered to balance it's "weaknesses."

    It's very likely the ultimate issue is not your stack but your weakly explained rational for selecting it (it's the technology you personally know) and low conviction behind your decision since you just offered to switch based on their questioning.

    If you're the CTO you're not going to be the hands on person building the technology for long (especially after raising funds) so they're evaluating your technical leadership. You need to be an experienced leader able to make informed decisions and as an executive present and defend those decisions in a high level way to your board and CEO. I think that's what they were testing by questioning your stack, and in their eyes you failed that test.

    Take this as a learning experience, rework your technical pitch, and be better prepared for the next VC. Fundraising isn't a one and done event so you're going to get a lot of practice and receive a lot more no's along the way.

    1. 2

      I like your answer here (except for the low conviction point which I have addressed below :))
      In retrospect, I wasn't prepared for a line of questioning about the tech itself. I was much more prepared for technical architecture, roadmap, team size planning and other criteria.
      If I had a slide deck that explained some of the benefits in the stack I have described above, I think we may be in a better place today.

      As you've said, it's a learning experience and I'll certainly be prepared for scrutiny in that particular area in future meetings.

    2. 1

      Some good point here, and I’ll reply in detail later.

      The only thing I want to quickly mention is that I think you have been misled by my poll. So far, and especially in the eyes of the VC, I have been steadfast in sticking with my tech stack and the rationale behind it.
      I’m interested in peoples take, but unless I find a valid reason for doing so, I won’t be changing stack.

  11. 2

    I'm not a fan of these tools, but this is a pretty typical tech stack. Like you mentioned, you can choose the right tool for the job and plug them in as microservices as needed. You likely dodged a bullet with a bad VC.

    I think they do have a point with it being harder to find startup engineers on a C# project, for me that's an instant no. I know you'll likely have a hard time finding Python/C# engineers, these camps seem pretty dogmatic against each other.

    I see no technical reason this stack is a problem.

    1. 2

      Microservices helps here. You don't need people that need to know BOTH C# and Python. They can be (and should be) two different roles between backend developers and data scientists.

      1. 1

        Absolutely true, though it is nice to have a uniform system. I find context shifting to be really painful. And it's nice to know that minor maintenance can be performed by most people on your team. But yeah, there's really no technical reason this should be an issue.

  12. 2

    It's like you said, you can have Microservices built using Python. No need to completely overhaul your whole stack for the sake of Python.

  13. 2

    That's weird. For next time, I'd try to think about how to better explain my choice of tech stack and the flexibility regarding switching stacks.

    You managed to explain it to us. I'm confident you can explain it to the next VC if you work a bit on your pitch.

  14. 1

    For what it's worth, listen to the VCs, they know what they're talking about. I'm currently using a sveltekit frontend + serverless express api / mongodb backend but would probably switch to fastapi for anything involving data/ml in the backend. Good luck doing data interop with C# and python. Or worse, use your tensorflow / pytorch / jax pipeline in C# after developing everything in python. You'll probably still have to do some level of data munging in C#, which will be hard once your employees start killing themselves after becoming minimally adept. Also, after you first 4 employees have killed themselves it will probably be hard to find any more since you'll use up all the employable universe of people with the C#/data science background / interest for working in your company. I'm old and frankly things may have changed but .NET is a red flag for me in itself. C# could probably be a decent language for a web server but you lose too much in ecosystem vs javascript or even python. Windows servers are probably more expensive too, and though it doesn't seem like you'll need ultra scale even if you're successful since you'll probably have decent revenue per user acessing your site and I'm all for using the tool to get the job done, that would beg the question of why use C# in the first place? Anyways, my 2 cents would be to use fastapi, maybe make it work with serverless so you can scale your api without much hassle and you and your team will be much happier devs without doing interop and having access to the python ecosystem, being able to use pandas, scikit-learn, pytorch, etc. from your api or as a microservice running fastapi itself with rabbitmq or something. You could keep the api and use a fastapi microservice like I mentioned but that wouldn't make sense in terms of maintaining two tech stacks. I could make sense to transition to the new stack though. People here seem inclined to be unquestionably supportive, which is not always helpful. Food for thought.

  15. 1

    Sounds like this VC is new.

  16. 1

    It's just one VC. Move on to the next one.
    Your tech stack looks solid, and if you can easily plug in a python ML module, there's not much wrong with it. I think it's prejudice on their part.
    You may want to display this option (of plugging in an ML module) in your deck though.

  17. 1

    With the information you provided, I'm inclined to say it's not a problem of the stack itself, but the way the VC perceived your relationship could work in the future. If they feel their opinion is not respected, that's naturally going to be a turn-off (even if the opinion is not accurate).

    From your explanation, it seems you have a pretty good idea of how to scale this technology and even a network to find a team to support growth, so the question is "What might have come across differently to them?".

  18. 1

    Lots of great companies are built using the MS stack. If you eventually want to target enterprise an “enterprisey” stack will help there with integration such as Active Directory etc. Most large companies are still running Windows.

    Your best investor is going to be your customer and not a VC so ignore them. As they should be more focused on the opportunity and not the tech stack per se as you mentioned just a little bit of knowledge about microservices would’ve let them know it’s not an all or nothing.

  19. 1

    Tell this VC that if this is what they mean by providing support beyond just capital, thanks but no thanks. If you switch stacks because some VC told you to, not only are you demonstrating that you have no spine and don't have strong convictions, but you are just setting yourself up to get to the next BS issue.

    Changing out your stack at this stage is insanity, and a good VC knows this. I've literally never heard of a VC telling someone to do a rewrite in a different language in order to maybe get a term sheet? Fuck that.

    Run away, bullet dodged.

    A smart VC will agree with Paul Graham: the best tech choice is the stack you're already familiar with.

  20. 1

    When i see things like this i'm reminded of all the VCs who turned down super-fast-growing companies back in the day like Facebook, Airbnb, etc.

    It's literally staring them in the face and they're like, 'Nah.'

    :-D

    i do get the feeling that if you showed up with some other non-ML, but cooler language like Lisp/Clojure/Go/etc., you'd have gotten a warmer reception. maybe.

    if someone is hating on Azure, they must know something I don't.

    the strawman argument of 'using only what you know' was just a way of them saying, "we don't want to work with state school C# kids."

    i presume it's too late to work with this particular VC - not that you should want to even if that was still a possibility.

    but i think this rejection, however stupid, indicates you should probably switch to python for early stages - you'll be less productive, but it will probably just be safer in terms of actually landing an investment.

    back to the original tho -- i'm shaking my head. if they were actually telling you the truth about what they felt - that C# was shit, and that Python was the way to go - holy shit. i can't imagine the ignorance and arrogance required to make that type of call.

    i'd guess it's where you went to school. if you had the MIT/Stanford/etc. stamp, you could get away with using Visual Basic. :-D

  21. 1

    I think you have a bigger problem than the tech stack. You are a new company, you start with what you know and refine the processes along the way.

    To think that the tech stack alone would be a roadblock seems weird. A tech stack can be updated and completely changed if necessary.

    I don't think that you are getting the full picture here. I would suggest that there is more that they are not telling you.

    But that is just my gut feeling.

    From my perspective why would they even care about what tech stack you are using?

    If your business plan is solid and if you have some traction and users are using your product, it seems that the tech stack should be the least of their worries.

    After all Facebook was first written in PHP which at the time was not the most popular language and it did not stop the company from raising multiple funding rounds.

    IMHO if you believe in yourself as a CTO and if you believe in the product, you should stand your ground and show them that you chose the tech stack for good reasons and that if they are not happy with it, then maybe they are not the right business partner at this stage.

    In any case something seems odd and I would urge you to dig deeper.

  22. 1

    Respect your experience with current tech stack you have. It resonates with our experience. We started with industry tools like alteryx, rapid miner, then we switched to Scala/Spark then the industry forced it's way to Python - due to ML libraries.

  23. 1

    The problem i see with your stack is that hiring a fullstack developper for example would be much harder than say your normal MERN/MEAN stack , as he would not only need to know javascript/typescript, but also C#, be familiar with .Net and Azure, it will be like hiring a unicorn.

    1. 2

      That's not my experience with hiring full stack .Net people, and you don't always need to hire full-stack - it's reasonable to have FE and Be separated in terms of job role.

  24. 1

    " Azure, C#, .Net, Azure Functions, CosmosDb" - the ms stack, yes there would be a lot of judgement about that...

    But i think the main point is the empty void
    Where is the data-analytics part?
    Are you warehouse focused or ML?
    What data stores are you using for that? I don't think cosmosDB is giving you special functionally for that?
    What data libs are you using? Any visualisation tech?...

    Where is that data-analytics tech in you data-analytics company?
    Like I don't know exactly where your going but like event streaming if your near real time, datawarehousing if it's late batch analysis, queueing systems for parallel processing, pipeline tech for multi stage processing...
    Like idk I'm missing where is the core of the company, the main pipeline of data

    Did you show anything around how that scalable flexible data-analytics special sauce of yours is going to work? And how easy it is to add to, reuse latest stuff into etc? Or did you only show how you use ms capabilities in your ms stack?

    (Also rejections are easy and plenty and an excuse is easy. It doesn't have to be fully true or the most important part)

  25. 1

    as the typical C#/.Net developer would be too enterprise focused.

    I could be totally off base here but it sounds like there could be some implicit age discrimination happening. Perhaps they think C# developers index older and they want to fund a younger company using only the "sexiest" tooling.

  26. 1

    Ask yourself what the dream stack would look like at scale, would it be the one you have now? Myspace built off of Cold Fusion and it became a big issue later when it failed to scale. Ignore just one VC's feedback ask yourself if changing the stack would let you tap into a better and more current pool of developers. If the answer is yes and as you say it's not too late to change then change it and get yourself up to speed on the new stuff as best you can. It might be the case that the VC doesn't know what the hell they are talking about or they served this up as a lame excuse and it's not the real reason they said no.

    If you do change the stack you can consider returning to that VC again or telling another one you went ahead and on the recommendation of the VC you made than change, going forward it will remove it as an issue they can seize on to say no.

  27. 1

    As an AWS user that has seen Azure development I can say for certain that Azure is not the hill you want to die on.

    The problem is not where the technology is right now but where it is going. Azure just follows behind AWS. Anything innovative happens you want to be on AWS to take advantage of it. Data-analytics is so crowded that even a slight advantage from your tech stack could be vital.

  28. 1

    Actually, you weren't rejected because of the tech stack.

    They said: "We don't like working with tech leadership that only uses 'what they know'"

    For me, it seems that they weren't sure your skills as a tech leader fit their expectations.

  29. 1

    Lots of talk here about standing your ground, but I'd offer a slightly different view.

    • I'd look at how you're presenting the info in the first place. If bringing in technologies which are best suited for ML later isn't difficult, then present it as such. The comment about "using what you know" sounds like it was presented that way to them. I think it's fair for a VC to challenges choices from the CTO - you have to be able to scale past the point where just using what you know makes sense

    • I'm a big fan of innovating only where necessary. If you start to hear this feedback from more investors as you go, then it's worth considering that you're choosing to innovate in the wrong areas (language selection and stack). I've learned this the hard way - it doesn't go away and becomes more pain than it's worth (hiring, perception both inside and outside the company)

    I'm not saying you should switch, likely haven't received enough feedback for that - but consider other things you can take from the feedback.

  30. 1

    As someone who does C# full time -- definitely stand your ground.
    That VC clearly has no idea why C# is, and is only looking for buzzwords.

  31. 1

    There are plenty of VCs, and just like any advice you can get from them of even just mentors, don't take it for granted !

    First of all, it could very well be just an excuse for them to not continue on the deal .. but even if they really believe what they say, you're not gonna change your entire stack just because someone tells you to .. you're here to grow, not to restart from scratch.

    Talk to more VCs and/or mentors, and if this gets brought back to you (which i highly doubt), then you might need to adjust your "pitch" in order to better show that you have a plan for the long run.

  32. 1

    The first thing I thought when I hit the end of your tech stack was, "Wait, were is python?"

    I'm not to familiar with C#. I've only used it a little to interact with game engines. I'm not sure what data analytics capabilities it has.

    The rejection sounds more like a feedback from a job interview. Did they look at the stack and think,"you can't do serious data analysis with this"?

    Can you maybe find an angle who is more understanding?

    1. 2

      He said it’s a micro services architecture. The beauty of that is that only the heavily analytical parts can be In Python where the “generic” web parts are in dotnet.
      Dotnet makes perfect sense for any web application and integrates perfectly with Azure

  33. -1

    This comment has been voted down. Click to show.

  34. -2

    This comment has been voted down. Click to show.

  35. 2

    This comment was deleted 3 years ago.

  36. 2

    This comment was deleted a year ago.

  37. 1

    This comment was deleted a month ago.

  38. 1

    This comment was deleted 3 years ago.

Trending on Indie Hackers
Yayy! Made my 2nd sale in one month 43 comments Help me positioning my SaaS product 24 comments Need feedback about the landing page 22 comments 🤯Blown Away, Everyday. 20 comments Productized service: Got my 1st client (€2500/m) with 100% upfront payment 17 comments Need Feedback About My Landing Page 14 comments