The more software eats the world, the more critical safety is … but what exactly does that mean?

Image for post
Image for post
Hacker image by catalyststuff

Software engineers are bad at safety because software engineers are not used to the idea that software can injure. All around the industry, the mantel of technical leadership has been passed to people about my age, perhaps a few years older. We grew up when computers weren’t so powerful, when their use was an optimization rather than a necessity, when their first commercial successes were in toys. …


Why are organizations committed to positive ideals so often shitty to their employees?

Image for post
Image for post
Image created by pch.vector

I have a checklist of things I talk to new hires joining my team about during our first 1:1. Top of that list is the word boundaries double underlined. By the end of that first conversation I want to have covered the importance of three different categories of boundaries I consider absolutely essential to doing any kind of social impact based work.

Internal boundaries: How you treat yourself. Getting enough sleep, eating right, getting regular exercise, etc. Everybody’s different here and what I want from my employees is not that they fit a certain mold but that they give me a general idea of what these boundaries look like for them so that I can flag when their patterns have changed. Some software engineers legitimately prefer to work at 3am. …


Why do some programming languages feel neat and orderly and others seem loaded with inconsistencies?

Image for post
Image for post
Technology vector created by artmonkey

When I first started trying to write my own programming language I was surprised by how difficult it seemed to be to find best practices on language design. In an industry filled with opinions, where people will fight to the death over tabs -vs- spaces, there isn’t much guidance for would-be program language designers.

Eventually I came to my own conclusions: the pathway to success with program language design is to think of programming paradigms as logical groupings of abstractions and be as intentional about what is included and what isn’t. …


Image for post
Image for post
Hand vector created by stories

I’m very excited about this. A few months ago I decided to start keeping an audio diary of my experience trying to learn how to design a programming language. In a few weeks I’m inviting you to start this strange journey with me through parsers, grammars, data structures, and the like. Along the way, I’ll interview researchers and engineers who are active in the this space and go deep on areas of programming not typically discussed. Episode 1 drops on November 18th.

I don’t want to overwhelm my regular readers with a long series on the ins and outs of program language design (although I suspect most of you will be into it anyway), so I’ve set up a Dev.to blog specifically for episode releases and transcripts. There will be some supplemental deep dive essays on some key topics posted here and a bunch of bonus content for people who want to directly support the project. All and all I’m hoping to start a conversation around program language design that’s less intimidating and more accessible to beginners.


Maybe magic markers really *are* a best in class data access control tool.

Image for post
Image for post
illustration by freepik

When I was asked to start the Identity team at Rebellion Defense my first thought was “do we need a whole team to do that?” After all, we weren’t going to build our own sign-on system when there were so many companies that focus on identity as their core product. It seemed like all that needed to be done was to select the appropriate tool, set it up and make sure it was maintained. That should be simple.

But to paraphrase the military theorist Carl von Clausewitz: In war all the simple things are difficult. …


Before ‘cyber’ was a prefix for everything internet and computers, it was how mathematicians were going to conquer the world.

Image for post
Image for post
Technology vector created by upklyak

I first encountered the word cybernetics while reading Benjamin Peters’s account of the Soviet Union’s attempts to invent the internet, How Not to Network a Nation (still a little disappointed that MIT didn’t spell it Nyetwork, come on!) At the time my reaction to it was “Ew gross” — anything with the prefix cyber- feels cheesy and passé — followed by confusion. The dates seemed impossible. Cybernetics actually predated both the internet and the rise of the computing industry by decades? Could that be right? …


How small engineering teams can build distributive systems

Image for post
Image for post
Image by freepik

I actually really love monoliths. But I’m the sort of engineer that wants my tool box to be full of tools, even weird looking ones that only become useful in very specific circumstances. The advice I typically give people about maintaining technology is to embrace the inevitability of Conway’s Law and factor in team structure, composition and size into architectural decisions. Small teams tend to build monoliths because small teams tend to be monoliths.

Monoliths also offer slightly better performance than service based architectures. At least at first. It’s only once products reach economies of scale that the benefits of being able to build, deploy and scale different components of a system separately outweigh the increased latency of making a network call when you could use a library. Of course when it’s time to make that switch the organization has reached a level of growth where its primary focus is competing, competing and more competing. Breaking up the monolith while also rolling out new features is like remodeling your house while having a dinner party at the same time. For a small company, new features and new sales will almost always win out. Once a small company has become a mature company the task of breaking up the monolith has been spread out over multiple teams and increased in complexity. …


Fear, loathing and failing up in technology

Image for post
Image for post
Computer vector created by pch.vector

This is one of my favorite USDS stories: Very quickly in my career at USDS I developed a reputation for being a person you could send out an SOS distress call to, not so much inside USDS itself but externally with contractors and different government partners. There’s a fair amount of backstabbing in the government, even in the civil service. Whenever you chose to reach out to a 3rd party to ask for help you were taking a risk that the person you reached out to would screw you over. …


Computers can’t avoid automating decisions if software engineers can’t figure out what decisions are being made.

Image for post
Image for post
Image created by stories

Human in the loop has become a critical part of the conversation around AI and machine learning. Many of the catastrophically negative outcomes associated with AI — or really any software that automates — come from either removing human oversight, or designing a user experience that encourages humans to neglect to provide oversight. Software should be designed as a tool that humans manipulate to make more efficient decisions. Many of the emerging AI ethics guidelines emphasize both human agency and transparency. …


Image for post
Image for post
Technology vector created by freepik

The difference between beneficial and destructive AI may be whether making fast thinking faster has any utility for the user.

A couple of months ago I left my job at Auth0 to join a defense and national security company founded by some friends of mine. It was a risky decision both because the company is new and because when one is working with the military, one is inevitably building technology that will either directly or indirectly kill people. …

About

Marianne Bellotti

Author of Kill It with Fire Manage Aging Computer Systems (and Future Proof Modern Ones)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store