I like what I've used of the language at work, although I tend to write a lot of JavaScript on a day to day basis, but to say the right hiring process makes Scala an advantage is not quite right in my own experience.
4,880 karma · joined August 3, 2013
I like what I've used of the language at work, although I tend to write a lot of JavaScript on a day to day basis, but to say the right hiring process makes Scala an advantage is not quite right in my own experience.
Code reuse is fine with Angular in my experience - it has been 2.5 years since I last used it though, as I have been working with React in that time and my frustrations about certain aspects of using React & the community has me in a the grass is greener on the other side sort of mindset from time to time, although I know things are not perfect with Angular either (I have some complaints there too).
I've basically learned to accept that using off the shelf libraries come with tradeoffs that you just have to accept as a dev.
To some degree, I feel there are a varying set of reasons why people have settled on React - some were never fans of AngularJS/Angular and some disliked how Google handled the migration story from AngularJS to Angular are probably the strongest reasons. TypeScript also not being terribly FP friendly is also a huge negative to some, whereas React enables more functional patterns overall. Some also dislike separate HTML templates vs. HTML in JS templating, some prefer to cobble together a bunch of small modules together, even if the modules are weaker on average.
Ultimately, I think Google fell short on DX with the change over to Angular 2+ and the damage has lived on since, which is a shame because as a framework it was built really solid.
I tried a number of different languages when I first started seriously pursuing a job in dev - C++, PHP, Ruby, Python, and eventually I settled on JS. JS let me quickly get something working while being able to understand what was going on. The other platforms had various barriers that made it difficult to focus on what I wanted to do because I had to know a ton of other things first, or to accept not knowing how something functioned (especially true with Rails).
The only real gotcha I really had struggled with in my first year as a professional dev was reference variables, but that is a gotcha you could run into in most standard languages and not unique to JavaScript.
I wonder if I have some pressure sensitivity that affects me on these long haul flights, as I haven’t felt it on domestic flights or flights from SFO to Heathrow (or back). In addition, I know I am susceptible to altitude sickness.
I think I'm now on a road of buying a house in the Bay Area sometime down the line, whereas my previous years of working brought me no closer.
Interestingly, my rent has remained stable ever since moving - guess it's possible to have much better luck with smaller landlords.
One of my teammates also has production ClojureScript experience, and called it the worst of both worlds (Clojure and JavaScript). The primary problem is it doesn't try to abstract away the DOM, the most typically problematic part of working with JS.
Just my own encounter with it so far - I haven't had the experience of writing production Clojure myself, but from what I've seen with the syntax, I'm still happily primarily writing JS so far when I'm not writing Python/Scala/etc.
How would you want to respond to the friend?
Personally, I would congratulate the friend on his/her success. I want good things to happen to my friends. It doesn’t take away from my own successes, or change anything about what is going on in my own life, so there is no value in tearing people down.
Hopefully this perspective helps in reorienting one’s mindset.
Another thing I noticed is that most developers who had to touch Clojure in my org all pretty much didn't like it at all.
There becomes a point where it becomes impossible to have everyone be aware of all the knowledge and nuance that is going on without it creating immense noise - when this happens, these middle layers become vital. You still ideally want as little of them as possible, but they all should ideally serve very important purposes. I'm very thankful for all the levels of management in my own organization and company at least (experience may vary of course), it is the best management team I have been under at any workplace - other than my direct manager, each level of management up my chain has over 10 years of management experience apiece.
Manually having to follow threads and unfollow threads is a nightmare compared to the one time configure experience of channels, especially since you cannot just mute all threads, and is easily the worst part of Slack to me.
Since I joined, I have said no to all but 2 candidates I phone screened, and one of those I rejected in the onsite. We didn’t even ask a difficult question for people to implement, but people demonstrated their lack of thoughtfulness in how they approached problems.
I don’t care how old people are - one of my teammates has been at my workplace for a little under 30 years and is valued for his well-honed perspective, tireless QAing, and reliable execution. Regardless of age, I expect people to intelligently talk about tradeoffs, and keep an eye on the problem that is being solved & its effects on the end user.
The interesting thing about bigger companies is compensation stops matching up with the value created. Jumping up $100k-150k in total compensation usually correlates with an exponential increase in productivity increase from the person’s presence, and usually that increase is not from code.
More people have to suffer usually if software ends up long lived without being pushed to upgrade when there are newer technologies that improve the experience - it's a heavy price of others you're asking for a lot of times when choices have to be made between compatibility and improvements that often get discounted unreasonably.
It probably does also vary with your role/responsibilities - I am a software engineer in SWE on high visibility/impact work. Apple does definitely does make you earn refreshes - they don't give them for average performance oftentimes is my understanding, there seems to be a lot of stories out there that this is the case.
Not that I'm a fan of completely flat organizations.
It should be noted that the right way to be productive in a flattish organization is to influence people - this is no different in a big company from a small company.
Part of the problem is not having good enough APIs currently (we have to make too many API requests and data payloads are too fat, sometimes up to 2 MB per request), but imperfect APIs tend to be the case in a lot of apps early in their lifecycle. I've actually been a bit disappointed in React's performance from a UX perspective.