17 ms·
Apple is looking for engineers to convert its code from C to Rust
- Guest42 7y agoSeems like a tough role to fill.
- codetrotter 7y agoFor Apple or for employees you mean? I would imagine that many people are going to apply. I would have loved to write Rust at Apple, if I ever got the chance to. And Canada is on my list of countries I would like to live in already anyway.
- 2ion 7y agoNot everyone who applies is qualified.
- deleted 7y ago[deleted]
- codr7 7y agoWhy? I don't have any Rust experience, but the rest seems reasonable to me and I figure I have enough C experience to make up for it. If I happened to live in the area and was looking for a job I would definitely consider applying.
- thedance 7y agoBecause C programmers are 1000x more common than Rust programmers. Edit: "only" 50x according to TIOBE.
- codr7 7y agoIt said Rust and/or C though, and I imagine learning Rust is pretty easy compared to C from what I've seen.
- gameswithgo 7y agopeople who are very good at C or C++ will be able to learn Rust pretty quickly yes. People who LIKE C probably won't like Rust though. Its more like C++.
- dpc_pw 7y agoFor what it's worth, I used to be big on C, and grew to very dislike C++ (because it's simple insane). Rust is my language of choice for years now. IMO, Rust shares the same inner-simplicity that C has, but combined with ability to build and use bulletproof higher-level abstractions. The same way I roughly knew what machine instructions (roughly) my C code produces, I know what machine instructions my Rust code produces.
- dirtydroog 7y agoWell yes, because LLVM generates the machine instructions
- jfkebwjsbx 7y agoRust definitely does not share the simplicity of C. It is the equivalent of C++, not C. You can write code which you cannot guess the machine code, as soon as you use any of the abstractions, just like C++.
- grecy 7y agoWow, outside Edmonton... WTF. Do they have a data center there?
- jrockway 7y agoI think big companies see a lot of opportunity in locations outside of Silicon Valley. If you don't care about the weather in the Bay Area, which is quite pleasant, or the other industries around you (be it for business or for pleasure), then you can get an easier commute and a better house for the same salary, which is appealing to some people. (You can also pay people less, which seems to be a strategy used by companies without any Bay Area locations.) As for how these offices exist; sometimes the team lead is senior enough to move the project there because they want it to be there, and other times a company is acquired that has offices there and there was no reason to move them. (I think Google got their NYC office by buying DoubleClick, for example.)
- cbowal 7y agoBut then it's weird to specify a location. Camrose is a town of 18,000 people – why not make it explicitly remote?
- Teever 7y agoYeah that's a really good point... Is this perhaps one of those hyper specific job postings so that a company can skirt some sort of regulation about hiring immigrants by saying they did a search? but why Apple? And why Camrose...
- Apocryphon 7y agoThe next Bend, Oregon!
- saagarjha 7y agoApple has a number of small offices around the world in addition to their large presence in the Bay Area and Austin.
- mrpippy 7y agoInteresting, this is for encrypting server-server traffic. My question: how did Apple end up doing this work in Camrose, Alberta?
- dang 7y agoI used to go there as a kid. It was one small town, and I don't suppose it has boomed since.
- kick 7y agoIt's gone from about ten thousand during the 1990s to about twenty thousand now: https://www12.statcan.gc.ca/english/census96/data/profiles/Rp-eng.cfm?TABID=2&LANG=E&APATH=3&DETAIL=0&DIM=0&FL=A&FREE=0&GC=0&GID=204274&GK=0&GRP=1&PID=35782&PRID=0&PTYPE=3&S=0&SHOWALL=0&SUB=0&Temporal=1996&THEME=34&VID=0&VNAMEE=&VNAMEF=&D1=0&D2=0&D3=0&D4=0&D5=0&D6=0 https://www12.statcan.gc.ca/english/census96/data/profiles/R... https://www12.statcan.gc.ca/census-recensement/2011/dp-pd/hlt-fst/pd-pl/Table-Tableau.cfm?LANG=Eng&T=302&SR=1&S=51&O=A&RPP=9999&PR=48&CMA=0 https://www12.statcan.gc.ca/census-recensement/2011/dp-pd/hl... http://municipalaffairs.alberta.ca/documents/msb/2016_Municipal_Affairs_Population_List.pdf http://municipalaffairs.alberta.ca/documents/msb/2016_Munici... (It's nice to see that all North American countries are as bad at making websites; practically a tradition at this point!)
- seanmccann 7y agoMy hometown. From what I heard, an engineer wanted to move home and started a small remote office there. I think the office is moving to Edmonton.
- shoulderfake 7y agoWho da hell wants to move BACK to Edmonton ?
- cmrdporcupine 7y agoI'd consider moving back there for this job, I like Edmonton, I have many friends there still, and my family is there. And I like Rust. But I don't like the current provincial gov't and I'd have a hard time convincing my wife to leave her family behind here. Edmonton has awful winters, but it has a beautiful river valley, decent arts scene, and good local culture. Summers are nice there. I hated much about it when I lived there in my teens and early 20s but enjoy going back to visit now.
- WalterBright 7y agoD now has an Ownership/Borrowing system implemented (though it is in its early stages). It will work with existing code, including DasBetterC code. You're able to incrementally adapt a program to O/B rather than rewrite it.
- kick 7y agoWas this a response to something else in this thread that you accidentally top-posted? It's cool, technically, but maybe a little off-topic.
- seabrookmx 7y agoI think it's just a shameless plug from the creator of D :)
- WalterBright 7y agoRust has shown that an O/B system is viable, and now D shows that an O/B system can work with C-like syntax.
- kick 7y agoWhat's your opinion on it? Good idea? Bad idea?
- WalterBright 7y agoOn an O/B system? I think it's a good idea, otherwise I would not have implemented it.
- jacquesm 7y agoThis is a 'mindshare' game. D had its chance, now Rust has its chance. Would have been cool though if D had caught on more back in the day. Re-invention seems to be impossible to avoid in the software world.
- Cyph0n 7y ago> handle the encryption of every packet passing between servers within and across vast data centres This sounds like it’s doing packet processing in software, which doesn’t seem scalable, especially for the traffic volume I would assume Apple handles. Anyone have a clue what kind of traffic volume and bandwidth we’re looking at here? Granted, I might be overestimating the requirements given the industry I work in (service provider routing).
- stock_toaster 7y ago> This sounds like it’s doing packet processing in software From the article: > Based on a custom implementation of IPsec Seems pretty clear.
- ThePowerOfFuet 7y ago>custom implementation of IPsec What could possibly go wrong.
- kjaftaedi 7y agoI'm sure this is just referring to various 'extension headers' in IPSec, which is how the protocol was designed. Sure, poor implementations can lead to problems, but the same holds true for just about anything.
- thedance 7y agoNone of the big clouds use hardware network encryption. All of the resources in your network are at the leaves, so you might as well use their CPUs to do it. I think Google published that crypto and compression in their internal RPC stack cost them less than 1% of their global CPU resources.
- damagednoob 7y ago> I think Google published that crypto and compression in their internal RPC stack cost them less than 1% of their global CPU resources. Not sure if this makes your point compelling. At Google's scale, if you were able to reduce global CPU usage by 0.1%, that would probably be a massive win.
- onida 7y agoSeems like rust is this year's new hot language.
- kohtatsu 7y agoRust is designed to be the language of the century. That's why it's named Rust.
- est31 7y ago40 years at least, according to a core team member: https://www.youtube.com/watch?v=A3AdN7U24iU https://www.youtube.com/watch?v=A3AdN7U24iU
- BubRoss 7y agoThis year's hot new language of the century.
- kohtatsu 7y agoI didn't mean "no this is the one that's gonna stick", I meant "code written in this is explicitly designed to last a long time".
- computerphage 7y agoThat's not a great summary of the history of the name. Here's a better one: https://www.reddit.com/r/rust/comments/27jvdt/internet_archaeology_the_definitive_endall_source/ https://www.reddit.com/r/rust/comments/27jvdt/internet_archa...
- HugoDaniel 7y agodoesn't Apple prevent engineers from having related engineering hobbies when they sign the contract ?
- saagarjha 7y agoUsually.
- kbumsik 7y ago> having related engineering hobbies Like an engineering blog and open source projects? I would be surprised if a company can restrict employee's hobbies outside of working time.
- saagarjha 7y agoThey can if the outside work is related, which it always is if the company is large enough.
- DaiPlusPlus 7y agoFrom my friends that work there - the answer is "it's complicated". Some of them do get away with it, obviously such as those that work on open-source software at Apple (like Safari, Darwin, etc) - or those with non-computer-related side-projects like photography or artisanal furniture making... Apple seems to have inherited Microsoft's previous institutional paranoia about open-source software: the legal dept is concerned that if an employee casually browses GitHub and is inspired by some GPLv3 code that they could rewrite themselves for use in a proprietary Apple product then the lawyers consider that Apple product now possibly tainted (as rewriting code or being "inspired" by other code still legally counts as a derivative work, even if absolutely nothing was copy and pasted). Microsoft lost that attitude around the same time Satya became CEO - I was at Microsoft when the transition happened and it was a refreshing change of policy that really came top-down. Of course we still had annual SBC training to remind us to always verify the licenses of any third-party or open-source components we use (and GPL is generally a big no-no, of course, without special dispensation from LCA) but the idea that a product's legal status could be tainted by casual browsing went by the wayside. I think a lot of the change came from a wave of sanity at the C-level when they realised the company was not actually being actively destroyed by meritorious - and meritless - open-source copyright violation lawsuits, and the few incidents that did occur (like the Windows ISO-to-USB tool debacle) were overblown with minimal impact to the company. But Apple's paranoia isn't just about legal matters, but also out of concern that if Apple-watchers know who works for Apple and monitor their GitHub accounts then they'd be able to see which areas of technology interest those people, which may in-turn drop-hints about what Apple is working on (e.g. if we suddenly see a bunch of Apple folks Starring and forking LiDAR libraries for private use then that hints Apple is working on a LiDAR product... which they announced this week that they are: https://www.theverge.com/2020/3/18/21185959/ipad-pro-lidar-scaner-augmented-reality-demo-hot-lava-game https://www.theverge.com/2020/3/18/21185959/ipad-pro-lidar-s... Now, as someone who believes they'd otherwise make a great contribution to Apple as a valuable SE asset (yes, I'm being self-aggrandizing) this policy of theirs is a huge deal-killer for me. Not just because I own some popular GitHub repos with GPL licenses, but because I also have popular (and profitable) side-projects that only use a few hours of my time each month - and Apple is just as paranoid about those things as open-source projects are as vectors for leaking company movements, even unintentionally. Heh - I remember shortly after I did NEO at MSFT and filled-out the "prior inventions" paperwork for my side-projects, my team lead admonished me for wasting his time looking at my dumb Google AdWords-supported websites - though he did agree the definition of "prior invention" was too vague. (Footnote: if you're a recruiter or hiring-manager at Apple and you're reading this, and you agree that my side activities won't be a problem, please reply to this comment - I'd love to work on WebKit or Darwin at Apple :D!)
- 1over137 7y agoWhy wouldn't they use Swift? Seems odd.
- saagarjha 7y agoSwift’s performance isn’t really up for high-performance network processing, at least not yet.
- BubRoss 7y agoIf it can't fill a network connection by now, I wouldn't hold my breathe.
- zerr 7y agoSwift is a LLVM front-end just like Rust.
- hombre_fatal 7y agoYou are saying that like it must then be as fast as Rust by this virtue.
- zerr 7y agoNo, semantics and idiomatic code matters but I don't think performance oriented Swift code would be significantly slower than Rust. I might be wrong though - feel free to share relevant benchmarks.
- nicklauri 7y agoThere are some benchmarks that I think you should give them a look: https://github.com/ixy-languages/ixy-languages https://github.com/ixy-languages/ixy-languages https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/swift-rust.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- 7y ago
- deleted 7y ago[deleted]
- hashbig 7y agoI am like many others here surprised that this is in Camrose, Alberta. I didn't think big American companies would open an office here outside of the typical tech hubs (Vancouver, Toronto, Waterloo, and Montreal).
- guessmyname 7y agoSearch “apple engineer camrose alberta linkedin” on Google [1] You will find a handful of people who either relocated during the last year or were hired there. This includes people like Jeff Davey, Steven Bromling, Tony Gong, Derek Hausauer and Lucas Wagner who are brilliant. [1] https://www.google.com/search?q=apple+engineer+camrose+alberta+linkedin https://www.google.com/search?q=apple+engineer+camrose+alber...
- hashbig 7y agoThat is nice. I think many inside Canada wouldn't mind relocating for a role like this, but I doubt someone would be willing to trade California's winter for Alberta's, regardless of the job.
- grecy 7y ago> but I doubt someone would be willing to trade California's winter for Alberta's, regardless of the job. I was just down around the LA area, and I'll gladly take -40 winters for the rest of my life than deal with that traffic and air pollution.
- damian_brody 7y agoIn Canada you cannot call a software developer engineer unless he/she is an actual engineer
- MegaButts 7y agoWhat's the definition for engineer? Anything that isn't software; ie electrical, mechanical, nuclear? Or does it just mean you passed the FE exam?
- mmxmb 7y agoI believe you need to get a Professional Engineer license in the province where you practice.
- beagle3 7y agoProfessional licensing along the lines of architects amd doctors - i.e. board exams and long multiyear supervised internship by a senior licensed engineer. At least that's how it looked last time I checked.
- deleted 7y ago[deleted]
- hashbig 7y agoUsually it means you graduated with an accredited Engineering degree from university, and you are licensed by the regulatory body in your province to practice engineering. The laws differ from one province to another regarding what constitutes an Engineer.
- etimberg 7y agoNeed a degree from an accredited school in engineering + pass the engineering licensing requirements. In Ontario, where I live, that means passing an ethics exam + some years of work that is overseen by someone with a P.Eng. The challenge in software is usually the last part.
- slimsag 7y ago
- halite 7y agoAs a human of color, don't think I could live in this town but maybe team is really fun. Interesting to see a Camrose here! I've driven by numerous times. Feel free to ask any questions about Alberta.
- OJFord 7y ago> As a human of color, don't think I could live in this town Are you saying it's a racist town, or yourself objecting to its current demographic?
- staplers 7y agoNot OP, but I would imagine being one of the only minorities in a town like that is difficult if you just want a nonchalant life.
- halite 7y agoThanks, that's what I meant.
- halite 7y agoI didn't mean it is a racist town. The population of the town is 18,742 and from years of living in Alberta, I don't think I'd find people with similar taste or interest in activities or topics I'm interested in.
- google234123 7y agoConverting code seems like an incredibly boring job.
- tracker1 7y agoMaybe for you... I find it pretty interesting... though you have to first learn, understand and document what it is doing, and then think about how you can adopt the function into the patterns of the new language. That last part is key. Nothing like seeing code in a current language written like it's mainframe code. I've seen some really poorly ported code (and written plenty). The learning curve is pretty steep but it's great work if you enjoy it. For me, my favorite part of working in software is the learning. New tools, languages, platforms, systems not to mention domain knowledge. In my career I've worked from government, banking, aerospace elearning, eCommerce and many things in between. What other career is such a great opportunity for continuous learning.
- jjirsa 7y ago> Following a very successful first foray into Rust we are migrating an established codebase from C to Rust, and building new functionality primarily in Rust. That doesn't say the job is ONLY converting code. It says that code was converted, and new code will be in Rust.
- mch82 7y agoAny thoughts on why they’d be using Rust rather than Swift for this work?
- simonh 7y agoThe vast majority of Apple’s data centre systems run on Linux.
- Skinney 7y agoSwift compiles and runs on Linux.
- chiefsucker 7y agoIt’s only supported on Ubuntu, not Linux in general, and it still lacks. The corporate backing is missing, and IBM going away from the Server-side Swift deal doesn’t spread confidence. The whole ecosystem just isn’t there (yet?). This rewrite isn’t only related to the current situation on Linux, but also to Swift’s current performance characteristics. Lack of full Linux support is just another hindrance, before you can consider Swift for this type of work at all.
- bluedays 7y agoIf it runs on Ubuntu it runs on nearly any Linux distribution.
- simonh 7y agoBeing useful and performant and effective, especially for a use case as critical and sensitive as security software, requires clearing a much higher bar than just 'compiles and runs'.
- hombre_fatal 7y agoIf you're writing performance sensitive code and/or correct code, Rust makes more sense. Rust makes more sense for almost any use-case over Swift unless you're building Apple clients. Swift still hasn't really escaped its niche of being a language for end-users to build clients for the Apple ecosystem with trade-offs in mind for those end-users who are just building clients (rather than, say, implementing a safer openssl). For example, even Rust's web framework story is more mature and benchmark competitive than Swift's. Go to https://www.techempower.com/benchmarks/ https://www.techempower.com/benchmarks/ and filter for just Rust and Swift. I say all this sadly as someone who builds iOS apps. I would find it very weird that someone was using Swift of all language for infrastructure projects.
- jayp1418 7y agoWhy not Ada language?
- alfiedotwtf 7y agoI honestly thought 2019 was going to be the year we saw Rust take up by companies, but 2020 seems even more promising given the amount of people already using it in production at the last Rust Melbourne Meetup. Rocketship!
- K2L8M11N2 7y agoWhy not incrementally convert it to modern C++?
- muizelaar 7y agoProbably wanting memory safety.
- ancarda 7y agoI don't write C++ though I have written some C. I imagine it's easier to shoot yourself in the foot with C++ compared to Rust; it's specifically designed to be a safe language, whereas C++ had things like auto_ptr added Why have a half-way solution of porting to modern C++ when you can just write it in Rust?
- saagarjha 7y agoauto_ptr is gone since C++17.
- 101404 7y agoIf the code base needs to be rewritten anyway, why not to a memory safe language. Can be converted incrementally to Rust, too, because in the end its all machine code.
- rb808 7y agoI'd love a Rust job, but there are so few roles out there, nearly everything is Javascript/Python/Java. Is it worth even learning?
- ludsan 7y agoApple is looking for engineers to convert its code from C to Rust
- konart 7y ago>nearly everything is Javascript/Python/Java. That's depends on where you are living (if you are looking for a local job of course). But sure, Rust is a pretty new language with a relatively high entry threshold. Is it worth learning? Yes if you are planning to do system\relatively low-level stuff in the future.
- pornel 7y agoIMHO it's worth learning at least to internalize the concept of ownership. Ownership in some form exists in most languages, but Rust makes it very explicit. It guides you towards clearly organizing program's data into isolated tree-like structures, instead of a web of everything referencing everything else. Like Lisp, even if you don't use it, it may change how you think about code. I see companies adopting Rust internally. Instead of hiring "Rust developers" they just add Rust to the stack and let their devs learn it. For example, Cloudflare writes most new code in Rust, but Rust is barely mentioned in the job postings.
- steveklabnik 7y ago> Cloudflare writes most new code in Rust, I think you might be over-stating this. We do write a bunch of Rust though!
- pornel 7y agoI mean newly started projects. Of course there's a ton of existing code to maintain, but — at least in my team — Rust is the default for new services.