HN user

Periodic

2,650 karma

https://github.com/Periodic

Posts1
Comments733
View on HN

The reason cited seems much more a case of moving call-management into a high-level software system that didn't have the same sort of rigor that telecom systems traditionally have. Maybe it did and someone missed this? It's hard to know. In short it feels a lot more like a management failure than a failure of software.

Where I get the most resistance to functional programming is more in the abstractions: both that they are too complex and that people aren't already familiar with them. High-level/complex/abstract patterns are hard to understand the first time and FP seems to make those patterns easier to express.

I'm surprised how much we take for granted an understanding of object-oriented coding in the industry. Any graduate with a four-year degree in CS can be expected to write passable object-oriented code, but many have absolutely no exposure to functional idioms. Of course, those same people may have very little exposure to more complex OOP design patterns. I've seen people's eyes gloss over the same why when saying, "It's just a monad" as when saying "It's just an interpreter pattern".

The thing that prevents me from using VSCode, and I tried, is having to edit code on multiple systems. It's so nice to be able to have the exact same environment on my local system, remote production systems, test servers, VMs with crappy graphics. All I have to do to get my development environment set up on just about any Unix system is copy a few dot files.

Maybe there's a solution with SSH file systems or similar, but now I'm getting into the realm of configuration we were hoping to avoid, right?

For a while I was even using a Chromebook and doing most of my coding by SSHing to my much more powerful desktop.

Two examples:

You'll find a lot of part-time workers that work 30-35 hours/week, including in IT, because that is the most they can work without being entitled to benefits. The difference in the nature of that work and the benefits may hide any significant differences due to total hours.

There are also plenty of companies where the employees only work a few hours per day but are in the office for 8-10 hours. Take Google, for example. It's fairly easy between gym, meals, massage, sports league, etc to only actually have 30 hours/week allocated for work, even though a person is in the office for 8-9 hours. However, it may be a huge psychological difference to be trying to fill your work day vs. having full control over time.

Dogsled racing is a working area that has seen trend away from pure huskies. There are still plenty of huskies in the sport, but mixed teams are very common in the Iditarod now. In 2000 there were only three all-husky teams in the whole race. The racers are crossing with other breeds and bringing in new dogs that are more optimized for the race. There's a danger that in the long run they could end up with something extreme, like what greyhounds are for racing, but right now it's full of healthy, diverse dogs.

For apartment dwellers I always recommend getting an older dog. Puppies are cute, but they're honestly a lot of work and generally high-energy. After just one or two years most dogs will settle down and you'll have a very good idea of what you're going to get. The adult dogs are perfectly trainable. Most people who get puppies also have no actual skill in how to train dogs, so they're basically rolling the dice on what their dog's personality is going to be like.

Rescue organizations (in the US at least) are a great place to find dogs. The dogs have often been in a domestic setting with a foster owner. The history of the dog is usually known. You'll be adopting dogs in the 2-8yr range and you'll have a great idea of what you're getting.

It can take a while to find the right dog, but it should. It's a decade-long commitment.

I'm glad you used the phrase "get a pure breed" as opposed to "purchase a pure breed". There are far to many amazing dogs that need a home to spend money buying a dog.

If you want a rough story, look at the Bernese Mountain Dog. Twenty years ago the life expectancy of the breed was only 7 years due to congenital heart problems. Breeders have been working to breed it out of them and introduce more variety in the genome of the breed for some time and their life expectancy has been going up.

The key is to at least get a diverse line, though I don't think there's any reason to get a pure bred dog unless you want to show or breed it yourself.

My father recently purchased a Sharpei. It's father was also it's grandfather because it was basically the product of two kennels interbreeding. In humans go as far as to outlaw that in many countries. In dog breeding it's a matter of course.

All dogs can still interbreed, so they're still the same species. They're different enough from wolves that they're given a different sub-species, sort of like Homo Sapiens Sapiens and Homo Sapiens Neanderthalensis. However, the variety within domesticated dogs is similar to race.

What makes dogs breeds so different is that the dog genome is extremely plastic: it has a lot of room for variation as evidenced by how far pugs have come from wolves, even though theoretically they can still mate and produce fertile offspring.

I think there's a more important metric: productivity has concentrated in the coastal cities. Our workforce is more productive than ever before. Much of our economic gains year after year are due to productivity gains: we produce more goods per worker.

In our current economy, if you want to have a high-paying job you have to have a highly productive job. The best way to do that is to be in a city that has high network effects. Centralization and computerization is allowing people in cities to be more and more productive. This is why even Walmart has fewer regional managers and employs more people in cities managing logistics or even doing research in programs like @WalmartLabs.

Being in a city helps you be more productive due to network effects in contacts, opportunities, leads and education. If we want to help people out, we need to help them get those benefits elsewhere or help them move to the coastal cities that already have these networks.

Nine months ago I had an offer to join Fitbit's engineering team. When I first started interviewing I didn't even realize the company had gone public a six months before. I guess I missed the news.

Looking at the stock price and talking a little with the employees, it was hard to get excited. It had gone from an initial surge of $47/share to $14/share. It looked like an overeager IPO to raise funds for a company that really hadn't quite figured out its market yet. We've seen them many times, but I'm not yet sure what the commonality is. Not having a lasting market? Not having the growth potential?

Most people at the company had an optimistic outlook, but it would be hard to work there and do recruiting otherwise.

Why is it stealing?

Didn't they earn their riches by taking advantage of a system that was put in place by everyone? When someone makes a fortune in a society they are benefiting from the society's trade laws, justice systems, military protection, financial systems, education systems, workforce laws, available workforce, etc.

If the society helps you earn a fortune, shouldn't you proportionally pay back the society for all the help they've given you? Even if you only get to directly enjoy 50% of the value you produce, you still have an incentive for more marginal gains and you will indirectly benefit from the other 50% because you will reinvest it in the society that helped you produce it in the first place.

The most awkward experience I've had with an airport as a US Citizen is LHR. It seemed disorganized, lots policies being enforced by people who had no context on how to enforce them.

The most invasive experience I've had with an airport was TLV. Though it was helped by the fact that I knew they were going to be thorough, they had plenty of staff, and the staff all seemed very well trained. However, I've heard that it can be a lot worse if you provide the wrong answers or aren't a white American traveling on business.

Other airports like FRA or AMS have been relatively pleasant.

I'm surprised how much, as consumers, people will put up with in terms of bad audio. I think cell phones really helped lower the bar when the connections were bad but the mobility was unrivaled. I used to hate calling someone's cell phone because the land-line was generally crystal clear and responsive.

Granted, things have improved a lot over the last 10 years, both in cell phones and internet calling. However, video conferencing still seems pretty obsessed with figuring out a way to get high definition video and both audio quality (from the connection and the equipment) and latency haven't improved significantly for major video conferencing solutions.

The only change I would make is to add an additional call-to-action button at the bottom. I got to the bottom and didn't know what to do next and had to scroll back to the top to find the trial/buy buttons.

I got tired of the part-time contract work. It was frustrating to me that I had to spend about half my time on overhead instead of just working. I had to find jobs, negotiate jobs, manage scope, manage expectations, manage clients, time tracking and billing. It was kinda fun to bill $125/hr, but with all that overhead and taxes it worked out to less than a $125k/yr salary.

In the end I took a regular salaried job that paid better and I got to spend more time doing what I loved: programming.

If you want to do that, make sure you ask the appropriate people, e.g. HR, about it before you do it. A single manager may not know anything about having remote workers, but HR may be able to assist.

I had an awkward experience leaving my last company. I wanted to move and was willing to work remotely, but no one on my team or my immediate managers thought that was something the company would be willing to do so we agreed I'd resign. It wasn't until I had already accepted a job at another company that I started hearing from friends in other parts of the company that it was possible to become a remote worker. It was just so rare that my immediate team was quoting an old policy and they didn't bother to verify it with HR.

To be fair, the job I found has been great and I'm glad I left.

My last company created a policy that when traveling to some countries, specifically China, we were told to only take fresh Chromebooks and set the up at our location. That way we could be reasonably certain there was no spyware (verified RO boot) and no way for for them to take our data even if they took our laptop during entry. Of course, the could have installed a hardware keylogger, but the risk was low enough.

We get special lines that move pretty quickly. It's a relatively boring but painless process if you're a US citizen. I did accidentally bring an apple with me the last time I went through customs, which added an additional 15 minutes waiting in an additional line to get approval to throw it away before boarding the plane.

This was on the way back from Israel though, so I was very aware of how much easier re-entry into the US was than going to Israel.

But as a US citizen, I have no idea what visitors have to go through.

If you do that, then you may be judged solely on your passport. That's fine if you come from a stable and prosperous country. Traveling abroad on a German or US Passport? You're probably fine. Try the same thing on a Syrian passport and you're probably going to run into problems.

I agree that we should protest, but it won't help that middle eastern student who wants to go to a conference or the business person who wants to meet a potential trade partner. Both need to travel for their livelihood, and depending on their circumstances it could significantly affect their life at home based on the opportunities they can find abroad.

They might not have the luxury or the courage to simply walk away.

In the US we have a way to stop this: we have to be loud enough to be heard. That doesn't involve civil disobedience (no one would listen to spoiled US citizens) but we can complain to our politicians, we can protest, we can get into the media with it. Unfortunately, it's not a majority opinion and will likely be drowned out in favor of the current wave of xenophobia sweeping US politics. If you did this coming into the US, half the country would just say they were glad you didn't come.

At this point, civil disobedience on the issue is likely irresponsible.

Why aren't hedge funds compensated based on some sort of alpha, the difference from a benchmark? One of the common memes of investing over the last few decades is that no one can reliably beat the market. It's very easy to use an index fund to track the market at very low cost. If I invest in an actively managed fund I want them to be compensated for doing better than I could have done myself.

There are a few advantages to this, in my eyes:

1. They only get compensated for their value, not the rising of the economy. It's terrible for the investor to have an economy that's going bonkers and the hedge fund that's taking 20% of that while not providing their own value. You could easily be doing worse after fees. 2. It incentivises managers to figure out ways to avoid losses. If the market drops 10% in a year, but the fund only drops 5%, treat it similarly to a profit of 5% because that's the value the hedge fund provided.

Looking at any investment gains in isolation is outdated. Investing is easier than ever for the layperson. We need to start looking at the opportunity costs.

Caffeine is known to have withdrawal symptoms. Those headaches, for me in the face and forehead, seem to be a common symptom.

As I went through my 20s I experimented with abandoning coffee a few times. I had developed the habit in college and I wanted to ensure that I was continuing to drink coffee for the benefits and not simply because I was addicted to it. This meant that I did handful of experiments with not drinking coffee for 2-3 months. The first week or two would be rough. Headaches starting 24-30 hours after I stopped and persisting for about a week. After that I would just settle into what felt like a normal life, but a lot more groggy.

The main difference between my life with coffee and my life without seemed to just be how grumpy I was before noon. I still had insomnia, I still got tired after lunch. Those things seemed unconnected to the coffee.

Maybe I need to go off coffee for a long time to really see the benefits, e.g. give it 3-6 months for my body to recover and stabilize. I'm not sure, but at this point I have what I consider to be a healthy consumption level and I get the benefits of increased alertness and focus in the mornings. I'm focusing on other elements of my life to address any health concerns.

I tried to clarify the wording. I'm specifically trying to call out the structure of Google's management and the general way they approach problems.

For example, even within the profitable Google portion of the business, they often have many competing projects. There will be competing search features, competing chat applications, competing cloud services. Google will make big speculative bets or internally competitive bets because it can afford to just let people build things and see what happens. Google, as a company, doesn't really seem to have any idea of what most individual engineers are doing week to week.

Many companies can't do that. If you are a medium-sized company you probably don't have the market position or revenue to afford to be unfocused.

So many companies try to emulate how Google works. There are multiple books, hundreds or thousands of articles. People speculate on the perks, the review structure, the hierarchy, the autonomy.

However, when other companies try to imitate Google they always fail because they're missing a crucial piece:

Billions of dollars in ad revenue

Google doesn't work the way it does to be successful. It works that way because it is successful.

I found this no more evident than when I worked on Google Search itself.

Amazon Go 10 years ago

What is cheapest in the short term is often not the best in the long run. Economics assumes that the long-term consequences are priced into all decisions, but those consequences may not be clear and people with limited means have to make some very hard trade-offs. The costs may also be put on society as a whole and not borne by the individual. It can be helpful to limit those options as a society.

My best guess at the risks is that we may lose something valuable as a society or damage mental health if we push people away from social interaction. Many people will remain healthy, but those who are in difficult circumstances may find themselves on a downward spiral as they are further isolated from their communities. What if your community doesn't have a large supermarket? We talk about food deserts in the US right now, what if we have social deserts?

A simple example of short-term v long-term, look at soda and sugar-sweetened carbonated beverages. They're extremely cheap. Often less expensive than bottles of water in the US. This encourages many people to buy them as they are a cheap source of calories and sweetness. However, it's only many decades later that we've discovered the damage they can do when consumed for long periods of time. Many people consuming them don't have better food options. A few cities are starting to tax them to make the costs more evident.

Gasoline is another good example. The US is addicted to cheap gasoline and doesn't know how to stop even though we are now aware of the potentially catastrophic consequences.

You're back to the case of having one static page and then having your javascript enhance things as you go. You'll be stuck replacing elements with your JS. I still think it's a great way to think about how we render on things like mobile. Ever get those slow-loading pages where the elements jump all over the place? Or half-way through reading an article the pop-up add finally renders? We need to build those into the baseline.

Fortunately, we can reliably depend on javascript now. What we cannot rely on is internet/processing speed.

I've always found progressive enhancement to work best as an additive process. You want to define the functionality of your page and then add enhancements and verify that the base functionality still holds. If you start from the most complex behavior it is a lot harder to reason about how removing functionality might hurt the page.

Boards in Asana 10 years ago

I'm an engineer at Asana. Trust me, they're full aware that performance is the #1 problem with Asana right now.

The major engineering focus at Asana right now is performance. It has been for a while and they're just starting to roll things out with the new, faster, backend and UI. I think you'll start to see significant improvements soon as the investments they've been making start to roll out. It's already started rolling out to some customers, and the API updates just got turned[1], on for example. Those changes are going to be making it into the UI soon.

If you don't like Asana performance, give it a few months and check back or keep an eye on their blog[2]. Big changes are coming on that front.

[1] https://asana.com/developers/feed/asana-fast-api-open-beta [2] https://blog.asana.com/

Boards in Asana 10 years ago

Every service loses users, but a strong one gains more than it loses. The net users for Asana is still growing (I work here). What might be more useful to talk about is churn rate, but I don't think that's information that anyone in this thread will have data on.

1) It's both cloud based and has a desktop app. I believe the demo screenshots I saw were all in the browser though. 2) There was a mention that it wasn't available immediately but should start showing up somewhere in the dashboard around 1:30 EST. You might have to find it somewhere deep in the settings if I remember what someone else showed me. I.e. it's not in the main app grid by default and has to be enabled.

I wouldn't be surprised if the interview process for experienced engineers is unrefined. At this point in Google's lifecycle most of the qualified, experienced engineers who would want to work at Google already do. There are orders of magnitude more new-grad engineers to interview and so it makes sense that they would lack the practice and refinement on those candidates, even if those are the most valuable candidates to hire. The recruiter might have just been confused and gave him the standard list for any "technical" job that they have to use for new-grads and so cannot ask things with nuance.

When I was an interviewer at Google it felt like 90%+ of interviews were with candidates who had less than four years of experience. Probably half were fresh out of college. After the fifth candidate in a row who can't do simple recursion or algorithmic analysis (and I mean simple) you get pretty discouraged. In one phone interview I got to interview an experienced engineer with over twenty years of experience in C. He completed the question I usually have to spend 45 minutes on with a new-grad in <10 minutes. It was probably my favorite interview of all time because I actually got to discuss the subtleties and he reaffirmed that I could maintain high standards.

When I worked at Google Search Infrastructure (not any ML stuff) I actually built a performant, persistent red-black tree implementation in C++ for creating persistent sorted lists with good insert and delete characteristics. It's was a pretty niche need, but we had it and the existing libraries we could find didn't cover it. We needed it for doing some speculative programing where we were doing some constraint solving and were using a greedy-ish algorithm to explore the constraint space. Arbitrarily solving the constraints was theoretically and practically impossible in a performant way, so we settled for a greedy exploration of the search space but we needed a way to back out of failing lines of exploration.

So, yeah, we needed engineers who were strongly familiar with the theory of how hard things are to solve and knew a lot about different types of data structures. We were in a space the existing libraries didn't really cover.

Maybe not all engineers need these skills, but it was valuable that our team all had them and were thus able to have deep design discussions about it.

The skill that's lacking the most at Google is project management, which is not necessarily a skill that every engineer needs.