< Back to the archive

Like what you see? Subscribe here and get it every week in your inbox!

Issue #79 - September 6, 2020

If you are looking for work, check out this month's Who is hiring? and Who wants to be hired? threads.

Here are the top threads of the week, happy reading!

Top comment by livueta

Bittorrent. No, really. Lots of nice behaviors when transferring large amounts of data between arbitrary endpoints.

Transferring the torrent metadata is pretty trivial and can be done via a wide range of methods, and having that flexibility can be nice.

Unlike HTTP, you get reasonable retry behavior on network hiccups. Also, more robust data integrity guarantees, though a manual hash test is probably a good idea either way.

At least among people I'm throwing TBs of data around with, torrent infra is common and it's nice to not have to deal with some special-purpose tool that, in practice, is probably a pain in the ass to get compatible versions deployed across a range of OSes. Basically every platform known to man can run a torrent client of some sort.

And obviously, no dependency on an intermediary. This is good if you're trying to avoid Google et al. That does, however, bring a potential con: if my side is fast and your side is slow, I'm seeing until you're done. If I'm uploading something to gdrive or whatever, I can disconnect one r the upload is done. If you control an intermediary like a seedbox, that's less of a problem.

In general, though, torrents are pretty great for this sort of thing. Just encrypt your stuff beforehand.

Top comment by AnonHP

My guess, which is just a guess, is that the founders got tired of Google Search and advertising and Android and mobile hardware and privacy issues and regulatory issues so much that the “don’t be evil” motto was glaring at their faces and made them uncomfortable enough to step aside and let others run the show (or run things into the ground). This must have allowed them to enjoy their riches in relative peace.

Sometimes the things you create grow way beyond your capacity to handle and become soul crushing endeavors that bear little resemblance to the early years of adventure, fulfillment and satisfaction in serving others, and the wise thing to do would be to step aside and preserve your sanity and peace of mind.

Top comment by cbanek

It's all honestly completely useless. I've never had a useful performance review at any company ever. It's either I'm doing bad, and know it, and that is either my fault or due to reasons outside of my control. Or I'm doing well, and know it. Honestly, sometimes at places things were so bad that I felt I was doing terrible, but I was actually keeping the team going by pushing past a lot of tricky issues.

Really I think any company that waits until performance review time is really broken. That could be a year, or sometimes many years.

Also, the usefulness or performance management is usually undermined by the fact that the people doing the worst usually are in hardcore denial as to their performance. Those people are the hardest to change and manage. I've rarely seen performance management actually fix a problem, other than making the environment so unpalatable that the person just leaves.

I really wish I could have all that time wasted on writing useless "self-reviews" back. Even if I was staring at a blank wall it'd be time better spent.

Top comment by huhtenberg

* Allow new accounts, but hide messages from them until their posts are verified manually and the accounts are either approved or shadow-banned.

* Don't delete ban accounts, don't notify them in any way, but tag their IPs and cookies to auto shadow-ban any sock puppets, so that these don't even make into an approval queue.

* Use heuristics to automate the approval process, e.g. if they looked around prior to registering, or if they took time to fill in the form, etc.

* Add a content filter for messages, including heuristics for an ASCII art as a first post, for example, and shadow-ban based on that.

* Hook it up to StopForumSpam to auto shadow-ban known spammers by email address / IP.

* Optionally, check for people coming from Tor and VPN IP, and act on that.

Basically, make it so that if they spam once, they will need both to change the IP and to clear the cookies to NOT be auto shadow-banned. You'd be surprised how effective this trivial tactic is.

All in all, the point is not to block trolls and tell them about it, but to block them quietly - to discourage and to frustrate.

Top comment by pixelmonkey

Not a book, but the best recorded talk ever given about API design is (IMO) by Joshua Bloch, in a 2007 tech talk at Google. "How to Design a Good API and Why It Matters".

He was one of the creators of the Java Collections API and the Java Executor Framework, two of the most durable and most widely-copied APIs ever. That may not seem relevant for an HTTP/REST API, but it is. The design principles are timeless. Here's that reference:

https://twitter.com/amontalenti/status/1260030567501840386?s...

When I had to design a widely-used "HTTP/RESTful" API a few years back, I wrote a summary of the design principles here. It also includes a reference to an old O'Reilly book on the topic, which I summarized:

https://www.parse.ly/help/api/restful-apis

Top comment by SkullTech

SEEKING WORK | Remote only | Part-time

I'm a web-developer, primarily working with backend and cloud technologies, but I know my fair share of frontend technologies as well. I've been working as a freelancer for over 4 years, mostly delivering solutions to startups and solopreneurs. Academically, I am a computer science postgraduate.

Technologies: Python, Flask, Django, FastAPI, Javascript // Typescript, AWS, Serverless, GraphQL, React, React Native, etc.

Availibility: Upto 20 hours a week.

Rate: I can either charge hourly at $80 per hour, or if the project is well-defined I can do milestone based payments.

Porfolio: https://skghosh.me/

Tech blog: https://sumit-ghosh.com/

Github: https://github.com/SkullTech

Email: sumit@sumit-ghosh.com

Top comment by wincy

I have a GED and went to community college for like, 6 years and didn’t get my associates because the final “class” was sitting around the computer lab unpaid. Instead transferred to university and dropped out. Just absolutely hated it. Got married, my daughter was born and suddenly became SUBSTANTIALLY more motivated to “man up and make money”. I lost 75 pounds and suddenly I could think well enough to be a software engineer. Sleep apnea had been killing me at 300 lbs. Had a tech support job and my boss was a programmer. I’d volunteer to do work and he’d give me work that’d push me each time, like learning regexes, writing simple internal databases for the startup we worked at.

Before I had the tech support job I was working on train radiators and it was awful. Came home covered in oil. The radiators weighed thousands of pounds and could easily crush a man.

Couple months later got my first SWE job after making a side project website and making a little YouTube video about the challenges of making a modern web application, like async programming all that stuff. Just kept applying to places until someone liked me, I guess.

Then I gained the weight back and got lazy, got fired from some other jobs. For me at least being fat makes me a bad programmer. Solving health problems for me was key to being able to learn and grow, as the constant headaches and inflammation made it nearly impossible to concentrate.

My job is pretty good, not super stressful. COVID messed me up mentally and I got bad marks for the past six months but I’ve finally gotten the hang of being isolated and not being so panicked. Anxiety and depression make working almost impossible for me without Adderall or some other such stimulant. Trying to wean off of those as I don’t like how they change my personality into a more nervous less interesting person.

Top comment by viig99

ML engineer here, team started as a research team, now that we have things in production and have a lot of devops, engineering work, we bifurcated into pods and work on specific bits and pieces, lot of constant fire-fighting though. Re-wrote entire stack from python to C++ threadpool async grpc (is thrift the only good threadpool server implementation available ?), deployed on openshift, used vector + influx + grafana for dashboards / internal model monitors, elastic search for loggings, lot of other tools for validation, filtering for potential training candidates etc. Right now working CI/CD for ml, during training if model finds a better model based on different validation sets, have one click deployment ready for approval etc

Top comment by bobberkarl

I did. I had a startup selling transportation software to small cities (<40k population). Sale process was 6 months. The tender process is excruciating. You will need to meet them up to 5 times to get an informal yes (3 months), and up to 6 months to get a contract (only if they do not need to organize a public bidding).

If they need to do a public bidding because they did not planned to implement a service like yours soon, the whole process takes up to a year.

Cities all have a different tender process/rules. Most ask you to have an insurance of up to a 5 millions by event adding mostly 10/15k in expenses.

There was a lot of interest, but cities did not have the cash on hand to pay for my services. I was billing up to 100k/city/year.

Mostly, if you have a product that can be paid for by the federal government or the state, they will buy it in an heartbeat. Eg: if it helps handicapped people.

The good: the LTV is really long, 10+ years. Try to find a champion in the town hall, that person will help you setup your offer so that the different branches of the city are happy.

Also, overcharge. Cities love personnal support. You will spend a lot of time on the phone, talking to real people.

For more info, write me an email at bobberkarl(at)gmail.com

Top comment by non-entity

I've wanted to leave the industry for a while for various different reasons and it seems the golden handcuffs are very real. The only realistic options seem to be moving towards adjacent business roles (various management, business, or customer facing roles mostly) as you'll see these are pretty much the majority of suggestions you'll see on these threads. Occasionally you'll see the person who left for a trade or something completely unrelated to tech, but ofc with those you risk starting from the bottom again and not making anywhere near your target salary. IT roles can make around what you want, but i imagine you'd be unable to start in roles paying that without experience.

Another option, which may be unpopular is to find a less demanding job. No one wants to hear it, but theres a plenty of development jobs, especially in non-tech companies where you don't have to be that good, you won't do much outside the standard 9-5 hours, pay what you want,and you can coast at for a very long time as long as you aren't a total incompetent. These ofc come with their own issues, but it might be the most realistic option you have, although you haven't gone into much details as to why you want out.