Ask HN: Need help deciding between a small django shop vs. large .net company
This is my first job after graduation (I'm 23) and right now I just started a position as a developer in a small company which uses python, django, aws, and knockout/angular. I got the position because my past internships have been this stack, however after taking a week I've discovered that their processes and codebase is a little terrifying and I feel like I'll end up in more of a mentor position.
Today I just received a competing offer from a larger company (80-100 employees) which is similar in terms of salary but has many more perks: In house bar, fully stoked kitchen, free gym passes ect. Typically I'd jump at this however the stack is .net something that I'm not familiar with and am not to excited about as I'm not a big fan of microsofts history with their paywalled garden.
What I'm really struggling with is I would like to be in a larger company where I can grow more as a developer but I'm wondering if it's worth it enough to sink my time into a .net stack especially when I want to be moving onto the west coast in 3 years.
Any advice is more than appreciated.
13 comments
[ 3.4 ms ] story [ 41.3 ms ] threadWhile .net itself may not be "cool" you'll benefit a lot from diving into an entirely different language, framework and ecosystem. Plus, it sounds like you may get some good mentorship, which is invaluable when you're starting out.
Bottom line: don't sweat the .net - dive into a different stack, spend a few years learning its way of doing things and then see what you want to jump into next.
If you are starting out, keep in mind you are coming into a live and running environment. What looks chaotic to you may just be something that grew up organically over time and has an internal logic that isn't readily apparent. If they have money to pay you, they must be doing something right. Consider seeking that expertise out, even if you feel you are not necessarily being challenged at the technology level. You can always change jobs later when you have this experience under your belt. First jobs out of college are supposed to be "stepping stone" jobs anyway. "Get what you can and move on" is an entirely legitimate way to approach this.
Think about where you want to end up eventually. If you want to move into corporate-land writing reports against business databases, go for the .Net shop. If you want to eventually do "fun" stuff in startup-land, then stay where you are. Because the reality is the complexity of what people are doing with .Net is relatively low - they use it to run businesses, so you're always writing a variant of a shopping cart or accounting program. When people want to do something interesting/new/really challenging, they tend to choose other tools than those provided by Microsoft, inclusive of .Net.
So I guess if you want immediate security, go with the .Net shop. (Though be aware that in any large or even medium-sized organization you are as likely to have to learn politics as programming.)
Otherwise, stay where you are a little longer and see if you can find some value in what you have to work with now.
Perks and even salary at this point are far behind the benefits of working with an excellent team you can learn from, in my opinion.
Microsoft has open-sourced .NET and C#. It's been helping Miguel de Icaza develop Mono for many years.
That said, pick the opportunity with the best team. Pick the opportunity which will push you the furthest. Pick the opportunity where you will learn the most. Pick the one that takes you out of your technical comfort zone the furthest. Pick the opportunity to work with people who make decsions on technical merit.
Good luck.
One last thing is the importance of writing code in a static/typed language. It allows you to write and build things in a different style. It changed how I looked at programming and once I had learned another paradigm, I became far more interested in others. It led me to functional programming which in turn led me back to Object Oriented Programming and reading a bit more deeply about the theory of architecture. It made realize that most of my career, I was either using someone else's architecture or just hacking together the bare minimum for the task at hand without any thought of how the system could change and grow over time.