474 karma · joined February 18, 2014
In practice you lose all the benefits of abstraction, unit testing, proper CI/CD, etc. I haven't met an engineer that likes the service. Some projects have resorted to writing code generation tools, so that they can take config files and programmatically generate the JSON serialization of the pipelines that you're supposed to develop by clicking and dragging.
Anecdotically, I went to the bank across the street 2 years ago to ask some question about insurance. I was told to go to the website and look up the information there. The branch is now closed.
If you browse their site, there's also stories about other illegal activities, such as laundering fish (it's being mixed with fish caught in legal areas on sea). Also some boats are staffed with people that are essentially slaves. They typically stay on sea permanently, and are fueled on sea. (http://oceana.org/blog/how-global-fishing-watch-can-combat-s...)
Price is quite low (I think 20-30 euro) for which you get 20 hours of excellent video material. After each section there is a practice where you build something (using your own AWS account billed against your own credit card).
They spin up the VMs with either open source Spark or the Databricks runtime - you get to choose the distribution and version before spinning up the cluster.
If you have enough workloads you can run your own pool of VMs to provide a 'serverless' experience to your Spark users: https://databricks.com/blog/2017/06/07/databricks-serverless...
Ansible is great; easy to learn and powerful. I recommend the book "Ansible Up & Running".
Learn Linux thoroughly. I recommend the book "How Linux works". You want to know how you can do basic administration such as managing users, setting up syslog, registering system services (systemd/init.d) etc. Also, learn how ssh works, how you use keys, how ssh config file works, agent forwarding, etc. One of the last chapters/appendixes in the Ansible book goes into detail.
Learn about monitoring, for example using the book "The art of monitoring". Graphite + Grafana works great for me. There are many choices, don't get into the rabbit hole of trying to compare them all. Just set up end to end monitoring and alerting. We use Seyren for alerting which is simple and nice.
I also like the book "Site Reliability Engineering" by some Google engineers. Though this is more advanced stuff, for mature organizations that have the basics covered.
Kim Zetter - Countdown to Zero (on Stuxnet virus and how it was smuggled into the nuclear facility; very interesting)
Gary Kasparov - Winter is Coming (we should consider Russia a dictatorship by now; though until recently, western politicians treated it as a democratic partner country)
Mark Goodman - Future crimes (wide spanning book on crime in the age of the internet)
Philip E. Tetlock - Superforecasting (how amateurs can consistently beat domain professionals in forecasting all kind of stuff)
Venkat Subramaniam - Programming Concurrency on the JVM (good overview of your options (diy with locking / akka / clojure & STM))
Location: Rotterdam, The Netherlands
Remote: Yes
Willing to relocate: No
Linkedin: https://www.linkedin.com/in/rolanddeboo
The last 3 years I have worked for startups. This means I've worn all kind of hats, being team lead, backend engineer, frontend developer, architect, sysadmin, release manager, etc etc. :) I prefer to work on the backend but can work on the full stack. I'll learn anything if necessary to get the job done. I have build platforms for IoT solutions, analyzing sensor data in real time. I also like to work on security aspects of a system; I've done a lot of that recently.
Looking for interesting projects, preferably related to sensor networks / machine learning.
Language: Java (well familiar with the ecosystem; Jersey, Jackson, Joda, Guava, Dropwizard, Mvn, etc)
Databases: MySQL, Redis, Cassandra.
Sysadmin: Linux, bash, configuration management with Ansible, clouds (AWS, Digital Ocean, Google)
CI: Jenkins
Frontend: Javascript, HTML, Angular (1)
Other: nginx, rabbitmq, messaging in general.
Generally, open source software benefits from more users. But having a huge amount of users makes it more difficult to improve and cleanup because you can't just deprecate stuff easily. (like SSL2/3).
Also, having 100% of the internet using openssl makes the impact of a vulnerability in that library huge. Some diversity is probably a good thing.
I appreciate the time and effort that you are putting into it, good luck.
The reason is that there are subtle attacks on the implementation, such as timing attacks, which can leak information.