This also seems like one of those things where Goodhart's law may apply.
718 karma · joined January 14, 2014
This also seems like one of those things where Goodhart's law may apply.
The people there are amazing, and being in an environment where people are not just trying to help the company earn more dollars is like a weight off my soul.
It seems like there are a lot of parallels between agents and core.async.
Agents, like go blocks, run in a thread pool. Any blocking IO should be pushed off to a separate thread outside of the thread pool. In the case of agents, there is (send-off). In the case of core.async, there is (thread)
This is also a bit of a departure for people coming from Go or Erlang/Elixir.
Not sure where I would start other than "daddy reading".
Also, googling "github for recipes" brings up a number of options as well.
> Microservices are one way out of that cycle.
Is the implication that microservices lead to fewer bugs, or that microservices allow you to roll back one service instead of the monolith app as a whole?
I would argue the former implication is a dubious claim, and the later doesn't make sense if other services depend on a given service running the latest version, which is often the case when implementing new features.
If you are releasing bugs with every rollout that require a rollback, then perhaps a simpler solution is to do smaller releases with an improved testing/QA cycle.
Once you have accepted a connection, you then have to decide how to handle multiple concurrent connections. Do you use threads? Sub-processes? select/poll?
You can then move on to reading/writing to shared state. Do you use memory? Files on disk? A SQL DB? If using threads/processes, is concurrent access to those resources done safely?
It's a long journey to do the above well. I highly recommend anything/everything by W. Richard Stevens https://en.wikipedia.org/wiki/W._Richard_Stevens
The worst case of back-end complexity requires very in-depth knowledge of hardware, networking, distributed computing, OS internals, and then knowledge of a couple of languages and CS fundamentals thrown on top.
The worst case of front-end complexity requires learning and writing tooling to make writing desktop replacement apps in a browser a less terrible experience. Tack on UI/UX design, you are still not quite at the same level of complexity.
I don't mean to say that front-end isn't difficult or that it doesn't take years to master, just that back-end is even worse...
SASS is nice for CSS.
ClojureScript + Reagent/Re-frame is amazing though! (See Hiccup syntax)
And in the case of side projects: "Best practices are the enemy of fun"
Quantum physics doesn't allow for free will in an otherwise deterministic universe, any more than hooking up a RNG to a computer allows for the computer to have free will.
Some bar napkin math:
$150k (savings) + $40k (living expenses) = $190k post tax.
Assuming 30% goes to taxes (making liberal use of a 401k), that would be $272k salary. @ 35% it would be $292k.
I think the reason everyone is annoyed/down voting is the assumption that every developer in the bay area is pulling top end salaries like that. The reality is the median dev salary is a lot closer to $140k/yr. It's also quite difficult to live on $40k/yr for most people in the bay area ($3.3k/mo). It's definitely possible but compromises will be made (e.g. no children, live with partner/roommates, have no expensive hobbies, no travel, etc).
Assuming everyone is as fortunate as you, and is willing to make the same compromises as you can come off as condescending, as if everyone is is screwing up and they just need to do this simple easy thing you are doing. It's akin to "why don't you poor people just earn more money??"
With that said, congrats on kicking ass at the savings game, and I hope you enjoy your early retirement :)
After 2 full days on-site with said company, I got radio silence. Not even a quick "thanks but no" email.
You basically handle all of the technical things that are over the heads of the normal sales team, both pre and post sales. This will often look like integration type work -- trying to figure out how to make your companies product work in the prospect/customer's environment.
The stacktraces are still often terrible though =/