There are plenty of modern, distributed RDBMSes that make sharding transparent to the user (E.g. cockroachDB, yugabyte, vitess, many cloud offerings, etc.). Most NoSQL databases end up adding transactions because they are important, and thus the scale advantages for NoSQL systems over relational databases are diminishing, if remaining at all.
Git is what happens when a technology is born out of hardcore engineering. Most of the world could greatly benefit from its functionality but it’s too hard for non software-engineers to learn. I hope the next era of version control thinks about the problem from a less technically inclined user’s perspective.
Out of curiosity, does anyone know of any good alternatives that make version control easy? I personally love git, but want to see it’s benefits brought to a wider base of people. Projects like Bit are a step in the right direction.
I’ve always been curious, if you’re working on a really complex system with lots of disparate services (or even if you are using a managed database like Spanner for example), what does your development environment look like? Do you spin up containers for all the services? Run a compatible RDBMS instead of the managed database? All my experience has been with systems that can be set up locally - how do you go about developing/testing/debugging without that?
This is one of those posts where you can really feel the value of senior engineering/previous experience.
I definitely have not approached choosing a new technology with the velocity vs. maintenance trade off, instead just choosing the technology best fit for the job at hand. But when looking at a system holistically, this may not be the best choice. It’ll be good to at least know to consider this in the future (although I’ll admittedly probably still bias towards “fun” technologies).
It was done right before the first Crew Dragon launch. They do such a great job of digging into a company’s history and the business model that powers them.
I’m not arguing you should. But there are undoubtedly some people who would. And a hybrid work environment is detrimental to those who want that in-person experience. There should be opportunities for remote-only/remote-first cultures and in-person only jobs going forward. My argument is that a hybrid model misses the point - you lose almost all the benefits of in-person work in the process.
EDIT: I’m a new employee as well, just so it doesn’t seem like I’m projecting what new employees would want without at least some personal experience
Fair enough. My main work experience is at a smaller startup that has a heavy focus on collaboration so my opinion is biased towards that. In my experience trivial things can be solved with a slack message/call but I greatly prefer in-person interaction for more in-depth debugging, etc. But I understand how that’s not necessarily applicable to all situations.
My main concern, and the reason I posted the above comment, is I think companies may over -correct with hybrid work models. For those that prefer office work a hybrid work model is barely better than a remote-only culture; the office loses its benefits when everyone isn’t there. I’m not arguing these remote-only/remote-first cultures shouldn’t exist - in many cases they provide large advantages - but think there will be a significant desire for office-only environments for those that prefer office work.
People often argue that remote working flexibility is the future, but I think it will be detrimental to both younger employees (losing out on mentorship) and those that do go into an office.
An office is at its most effective when everyone is there to collaborate; it loses most of its benefits when only some people are in person. Because of this I think there will be many companies advertising themselves as office-only as a benefit.
For the past few months I’ve been taking markdown notes which are then transformed into HTML and pushed to an s3 bucket for public viewing. Probably not the best solution within this thread but it costs approximately nothing is a great way to get access to a web-based version of your notes anywhere.
This allows you to throw extra features in the HTML like searching for files and randomly selecting a note for viewing at your leisure.
Zoom actually is profitable and was one of the rare technology companies to be profitable at IPO. Although they do offer a lot of free services they nailed the freemium line - 40 minute free calls - since the most effective business meetings are 45 minutes.
While I do use i3 for more than L/R splits with stacking etc. the largest benefit I get from it is workspace management.
I use i3 with polybar and have dedicated workspace icons (web browser, terminal, editor, to-do, email, music, etc) for quick navigation between different applications. Over time I’ve built up muscle memory (i.e $Mod+3 will bring me to my editor) that has significantly sped up my development process. While you could use another window manager for a similar purpose, I find the relatively minimalist approach of i3 + polybar in my case to be fast and highly configurable.
This is similar to when Pinterest did this back in 2012 and very quickly made large amounts of money but were crushed by public opinion and quickly shut the practice down. It’ll be interesting to see how Brave responds.
Other comments have good solutions but if you are accessing via mobile try out Octal. Dark theme by default, great UI/UX, complete with search, etc. I’ve been very happy with it and have tried out multiple third party clients and this has been my favorite
Interesting article! Another approach is serving webpack bundles from Django views. This allows you to take advantage of the entire node ecosystem and build process (for better or worse) while still utilizing Django authentication, etc. Writing single file Vue components (with hot reloading) and bundling them is definitely more enjoyable than writing static files for Django. If performance is a concern, you can always optimize with webpack in this approach, whereas optimization may be harder in methods such as the one this article suggests
New graduate here who has this admittedly been on only one side of the interview process. In my interviews I got mostly white boarding problems and one take home. The author was mostly correct in discussing the advantages and disadvantages of both (namely the extra-time for take home assignments and archaic algorithms for white boarding) but I feel there are a couple points I can add.
First, I actually believe white boarding questions (at least the automated kind) are assigned more indiscriminately than take home assignments. Many companies just send you online timed hackerrank or leetcode questions as a preliminary filter.
Second, the entire interview process rewards people who study for the interviews rather than those who like to build projects. Unfortunately I believe companies miss out on a lot of qualified candidates, albeit reducing their false-positives from obscure algorithm-type problems. With so many applicants, reducing false-positives ensures quality hires so it works on the company’s end.
Overall, my opinion is the interview process is relatively broken. Take-home assignments offer more insight into actual development skill, while whiteboard questions filter out a large portion of people (many who would be just as good, if not better, at actual implementations.) But it works for the interviewers so change seems unlikely. This is just my experience for new graduate interviews; perhaps it is different at higher levels.