Microsoft Edge Engineering Systems | Full-Stack, .NET, Go, Python | All Levels | ONSITE (Redmond, WA) | Full-Time
In 2019, Microsoft released a new version of Edge based upon the Chromium open-source project. Browsers are the most-used class of application across platforms, and Edge is the most used Microsoft application, with hundreds of millions of users. We believe the browser can help users be more productive and helpful for consumers, professionals, students, and developers. We have a long way to go to reach our goals to bring delight and improve the online experience of our users. We want to build the best browser for our customers and collaborate with the community to advance the state of the web.
The Edge Engineering Systems team builds tools and services that give our engineers super-powers to make changes to the browser quickly and confidently. We work on hard engineering problems as well as unique computer science problems. We build a range of things, from custom tools to streamline workflows, to massively parallel distributed build and test systems. Our codebase is relatively new, and we use open-source tools and work with folks in the Chromium community. If you’d like to work on a close-knit, nimble, and highly collaborative team in a startup-like environment, building infrastructure to engineer a world-class browser, then come talk to us.
Please reach out to me (hiteshk AT microsoft.com) with Hacker News in the subject if you'd like to discuss directly!
Can you share more details on your work? I've wanted to build my own connected outlet for a while and if you have any pointers to resources on this, I'd love to see them.
This could be as simple as directly connecting ESP8266 GPIO to a solid state relay and programming ESP8266 to change the state of the pin in response to a HTTP post, e.g. [1]
Note that you should probably familiarize yourself with basic electrical safety rules when working with mains voltage, as well as fire safety. An intro to digital electronics would probably be a logical next step. Lastly, SSRs have an undesired feature of failing in connected state, so don't connect any loads that could overheat when plugged continuously.
Long, long ago, I wanted a way to launch arbitrary numbers of CMD.EXE windows with arbitrarily-chosen foreground and background colors. The standard settings only let you store a finite number of color entries (something like 16) to choose from. However, the registry key it finds the settings in is based on the executable name, so if you make a copy of cmd.exe called cmdb.exe and run it, you have N more slots of colors to choose from. So I wrote a little hack that took --fgcolor rrggbb --bgcolor rrggbb values and then made a hard link to cmd.exe in the temp directory called something like cmd_rrggbb_rrggbb.exe, set up the appropriate registry keys, and then invoked it with whatever other args you provided. Subsequent invocations with the same args would find the temp executable and reuse it. It was an absurd hack, but it worked really well and it amused me to write it. edit: and is a testament to how idiotic the CMD settings scheme is.
I think some of it might be self-inflicted too rather than purely a scaling issue. Anecdotal evidence here but probably relevant- I got a mail from Uber a while back, where (presumably) some automation noticed that I was taking a bunch of uber rides to the airport when I was in Boston, but never from, so it offered some Uber credit to use from the airport. I was pretty stoked that Uber had such great analytics and this past Saturday, requested an uber when I landed. Once I got picked up however, it was a different story, with the driver claiming I had "tricked him" and that it was illegal for him to pick anyone up from the airport and that Uber had specifically given him guidance not to pick anyone up from the airport. Clearly there was some miscommunication there and although he calmed down once I explained my side of the story, it still creates a bad experience (probably for both the customer and the driver). Uber support was reasonably prompt in getting back to me but it was somewhat of a non-reply and I still don't know if picking people up at Logan Airport is a supported scenario or not. However, my positive experiences with Uber far outweigh the negative ones and I think Uber still has that built-up goodwill going for it which should cushion it through these growing pains.
> and that it was illegal for him to pick anyone up from the airport and that Uber had specifically given him guidance not to pick anyone up from the airport
This potentially has some truth to it. Many times, to operate a passenger service to/from the airport requires the operator to purchase a (costly) license from the airport authority. Depending on bylaws etc, unlicensed operators who provide passenger service to/from the airport will be subject to fines. In other words, providing access to ground-transport operators seems to be a revenue stream for the airport, but also likely serves to protect the air passengers from cowboy/dodgy transport operators outside the terminal.
Anecdotally, I once struck up a conversation with a taxi driver in Sydney, Australia. We'd passed a pedestrian who (for some reason) was standing on airport land, some distance from the terminals, trying to hail the passing taxis. The driver remarked to me that they'd be waiting for a while, as no taxi would ever stop there: Apparently it is stipulated in the contract that the taxi company has with the airport, that they can only collect and drop fares in the designated areas outside of the terminals. If they pick up a fare at any other location on airport land, they are subject to large fines (he said $10k, but perhaps this was hyperbole). I found this an interesting insight into the level of regulation apparently applied to airport ground-transport operators.
It can't make that assumption- in a conservative GC, any pointer sized field in an object could be a pointer. So assuming you're on a 32 bit machine, in the above example, the double would look like 2 pointers to the GC. One way of dealing with this is, the GC keeps a set of all the address ranges that belong to its objects (these are the only objects that could be garbage collected). Then, when it sees what could be a pointer, it'll first look up whether this "maybe pointer" actually belongs to it's address range, and only if it does will it add it to the mark stack for further scanning. In terms of how does it know when to stop looking for references, actually, the GC will know the object size for any objects that it has allocated, so it knows when to stop scanning it's own object. For objects that it hasn't given out, it doesn't matter since it won't scan those. And for the stack, it'll just scan the entire stack looking for pointers to it's own objects.
In 2019, Microsoft released a new version of Edge based upon the Chromium open-source project. Browsers are the most-used class of application across platforms, and Edge is the most used Microsoft application, with hundreds of millions of users. We believe the browser can help users be more productive and helpful for consumers, professionals, students, and developers. We have a long way to go to reach our goals to bring delight and improve the online experience of our users. We want to build the best browser for our customers and collaborate with the community to advance the state of the web.
The Edge Engineering Systems team builds tools and services that give our engineers super-powers to make changes to the browser quickly and confidently. We work on hard engineering problems as well as unique computer science problems. We build a range of things, from custom tools to streamline workflows, to massively parallel distributed build and test systems. Our codebase is relatively new, and we use open-source tools and work with folks in the Chromium community. If you’d like to work on a close-knit, nimble, and highly collaborative team in a startup-like environment, building infrastructure to engineer a world-class browser, then come talk to us.
Please reach out to me (hiteshk AT microsoft.com) with Hacker News in the subject if you'd like to discuss directly!