A long time ago sonos didn't support apple airplay.
I did some protocol reversing and wrote a small program that pretended to be an airplay speaker to pipe audio to a sonos speaker (archive: https://github.com/stephen/airsonos)
I ended up getting recruiting messages from both the airplay team at apple and some folks from sonos. I didn't end up taking either offer, but it was also an interesting talking point when interviewing for the job I did take.
Sorry but this sounds like LARP, who the hell wouldnt jump on a job offer from apple? Even if it doesnt work out, having Apple on your resume wouldve been an insane career booster, telling people you got an offer from them but didnt take it sounds very unbelievable, atleast personally, I wouldnt have believed you
Lots of people, including me.
Lots of people love being contrarian in theory. If it happened to you for real, no chance youre gonna say no to that
Move to California, go back to an office for 60 hours a week, sign my life away and swear to secrecy about my thrilling position on some compiler team? Yeah I think could say no to that.
What’s wrong with compilers?
Nothing I'd love to work on that sort of thing. The point wasn't that the kind of job is bad, but that even if you're working on stuff that shouldn't be secret, you still have to jump through all those hoops.
And imagine how many middle-managers they have who think a) they're the next Steve Jobs, and b) that what drove his success was being a dick to his workmates.
compiler enthusiasts catching stays:(
Not everyone shares your goals or values.
I've used Apple products for years and generally like them a lot as a company, but I have no interest in working for them or any other large US tech company.
The money is good, of course, but the quality of life sacrifices aren't worth it (for me).
That's not contrarianism. That's understanding what matters to me.
fair enough
There are literally hundreds of thousands of software engineers employed at companies that are of similar prestige and pay as Apple, and many of them will be on HN. If you're getting paid $500k at Netflix/Google/Meta, why work for $400k at Apple?
Uhh no, have you ever dug into compensation that most companies that post on HN are offering? They are offering regular old CRUD enterprise level compensation and “equity” that probably won’t be worth anything
I had a much longer reply. But just read the story of the Mexican fisherman
https://bemorewithless.com/the-story-of-the-mexican-fisherma...
On a personal level, this is my life now.
https://news.ycombinator.com/item?id=36767599
Do you really think I would give this up in exchange for more money and more stress?
Would you say the majority of people who claim to be contrarian aren’t actual contrarians, in your experience? I’m not sure you can infer this in general.
100% guarantee I would
My biggest motivator not to work for apple is this post from Bret Victor: http://worrydream.com/#!/Apple
I am genuinely unsure if this is a parody comment. I am assuming that you are fairly green behind the ears? The thing about Big Tech companies is that they hire lots of developers. That’s in large part makes them Big Tech. “Having Apple on your CV” is not as prestigious as you’re making out. It doesn’t mean you have The Knowledge that makes you a ‘10x developer’ or whatever anywhere you work. In fact, it could mean that your mind has been poisoned by a Big Tech working style, and you’ve developed a bunch of habits that aren’t nearly as applicable to most other organisations.
I say this as someone that’s never worked for any tech company anybody has heard of, nor any hip SV startup.
It takes a particular sort of person to thrive in Big Tech. That isn’t just code for ‘really really really good’. It sounds like you still believe that it is. Plenty of ‘really really really good’ people wouldn’t do well at Apple, and plenty wouldn’t want to work there. I wouldn’t necessarily call myself ‘really really really good’, but I know that I don’t want to work at Apple. Not because I think I’m not good enough, not because k don’t think that I could keep up, and not because I don’t like their output as a company.
Putting companies in a pedestal the way that you are is ultimately damaging for the industry. It fosters the increasingly cringey “get a job at FAANG!!!” culture. I’m sick of my YouTube recommendations being poisoned with “here’s how you pass a system design interview at Google” BS. I implore you to stop putting companies on a pedestal. You need only look at accountants talking about working at the ‘big 4’ to see how utterly ridiculous it can get.
From a developers perspective youre right, most of us here probably wouldnt be able to keep up with the amount of work it takes to thrive at apple, sure. Im looking at it from a future employers view, who sees "Apple", has an iPhone, and immediately has an idea in his head about what kind of developer you are, even if its completely inaccurate- Its all marketing. But also, immediately assuming youre not gonna make it at Apple because of what you heard about their work culture alone sounds like a quitter mindset. I mean at least try. If its not right, good riddance. Its not like having been there is gonna cost anything besides the time you invested.
Apple recruiters have the professionalism and organizational skills of a shady manual labor staffing firm. 5 1-hour rounds, low-balled, and treated with what felt like an ad-hoc process. Wasn't impressed with the people, nor the caliber of engineering talent.
The same is true of Microsoft (Azure specifically), Google, and Amazon.
Only two "traditional" big tech companies of any note for having sharp people and all-around good vibes are Meta and Netflix. Otherwise, I'd rather go with a unicorn like Snowflake or Databricks, which feels more what software engineering was like in the aughts: exploratory, pioneering, actually building things that people haven't before, rather than gluing stuff together or being drowned in the machinations of some incompetent director.
I wouldn't make it at Apple, because I would get pissed off and quit. There's more to life than money. I don't want to work with people that see "FAANG" (or use "staffed by ex-FAANG" in their recruiting pitch) and think it's a good signal to be presenting.
Putting in a stint at any of these lower end tech companies would cost me intangibles that I'm not willing to give up at this stage of my life. Namely, my sanity, spiritual well-being, and fulfillment with life.
Good vibes at Meta? That place absolutely oozes phoney hyper-idealized cringey millennial youth culture. It feels like a cult.
I found Apple recruiters very clear and fair.
Haven't noticed it. All of the E5+s I know are real. Might just be luck and selective filtering on my end to not get involved with the... overgrown children.
Apple's recruiters were flaky on comms, rescheduled me a couple of times, and were disappointing for a company I had higher expectations for.
I can’t really trust anything else you say with the absoluteness which you claim Meta is better vibes than the rest.
Sure, your experience is probably true, but it’s anecdotal and the sweeping generalizations you’re making on limited datapoints makes things untrustworthy
Second, you’re assuming money is mutually exclusive from all else at those companies. You admit not being able to get in, which makes this the equivalent of “money can’t buy happiness” from someone who never had money to know first hand that they wouldn’t be happy
Your values are likely different than mine. You cannot trust what I've written, because it goes against your values. This is fair. I write what I write to express my values, and let those of a similar mettle and spiritual composition get more usable info to navigate their careers. A good example of this is Ludicity. He has values that aren't popular on HN, but that doesn't mean what he's written is untrustworthy or wrong or that his generalizations don't "click" for people who think like them.
Here's what I value: getting shit done, being surrounded by intelligent, hard-working, and perceptive people, not being treated like a peon and gaslit to work to the bone. With that in mind, Meta and Netflix are the only ones that satisfy those conditions. Microsoft is working on some very cool stuff, but those are all in their research orgs, while the rest are effectively the same people that would work at Intel: lifers. Not even coasters, but people who don't care that much at all about tech, and are putting in their hours and moving on with their lives. Nothing wrong with that if that's your value system, but it's not mine. Amazon is a neo-feudalist code mill, no different than Infosys. The people there are better than most devs out in the wild, but that's not a high bar. Google lost its touch when Sundar hopped in around 2015. It's not cool. And Apple I've already lambasted. Netflix's and Meta's engineering cultures are great; I like the people; and I like how none of the people I know there are stressed to the core. Though the problems they're working on aren't interesting to me.
I never admitted to not getting in, that's a conclusion you made yourself. I received offers from all of these companies at various points, but chose not to accept.
Snowflake? You mean the guys who spent 700 million to buy streamlit, a (worse than gradio) python front end.
They’re unicorns for being extremely stupid. I’ll give you that.
They're the only big company that are doing any practical development on database systems (MongoDB doesn't count; and Yandex, while fantastic, is removed from the count for being Russian, in these times).
Every company has their warts. Some warts don't matter to me.
Meta? Out of the BigTech companies I would least want to work for are Meta and Amazon (again).
Parent comment:
Your comment:
You have some weird fetish with FAANG?
You have a very idealized view of BigTech. You don’t work any harder at BigTech than anywhere else. I’m not saying that the work is easy and there aren’t crunch times. But if you can deal with corporate BS - something you have to deal with at large companies that pay a lot less - and you have the skillset, you don’t work any harder there than you do at most other companies.
Well Amazon is a well known shit show (been there done that)
Not everyone on this site is a student with nothing on their resume.
Interesting projection, but to respond to your point: anyone could just put in a decade at Averagecorp inc. or even just hop around and throw together a decent resume. If a random OSS side project lands you an offer from apple thats gotta be jackpot level luck.
Not if Averagecorp inc. pays as much, if not more, than Apple or has better working conditions.
Do you seriously think someone cares if you work at FAANG outside of those student groups on Reddit?
Not really. I have someone reach out every couple months because they saw something I worked on that relates to the technology that team is using. If you take a framework and do something cool with it, and the people who work on it find out about it (say, because someone spotted it on social media) they will often look to see if they can hire you. If you want to improve your chances, pick a technology few people are using and make something cool with that: there’s a lot of people who are experts on UIKit but very few who understand how AirPlay works. To get scouted for the former you have to be really, really interesting.
I'm now with the sibling commenter in that I can't tell if this a troll account.
In case it's not, there's an extension of Cunningham's law. If you're wrong and disagreeable to a sufficiently high degree, people will just ignore or quietly ridicule you rather than try and correct you.
Getting a developer job at Apple or other big Tech company isn’t a particularly difficult hurdle. If that’s a personal goal of yours treat it like trying to get into a specific college and set yourself up for success. You may not have great odds applying today, but there’s many options for improving your chances with some effort.
Not everyone is willing to uproot their life on a whim, even for a theoretically great job and a theoretically great company.
Im sure "uproot your life and dedicate it to Apple" isnt on the job description and apple is very flexible with this stuff. You think all 164,000 apple employees live in silicon valley?
Apple has many large offices outside of silicon valley.
But they don't do the same thing in every office location. Certain offices are only niche locations stemming from the other HW companies they acquired over the years. Apple si super diverse with what it does.
So depending on what job you'll want to do at Apple you might have to relocate.
Apple is definitely not “very flexible with this stuff”.
I would never work for Apple, they are an extremely user-hostile company who bankrolls off of child labor in impoverished countries.
I wouldn’t accept an offer from Apple if given one because I wouldn’t want to relocate and I really don’t have any interest working for any large company at this point in my life.
Heck, I never wanted to work at a large company. A chance to work remotely at AWS ProServe more or less fell into my lap and from the minute I got there I knew I didn’t want to be there more than four years.
More realistically from my connections and experience I would have a better chance working in the consulting division at GCP (full time position). I wouldn’t work there either even though it would probably pay close to $100K more than I make now.
I have the one-time biggest computer company, I guess the Apple of it's time, on my CV, and was pretty good (still am, I think!). Currently out of work. Such things are not the panacea you make it seem.
This would make for an interesting blog post.
Could you recommended resources to learn to do the same?
The repository https://github.com/stephen/airsonos has the code and is surprisingly accessible.
The meat for the airplay side is here: https://github.com/stephen/nodetunes
Please excuse the code quality... I think I was still learning how to write js at the time.
Step 1 — study popular protocols to understand how client/server interactions typically work.
Step 2 — deploy the network appliance in question to your LAN and intercept its packets with wireshark.
Step 3 — begin inference of protocol from observed behavior and test hypothesis by sending hand-crafted payloads to the server in question.
Step 4 — rinse and repeat until assumptions are proven to be correct with a high degree of reliability.
A good way to ensure you’ve captured the major parts of the protocol is to record about 72 hours of traffic and then replay it through a proxy that directs traffic to your newly created service.
If you can interpret the vast majority of the messages without error, you’re getting close to a reliable implementation.
Step 5 — use this strategy to develop a deep understanding of both protocols in question.
Step 6 — write an “adapter” that can translate protocol A to protocol B and vice versa.
Step 7 — implement the adapter towards whatever use case you have in mind.
I actually forgot that I did in fact write about this! https://medium.com/@stephencwan/hacking-airplay-into-sonos-9...
A bit light on the technical details perhaps, but I recall getting stuck on getting the right airplay parameters, learning how byte endianness works... happy to try to answer any other questions as best I can remember.
EDIT: Sorry, I realized that I didn't actually answer the other question. I first got interested in reversing from console hacking, specifically this talk about wii hacking: https://youtu.be/0rjaiNIc4W8 (including marcan of asahi linux fame!). Their group also had more writing at: https://fail0verflow.com/blog/. Also interesting to read about mgba emulator development: https://mgba.io/tag/debugging/, v8 internals: https://mrale.ph, react internals: https://overreacted.io/
Consuming a lot of literature on how different systems work helped me develop intuitions around how you might take something apart. Then it's a matter of trying things and banging your head against the wall a lot, e.g. at some point I was interested in how compilers worked so I tried hacking typescript syntax support into babel (circa 2017 maybe) - I got pretty far! and got a lot better sense of how compilers work.
I remember seeing this published when I worked at Sonos. In fact, I might have been the one who put it on the Slack channel.
It was a cool project at a time when a lot of people were saying it was insurmountable to make us AirPlay compatible.
Sorry you didn’t get the job. I hope you didn’t lose much sleep over it. I left in 2020. I wouldn’t say you’re missing much any more.
I read the parent comment to mean he declined the offer, not that he didn't receive it
Sorry, to be fully clear - i had an internship offer from apple that i declined, and i think i also declined to do the interview process at sonos before getting to the offer stage.
Why is that? I recently bought a Sonos after getting plenty of recommendations. Even though it sounds great, I hate that they dropped support for Google assistant. Also, the Sonos voice commands can't handle Spotify or YouTube music. Kind of sucks.
I see it as problematic as you. Have two Sonos five and two Sonos one and think about switching to another product more often. But now i‘ve already spent so much money...
However, what should be used instead? I would take the boxes from Apple, but, as far as I know, they are also quite limited (only AirPlay).
Another example of the fact that such things should rather be expanded with open standards.
From my point of view, the best strategy for Sonos would be to be as open as possible.
So, respective teams from those two companies (or even other companies for that matter) are actively searching GH for any mods to their work?
if you use the right hashtags for the right "latest thing", VCs are actively on github
I added a discord link and they joined that too and just watch and lurk, its a weird world
More likely is employees use their own products and happen to see it while searching for a way to do the same thing.
In my experience it's more like people happen to stumble across your work or hear about it somehow, not a systematic search for people working on X thing.
You didn't miss out because Sonos continues to do an awful job software-wise. One of the things I'm most looking forward to as I de-IOT-ize my life is selling that system and running speaker wire like a true G.
The little amplifiers you can get on aliexpress and the like for about $70 can be quite good although pre-covid there were more like $35. They just have simple bluetooth and analogue in and depending on the model support 2 or 4 speakers plus 0 or 1 subwoofer.
I bought a couple and then found 2 pairs of nice second-hand bookshelf speakers. Presumably everyone is upgrading to smart speakers and dumping their old stuff because it was really easy to find great speakers for a very low price.
There's this guy in my town who is still clinging, somehow, to his life in the as a long-haired metalhead hifi bro and I cannot wait to see the look on his face when I go down there and drop a couple paychecks in his lap and say "enlighten me" ;-)
I’m curious, why didn’t you accept either offer? Compensation? Relocation requirements?
have you written about how you created this? very interested
I too, would be very interestd in this.