How to Design a Permissions Framework

I usually start my posts with some personal anecdote explaining the background for what I’m writing and how I came up with the idea. I could probably do the same for this one, but the truth is that I’m writing it because I ❤️ permissions. I don’t exactly know why they hold such magic for me, but it is what it is, I get excited about permissions. User roles, checking who’s allowed to do what and when, and making sure it all works together is just the best kind of fun!

Photo by Hello I’m Nik on Unsplash

You might not share my excitement, and that’s OK, I guess, but permissions are one of the basic building blocks of almost any application. The permissions framework I’ll present here can start simple and evolve as you go, so you can be sure you are gonna need it and it’s definitely worth the small effort of setting it up from the get-go.

Continue reading

How to Ruin Your Career in 8 Easy Steps

You may think a career is an old fashioned concept out of the 80s which could be safely ignored. I sure used to… I thought a career was for banking professionals in suits, not for me! I was young and cool and wanted to work for a living, of course, but I couldn’t care less about climbing up the career ladder. Well, I changed my mind.

I’m not saying that a career should be everyone’s focus at every point in one’s life. Just having a job is a totally legit choice. But if you want to to have a career, in the sense of progressing throughout your work life, expanding your horizons and opportunities for personal and professional impact, here’s a list of 8 things to avoid doing.

1. Don’t plan ahead

It’s easy to just flow with opportunities that present themselves, go on a few interviews, take the best offer you get, stay for a few years, rinse, repeat. That will probably work for getting small raises and some variety in your daily work.

Photo by Hanna Morris on Unsplash
Continue reading

Thoughts on Working From Home During a Pandemic

I don’t like it. I didn’t like it much before #stayathome was trending, and I like it even less now. I do not like it in a house. I do not like it with a mouse. I do not like it, stay-at-home-I-am.

I do not like it one little bit

This is not to say I don’t like being at home, it’s just the working part that’s not working out so well. I’m not working out either, but that’s a different matter.

Continue reading

The Absolute Beginner’s Guide to Web Applications

Photo by Clem Onojeghuo on Unsplash

I was away from my computer when I got a call from a junior developer I know. She was having trouble uploading a web application to Azure, and asked if I could help. I’ve never worked with Azure, but I assumed Visual Studio had a button which said something like “publish to Azure”. However, she couldn’t make heads or tails from the Azure tutorial, and while I was trying to understand where the difficulty was (other than the fact she wasn’t using Visual Studio, so the button I assumed was there was totally irrelevant), she said: “I understand the back-end has to go on the server, but where do the front-end files go?”

“Do you know how a web server works?”, I asked. “I guess not”, she answered.

If this seems stupid to you, this post is not for you. I give you permission to go read something else. This post is for me, setting up my first self hosted site about 10 years ago.

Continue reading

Once more, with feeling: A radical approach to code review

I was lucky to be in Dropbox’s headquarters when Kim Scott came to speak about her (then) new book “Radical Candor”. Dropbox was nice enough to hand out free copies (yay! free books!) so I actually ended up reading most of the book on the flight home.

Even though the book was written with managers in mind, I found myself referring back to it pretty often. Its insights proved quite useful in my daily work as a software engineer, especially in processes which require written or in person interaction with our co-workers. A little bit of Radical Candor can totally change how we do and react to code or design reviews, driving better results and higher satisfaction.

Radical Candor: Some Background

Before I share how you should use Radical Candor while creating software, it might be helpful to explain what Radical Candor is. I will try to keep this section as short as possible, since it’s just setting up the background for how to use Radical Candor in the context of software processes. If you’re already familiar with the framework you can just skip to the next section (titled Radical Code Review).

I have good reason for creating my own version of this, as you will see below.

Radical Candor is about giving guidance that’s kind and clear, specific and sincere

(source here).
Continue reading

Silly Baboons, Stubborn Elephants: A Product Engineer’s Guide to Working with Platform Engineers

A while ago I was telling a friend how I was frustrated at work. I had been adding support for a really important product feature, and our platform teams were making it impossibly difficult. It felt like every line of code required a month of negotiations to get approved. Let’s be honest here — I wasn’t telling, I was complaining. “Do they think we’re idiots?!”, I asked.

She was smiling with what I thought was empathy, until I was done and she said: “You are idiots”. Then she proceeded to explain that from her experience as a platform engineering manager, product engineers and platform teams live in a parallel universe. Finding common ground is quite a challenge. I believe at one point she used the words “silly baboons” (which gave this post its title).

No newfangled live action for me, thank you very much
Continue reading

How to hire the right way: An engineer’s perspective on tech recruiting

I’m an engineer, but I also have an MBA and for this post I’ll be wearing that hat. I was seriously considering buying an actual hat with “MBA” printed on it, but some good people talked me out of it, so unfortunately it’s a metaphorical hat instead of a real one.

I often see engineers complain about recruitment processes: They are long, they seem totally irrelevant to the job, everything is stupid. We just don’t get it. Unfortunately, we’re probably right — some employers don’t have any idea what they’re doing, but does it really have to be that way?

One of the very best courses I took during my MBA was a course about recruitment processes and the research behind them. It left a lasting impression on me and affected my perspective on recruitment processes when I was hiring and as a candidate. When I hear these rants, I often try to explain the rational behind a good hiring process, and I think this is insight which can be useful for engineers and recruiters, which is why I’m writing this post.

Continue reading

How to handle errors with grace: failing silently is not an option

Photo by Kristina Flour on Unsplash
Photo by Kristina Flour on Unsplash

I’ve never really had much of an opinion about error handling. This may come as a shock to people who know me as quite opinionated (in a good way!), but yeah. If I was coming into an existing code base I just did whatever they did before, and if I was writing from scratch I just did whatever felt right to me at the time.

When I recently read the error handling section in Clean Code by Uncle Bob, that was the first time I gave the subject any thought at all. Sometime later I ran into a bug which was caused by some code failing silently, and I realized it might be time to think about it a bit more. I might not be able to change how errors are handled in the entire code base I’m working on, but at least I would be informed on what approaches exists and what the tradeoffs are, and, you know, have an opinion about the matter.

Continue reading

How I didn’t become an entrepreneur. Yet.

Photo by Ben White on Unsplash

After sharing in a passing that I had once written a business plan, I was recently asked to write a post convincing other women to join an entrepreneurship program.

My first reaction was “WAT”. I utterly failed at becoming an entrepreneur, I don’t know if my story is the best to share as a motivational story. But when thinking about it a bit more, I decided there’s nothing to hide. Being an entrepreneur is hard, and exciting, and utterly failing is part of the story. Failing is no reason not to try.

Continue reading