1. 3

    Company: LeanTaaS

    Company site: https://leantaas.com/

    Position(s): Python and Java backend engineers, data scientists, data engineers, Angular frontend engineers, QA engineers and product managers.

    Location: Santa Clara, CA and Charlotte, NC. Most positions can be filled in either office.

    Description: LeanTaaS is a fast growing healthcare predictive analytics company that uses sophisticated math and lean principles to make healthcare providers more efficient. tl;dr we optimize doctor schedules

    Contact: Apply at https://leantaas.com/about/careers/ and if you have any questions you can reach me at david.g@leantaas.com

    1. 8

      Dave Barry did a bit that I think is relevant here.

      1. 1

        I enjoyed that, thanks for the link!

      1. 1

        Company: LeanTaaS

        Company site: https://leantaas.com/

        Position(s): Python and Java backend engineers, data scientists, data engineers, Angular frontend engineers and QA engineers.

        Location: Santa Clara, CA and Charlotte, NC. Most positions can be filled in either office.

        Description: LeanTaaS is a fast growing healthcare predictive analytics company that uses sophisticated math and lean principles to make healthcare providers more efficient. tl;dr we optimize doctor schedules

        Contact: Apply at https://leantaas.com/about/careers/ and if you have any questions you can reach me at david.g@leantaas.com

        1. 34

          Its OK to write unsafe Rust code. Honest! Compile time safety is the main innovation of Rust and its killer feature, but its ok for parts of an API to be unsafe. Rust enforces safety by guarenteeing a certain pattern of memory use, and if that is a bad fit for your problem then thats just life. The halting problem guarentees that no one-size-fits-all solution will ever exist.

          I’m currently writing unsafe Rust for graphics library code. I’m reasonably sure it can’t corrupt memory because I’ve structured it so it can’t. Rust could enforce some of the invariants I’ve imposed at compile time, but it would make the entire process viciously painful.

          Even unsafe rust has real enums, strong types, macros, pattern matching, a module system, and all the other things C (and C++) doesn’t. Using C instead is like finding out you new dirt bike gets sand in your face and going back to riding offroad on a donkey instead of wearing a helmet.

          1. 9

            The effort to write unsafe rust seems to me far more than just writing C. So if you don’t get the safety benefit, it is just a pain.

            1. 7

              But the point is that only the unsafe parts will be unsafe. Besides that, writing unsafe Rust is subjectively more fun than writing C.

              1. 3

                I think it It depends on what you are interfacing with. Interfacing with a C framework can be very hard because there will be so many assumptions and things to work around and the unsafety will be pervasive, for small C libraries it is not bad. I’ve tried both some of both types of rust wrapping, and that is just my feeling so far. .

                1. 2

                  Although I have no experience in Rust, but I can still acknowledge this: I have interfaced with suite some C code from C#, and if that C code was not designed in a mindset that it will be wrapped it was really painful. Now I can imagine that strict ownership of memory references can only add a lot of more hardship and complexity.

                2. 2

                  The takeaway of the pre-poop your pants bug was that unsound, unsafe code does create bugs in safe code.

                  1. 2

                    Yeah, this section of the rustonomicon https://doc.rust-lang.org/nomicon/working-with-unsafe.html talks about exactly that too.

                3. 3

                  There are a lot more safety benefits to rust then preventing pointer dereferencing (which is primarily what unsafe allows). Too many to list from a smartphone. And Rust provides far more than just safety.

                  1. 1

                    I think that the difficulty lies in wrapping it with safe code which is true to all safety guarantees.

                    Or do you genuinely mean writing unsafe rust all the way is more difficult than writing C? I’d love to hear why.

                    1. 3

                      genuinely mean writing unsafe rust all the way is more difficult than writing C?

                      I found very low level rust code dealing with C types has excessive casting + far more verbose code. Interfacing with C is not idiomatic rust, needing to use types like CString and CStr and doing lots conversions, it is just more annoying for some things.

                      1. 3

                        I think it is in part a fault of C library, not Rust. Null-terminated C string is not null safe and in general a bad interface to provide for libraries.

                        1. 1

                          I didn’t say it was rust’s fault, just that it can be lots of extra work to do interop.

                1. 1

                  Company: LeanTaaS

                  Company site: https://leantaas.com/

                  Position(s): Python and Java backend engineers, data scientists, data engineers, Angular frontend engineers and QA engineers.

                  Location: Santa Clara, CA and Charlotte, NC. Most positions can be filled in either office.

                  Description: LeanTaaS is a fast growing healthcare predictive analytics company that uses sophisticated math and lean principles to make healthcare providers more efficient. tl;dr we optimize doctor schedules

                  Contact: Apply at https://leantaas.com/about/careers/ and if you have any questions you can reach me at david.g@leantaas.com

                  1. 2

                    I use Cisco WebEx Teams (formerly Cisco Spark) at work so I’ve been able to see the disaster first hand. The entire chat service was hard down for the first 24 hours with no ETA of resolution. When the service did come back up it still had small outages during business hours all week. Chatroom history is slowly being restored and many chatrooms are entirely glitched, unable to receive new messages or display old ones. Can you imagine the internet meltdown that would happen if Slack had this kind of outage? I feel bad for the ops employee: not only did they kill all the servers but they’ve almost certainly killed the business prospects of this giant, corporate, multi-year program with hundreds of contributors.

                    1. 1

                      OPS employee? I bet it was a developer.

                      edit: I’ve seen the other side of this corporate curtain

                    1. 9

                      Interesting observation from reddit

                      Some Rust practitioners are weird.

                      You have all those great approaches about correctness, and then you see here and there developers trying random explicitly unsafe hacks depending on internals of data types, that not even C++ developers would try.

                      I mean, when was the last time when you randomly tried to nuke the internal length of an C++ std::vector to speed things up, using simultaneously dangerous means and a complex reasoning (but probably undocumented, and maybe incorrect) justifying that there actually was no risk in your opinion?

                      And on top of that do it in, not in some kind of insane computation kernel trying to grab the last bit of perf, but in merely an HTTP library?

                      Well at least I’m happy this particular missed optim has been fixed. One less reason to resort to insane unsafe hacks.

                      (On a sidenote, it is sometimes better to only modify a variable in memory if it doesn’t already has the good value, but this would be mostly for scaling concurrent accesses of the same cacheline on multiple CPU, so this does not really apply here – and also sometimes compilers fuck you up by using a cmov but then it is a completely different story :p )

                      1. 10

                        that not even C++ developers would try.

                        I disagree with this. If anything, I suspect this idea has come from C++, where std::vector’s API contains functions to explicitly reduce the length without shrinking the capacity. This is partly to avoid invalidating iterators, but is also used to e.g. avoid unnecessary allocations when emptying a vector and immediately refilling it with a simply quantity of elements.

                      1. 12

                        I know it’s not up to the impressive quality of what you guys post here but I’m writing a replacement the 1993-vintage CGI script that powers manpages.debian.org. I’ve been a happy user for years and I’m really glad I’m getting the chance to contribute back. I took a short detour a few weeks ago to write a ditroff parser (groff back end) which seems to be a pretty obscure corner of UNIX lore. The original format was designed by Kernighan but it definitely has a focus on ‘physical printer’-type devices with print heads - GNU gtroff outputs a lot of bonus in-line comments to help the fancier backends give richer output. I’m also surprised that in the 29-year history of GNU tar nobody’s contributed any output that’s more machine-readable than the ls-like output of tar -tv. I’m tempted to write a patch to get XML output.

                        1. 7

                          That page is one of my favorite things, thank you for your work! <3

                        1. 3

                          I haven’t been following this story, though I learned a high altitude version of it via osmosis somehow.

                          Here’s all I know so far:

                          • The inventor of JS gets hired to Moz (cool makes sense)
                          • Some people complain about his stance on prop 8 (ah yes, I remember that; that’s expected)
                          • Brendan steps down (woah, why?)

                          I get that there are a lot of people upset by his stance on prop 8, but I don’t really see any connection between his personal views and his ability to lead Mozilla.

                          Serious question: What am I missing?

                          1. 13

                            I think part of the reason the anger intensified was Eich’s relative lack of action/inability to get in front of the issue. When he finally did to an interview on the subject, it was several days after the announcement, well after everyone was up in arms, and the summary was “I don’t really want to talk about it, it’s my personal belief.”

                            Now, on the one hand, I can understand the desire to separate personal beliefs from public life, but on the other, that’s a very – sorry to use the term – privileged response. What he’s essentially asserting is that “I get to try to effect your personal life, and you shouldn’t be allowed to question me for it.” This – at least – was the response of the community of people who felt that Eich was in the wrong. I think also there was a sense of Eich trying to have his cake and eat it too – saying (paraphrase), “Mozilla is an open organization which support LGBT equality” is disingenuous when you – the newly minted leader of that organization – have shown evidence that you don’t. Like it or not, personal opinion and belief are relevant, since they will inform your decisions as CEO.

                            Ultimately, he didn’t step down because he felt bad, or as some act of contrition – he stepped down because of bad PR. When big sites start telling you to use other browsers because of your CEO’s stance on gay rights, it doesn’t matter whether or not the CEO is going to make all future decisions perfectly and solve all of the worlds problems, ultimately, people won’t buy/use your product, and that’s not something Mozilla wants or can afford. From the second this happened, Eich’s response was slow, somewhat arrogant, and ultimately poor politics – which is to be expected, since he’s an engineer and not someone necessarily interested in being a politician – but ultimately a CEO is just a politician of sorts, and Eich’s relative inability on that front could not be made up for by his ability as an engineer.

                            That said, I don’t care what people think, the man invented Javascript, he doesn’t deserve to be CEO, he deserves to be stood in a corner and told why he’s a very naughty boy.

                            (the last part was in jest, mostly).

                            1. 3

                              Eich’s relative lack of action/inability to get in front of the issue. When he finally did to an interview on the subject, it was several days after the announcement,

                              You are presumed guilty until proven innocent. Also, there is a time limit of 48 hours in which to present your case. Unless somebody on twitter comes up with a catchy hashtag, then you only have 24 hours. Unless you are getting on a 12 hour flight with no internet access, then you only have those 12 hours.

                              1. 4

                                This isn’t the law. This is politics – he failed to get out ahead of a story, that’s not a good thing. Reason is not the realm of the crowd. I don’t like it any more than you but – that’s the state of the world we’re in. Again, I was answering the OP’s question as honestly and objectively as I could – that’s why he got booted. I don’t necessarily think it’s right, I don’t really think much of it at all. I frankly couldn’t care less who the CEO of Mozilla is.

                                My intention was to state my understanding of why he got ousted, not to lay judgement on the society which ousted him.

                                1. 3

                                  Understood. I’m responding to the mentality behind the words I quoted, not necessarily you. I find internet justice very distasteful, even when I agree with the results.

                                  1. 4

                                    Off-topic: I like lobste.rs – on reddit, this would have been a much longer, and much less polite, interchange.

                                    On-topic: I find it pretty difficult to separate myself from how heartily I disagree with Eich. I also dislike the common mob-mentality, but at the same time it occasionally mobs in my general leftward direction, and it’s hard not to feel justified in hatred. I strongly dislike this, it’s perpetrating the same underlying problem – that people base their choices not on facts, but on beliefs and opinions. This happens in a wide variety of controversies in the tech world, and between it and the widespread false-difference fallacy everyone seems to love so much[1], it only ever ends up in a lot of rabble-rabble and egg on everyone’s face; and usually no substantive change to actually fix the problems that lead to the controversy.

                                    [1] As a note, it is possible to treat someone with honest empathy, but also doubt the veracity and magnitude of their claim – but this is a can of worms for another day.

                              2. 4

                                how is the expectation that public and private life be separate “privileged”? do you know of one “ordinary person” who supported prop 8 and lost his job as a consequence?

                                it was an ugly mob. pseudo-intellectual excuses don;t make it any prettier.

                                1. 20

                                  here’s where the symmetry breaks down - you do not need to even be aware of prop 8 for your life to be affected by it. it is predicated on the idea that people in same-sex relationships should be legally treated as lesser than people in opposite-sex ones, for no better reason than that it’s the current status quo.

                                  on the other hand, the proposition literally does not affect eich’s life in any way. there is nothing he can do that he would be unable to do once same sex marriage was legalised, nothing that would be taken away from him, nothing that would even affect him other than the distressing knowledge that someone, somewhere had been granted equal rights. and yet, he spent $1000 so that people fighting against gay marriage would have a better chance of getting their way. i don’t think that actively working towards something that makes no difference to him but that negatively impacts other people really counts as “private life”.

                                  1. 4

                                    Very well explained. Couldn’t agree more.

                                  2. 2

                                    I was merely summarizing the views that led up to him stepping down / being forced out.

                                    That said, I don’t like the guy for a lot of reasons. “Inventor of Javascript” isn’t a resume entry I hold in particularly high esteem. I don’t agree with his personal views and – were I a stakeholder in the company, I probably would’ve been upset and vocal about promoting someone with said views. But since I’m not, I didn’t.

                                    To more directly answer your question (again, summarizing the community of people who were angry about his personal views) – the idea of ‘privilege’ might well be defined as ‘a double standard held against a class of people’. That is – the double standard they perceived (especially after his interview) was that for them to question his personal views/beliefs was out-of-scope, but for him to question theirs was fine. I’m not sure if I totally agree with the application in this case, but I can see where they’re coming from.

                                    Ultimately, I was merely answering the question – these are the facts-in-evidence as to why he ultimately stepped down/was forced out. Whether or not you agree is up to you.

                                2. 3

                                  Minor point, he didn’t get hired by Mozilla, he founded Mozilla.

                                  1. 1

                                    he didn’t lie to pacify the mob. apparently that’s what you have to do. because, apparently, we value tolerance so much we can’t tolerate someone whose personal views we don’t agree with.

                                    1. 0

                                      A very large amount of bad PR outside of mozilla and negative sentiment within mozilla caused this with resigning board members and others. It’s very unfortunate, since if it was an obvious protected class thing such as being mormon or similar, he wouldn’t be experiencing this.

                                      Imagine this headline: New CEO of large company in Utah steps down because of negative backlash of not being Mormon.

                                      1. 5

                                        This is a ridiculous false equivalence. How is being a homophobic bigot similar in any way similar to being an LDS?

                                      2. 1

                                        It’s a bit more complicated than I make it sound but Brendan was really more of a co-founder of Mozilla alongside Mitchell Baker. Eich was the technical lead, Mitchell handled the administrative and legal side of things.