TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: My friend and I cannot agree on our server side stack for our startup

18 pointsby staselover 9 years ago
I'm a Linux/Mac guy that loves node.js but my friend is more familiar with C# / Microsoft technologies. Me and my friend are building a nice web app with Angular js and we cannot agree on the server side technology yet. He wants our server to be written in C# and MS SQL server. I feel way more conferrable using node.js with Postrgres and Linux servers. Each of us tried other's technology stack and every time one of us had difficulties developing on the other's preferred technology. What should we do in order to help us to solve this problem?

24 comments

smt88over 9 years ago
Here are my thoughts, in no particular order.<p>- Don&#x27;t work with a friend on a startup. You are very unlikely to be friends afterward. If you can&#x27;t easily compromise on something as unimportant as your stack, you&#x27;re going to disagree on way more important things. Why do you need two devs anyway?<p>- Two things that kills startups are analysis paralysis (always trying to make the perfect choice = wasting lots of time) and being afraid to leave your comfort zone. Both of you should be willing to use the other person&#x27;s stack because it will end this pointless argument and also help you learn something new (and possibly something you like even better than what you&#x27;re using now).<p>- If you&#x27;re using Angular, you have an objective reason to slightly prefer Node: it allows you to use a single language on the front and back ends.<p>- One possible compromise would be to use TypeScript, which was created by the same guy who created C#, so it shares lots of the same philosophy. TypeScript is also the native language of Angular now, so you can use it on the front and back ends.<p>- Another possible compromise would be for one of you to work on the back end only, and the other to work on the front end only.
评论 #10968038 未加载
评论 #10968456 未加载
t-ravover 9 years ago
Pick a stack and go, your just wasting time and effort that is not focused on your value prop.<p>Strictly pair program the implementation to facilitate quick knowledge transfer of the tech stack.<p>In the early stages, it is about finding a minimal solution to fit your value prop so you can get people to engage with it and validate your assumptions. This requires more thinking than code. Pairing the implementation will not only allow tech knowledge transfer, it will facilitate those important idea discussions that need to happen too.
ac2uover 9 years ago
I&#x27;m assuming you&#x27;re already past the stage where you&#x27;ve verified the problem you&#x27;re solving is worth solving with technology, otherwise you&#x27;re wasting time.<p>With that said, you need to divide responsibility. Either a &#x27;CTO&#x27; role that has the decision to base the stack in his&#x2F;her choice, or divide the tech up frontend&#x2F;backend and give one person authority over each.<p>When it comes to tech decisions, look at what you can work on fastest, secondary considerations can then be things such as your immediately available hiring pool, and what would gel easier with those people, and finally things like licensing.
评论 #10970237 未加载
maybeokover 9 years ago
For the DB use postgres to save licensing costs. I would be more adamant about the DB decision than the language. It&#x27;s nice to be able to deploy unlimited postgres DBs on as many servers as you need without breaking the bank.<p>In the future you may have ancillary services&#x2F;apps better off using a separate DB for performance. DB licensing costs <i>will</i> influence your design decisions so remove those costs from the equation.<p>C# is fine though (even on linux) and will give you reasonable performance, likely better than node.js is most cases.
评论 #10967675 未加载
dagwover 9 years ago
Compromise and go with RethinkDB and F# on FreeBSD? This way no one gets what they want.
eswatover 9 years ago
I think you need to give one of you of the role of calling these shots and trust the other to make the right tech decisions so you don’t burn energy and time on trivialities like these.<p>As developers we think picking a tech stack is an immensely important decision for the foundation of your company. It isn’t. As developers you should be competent enough to pick up the slack and learn new tech as needed quickly, and leave the extra cycles to pick up things that you suck at but will need to figure out: customer services, business model, etc.<p>Echoing what other commenters have said, if you’re already running into problems about decision making then it’s likely to get worse. I also think you’re optimizing for developer happiness way too early.
onion2kover 9 years ago
Flip a coin. Seriously. Moving forwards is <i>far</i> more important than being &quot;right&quot;. If it turns out you made the wrong decision you can always fix the code later. All the hard stuff (data models, business logic, etc) is portable between languages.
评论 #10969998 未加载
floppydiskover 9 years ago
A little bit of tough love:<p>You&#x27;re going about this the wrong way. Build from the problem down to the tech stack, not the tech stack up to the problem. Here are some questions I&#x27;d ask in the following order:<p>1) What is the problem we are trying to solve?<p>2) At a BUSINESS LEVEL what is our solution? Not we route records through this $DATABASE and $CRUNCH_THEM, but &quot;we enable users to solve $PROBLEM by $GENERAL_SOLUTION_DESCRIPTION&quot;<p>3) What makes us different from other solutions to $PROBLEM or why is our approach more unique than what currently exists, at the business level? Better idea, better execution, what?<p>4) What is the market for $SOLUTION to $PROBLEM? How do we know this? How do we sell it?<p>5) What kind of processing do we need to do? Any serious custom crunching or are we interfacing with a database and moving data back and forth? Can we plug into existing services and leverage them rather than writing our own? i.e. AWS&#x2F;Azure?<p>6) What is the best way to deliver this solution to the end user? Mobile? Desktop App? Web App? Some combination of the above? Why?<p>7) Given $SOLUTION(S) and $CRUNCH needs what&#x27;s maximizes our chances for success by minimizing the number of moving parts in terms of tech stack? Do we need to do a web app + mobile with limited crunching backend? Do we need a lot of heavy server side crunching with parallelism&#x2F;concurrency and a robust object model?<p>Let the problem space guide you to the solution rather than starting from a solution and working up to the problem. It&#x27;ll save you some technical headaches later.
timjahnover 9 years ago
It doesn&#x27;t matter.<p>Focus on validating the problem first. Get people to pay you to solve that problem and once you have people begging you for the solution, then figure out something to build.<p>I&#x27;ve seen (and experienced myself) this mistake too many times. The tech stack does not matter AT ALL.<p>All that matters is that you&#x27;re solving a problem for the people that will pay you. Don&#x27;t spend 3 months perfecting the ideal tech stack and then realizing you have nothing to use it for.
kogirover 9 years ago
Your idea isn&#x27;t yet working. It&#x27;s not guaranteed anyone will want what you build. Figure out realistically which will get you to MVP faster, and use that. Chances are there may even be enough work to keep you both busy without overlapping.<p>Then, if your idea works out, you&#x27;re going to learn a lot and gradually replace all the code anyway. Wait to decide then. This is the one to throw away.
csomarover 9 years ago
I&#x27;m not sure if my advice is useful. I believe in leadership. Pick a leader, and there you have your problems solved.
评论 #10970723 未加载
runT1MEover 9 years ago
as smt88 said, TypeScript sounds like the obvious choice. He probably enjoys the type safety aspect of C# along with Visual Studio (or whatever IDE he uses). You appreciate the fact that the same code on the server runs on the client. You could nail both of these using TypeScript.
herbstover 9 years ago
Sincerly if you both are stuck on your platform and both want to work on this it wont work. Altough your friends choice sounds terrible you probably should just stop beeing friends?
senjindarashivaover 9 years ago
Personaly i&#x27;d go with C# or mono but possibly not MS SQL which would allow you to work in both a linux and a windows environment. The main reason for this would be stability and documentation. The C# language is both well documented and has good standard libraries while my impression of node is that it is an undocumented maze of mostly fairly new microlibraries. I also belive that learning to build good C# code is a lot easier than learning to build good node code.
lovelearningover 9 years ago
Perhaps evaluate the financial aspect of each stack, and compare.<p>I suspect C# &#x2F;.NET &#x2F; MSSQL &#x2F; Windows servers will be higher. In addition to server costs, someone has to pay for those software licenses too.
评论 #10967482 未加载
edimaudoover 9 years ago
Ahh! yes decision making in startups, fun times. Well in this case it may be wise to develop a decision making process or framework. You can choose from one of these listed here <a href="https:&#x2F;&#x2F;www.mindtools.com&#x2F;pages&#x2F;main&#x2F;newMN_TED.htm" rel="nofollow">https:&#x2F;&#x2F;www.mindtools.com&#x2F;pages&#x2F;main&#x2F;newMN_TED.htm</a><p>Furthermore, it may be worthwhile learning each other favorite stack as you could pick up new skills. Could be a bonding experience as well. Just my two cents.
quintesover 9 years ago
Things will only get more difficult. pick the stack and move on.
Raed667over 9 years ago
Pick something that MOST of the people doing the actual devs are comfortable working with. You really don&#x27;t want your team&#x27;s time spent on learning new things.<p>Just do your product.<p>If a stack shoes some limits when scaling or anything else along the way and if your startup is still viable, then you can plan a migration with all what you learned to back your tech choice.
wturnerover 9 years ago
Decide who is more comfortable learning new things....and go with the other persons stack.
lastofusover 9 years ago
Perhaps you could split development along front-end&#x2F;backend lines. One dev uses whatever backend stack they want, and the other does all the HTML&#x2F;CSS&#x2F;JS.
debacleover 9 years ago
Don&#x27;t use MS SQL server. It has serious issues with locking at scale that you can never get around. Apart from that, just make a choice and run with it.
评论 #10967687 未加载
评论 #10970543 未加载
vskarineover 9 years ago
Tough situation. In my exoerience, best way to resolve this is to try each stack for couple of days.<p>On the side note, I highly recommend to try Meteor (www.meteor.com). I was in the same spot a year and a half ago and when we tried Meteor, we didnt know anything about Node but Meteor was so simple that we just went with it and never looked back.
rajacombinatorover 9 years ago
1) It doesn&#x27;t matter ... 2) but seriously, MS stack? I would have serious doubts about whether your friend has what it takes to build a fast moving web startup. At the very least it will limit your ability going forward to hire great web devs, almost none of which want to work with MS products. Best bet, drop your friend, get a sales&#x2F;marketing guy to be your cofounder.
评论 #10977567 未加载
elchiefover 9 years ago
If you need enterprisey features like record versioning, auditing, optimistic concurrency, good authn&#x2F;authz then use .NET over Node.js<p>Personally I&#x27;d go with a universal React.js on Express (snappy SPA for users, crawlable server-generated html for googlebot, with one codebase) talking to a .NET REST API.<p>Then later you can use React Native for mobile and the same REST API. Or an Electron.js desktop app talking to same API.<p>PostgreSQL matches MS SQL Server in most regards, but MS SQL Server kills it for text search, but PostgreSQL does row security, and is, you know, free.