Performance review season is upon us, and with it the dreaded self review. Many of us spend way too much time struggling with this task, how can we summarize our achievements in an appealing yet accurate way? SO MUCH STRESS. In the spirit of keeping the time and effort to a minimum, I’m sharing my tips on writing a stellar self-review, fast.
Continue readingDevDiscuss S2E5: How to Harness Radical Candor in Code Reviews
Following up on my previous post Once more, with feeling: a radical approach to code review, I was a guest on the DevDiscuss podcast where we spoke about:
- Why code reviews often don’t yield repeatable results or longterm education for reviewees
- The Radical Candor feedback framework — what it is and why it should be implemented in code reviews
- How to bring non-ruinous empathy into the code review process and not be a jerk.
… and much more!
Listen wherever you get your podcasts (transcript included): https://devpods.herokuapp.com/podcasts/devdiscuss/episodes/22
Declutter python code with error handling decorators
I recently reviewed some code which converted gRPC error codes into custom errors using a decorator and the simplicity and genius of it made me facepalm “why didn’t I think of it myself?”.
Really, why didn’t I? When I wrote how to handle errors with grace I mentioned using decorators to validate input parameters and how important it was to keep error handling separate from your main code as much as possible. I just didn’t think to combine the two. Oh well, better late than never.
Continue readingHow 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!
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 readingSettling the diversity dilemma
In this “women in tech” talk, I share my perspective on the tension between being a “good feminist” and being an excellent engineer, and the framework I use to make decisions on how to spend my time & energy.
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.
Continue readingThoughts 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.
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 readingThe Absolute Beginner’s Guide to Web Applications
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 readingOnce 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).
Continue readingRadical Candor is about giving guidance that’s kind and clear, specific and sincere
(source here).
Better software design with mind maps
Have you ever tried to design a complicated bit of software and ended up with a great big tangled mess? Designing software is hard and formal processes can be frustrating. Is there a better way to approach this task? Mind maps are a fun and intuitive way to brainstorm and organize your ideas on paper or a whiteboard. In this talk I show how to use mind maps to design software well, convert your thought process into an excellent technical spec, and break it down into workable tasks while leaving lots of room for agility and flexibility.