Who’s got two thumbs and shipped her first of 12 startups in 12 months on schedule? That’s right, this girl. In its first week, the Blogging for Devs Community reached $5K in revenue through a combination of lifetime deals, subscriptions, and my first ever Bitcoin transaction (thanks, Nico!). A profitable first week isn’t what makes this a success in my book. I’m thrilled…
What would you do if I gave you $1 million today on the condition that you invest it entirely in the stock market? First off, you’d probably find someone who knows way more about investing and get some professional advice. But in lieu of that, you’d divide your money among a variety of bets: Stable companies with a history of profitability, growth-stage companies with a high tolerance…
Let’s be real: most developers decide what to blog about on a whim. Our blogs cover tons of topics, and there’s a good chance that the only person interested in ALL of them is, well, us. That’s just one reason it’s handy to tag and segment subscribers to your email list. Basically this means assigning tags to people based on what blog post made them decide to subscribe. You…
If you maintain an open-source project, there’s a good chance the pull requests you receive need a little bit of work before they’re ready to merge. Here’s a quick step-by-step guide for how to modify commits on a pull request when it’s coming from a fork of your repo. In this guide, we’ll assume the following: Your repo: github.com/your-username/your-repo-name Your…
After dragging myself out of what I’m dubbing the quarantine slump (namely, playing 100+ hours of Animal Crossing, re-watching Children of Men, and concluding that I’m probably not inside a simulation), I finally published @mlent/gatsby-theme-help-center. It’s the first time I’ve published my own npm package, not connected to work! Well, it’s kind of connected to work…
I’ve read thousands of resumes and CVs during my 3+ years as a hiring manager at a high-growth tech startup. It’s the same at many companies: Most applications land in the bin at the stage where your resume or CV is all the company knows about you. The reason for this is more or less mathematical: It’s simply impossible to speak to every single applicant. The time of hiring…
Next year, I’ll be entering my 10th year of being formally employed to write code. Ten years! And besides actual employment, for nearly 2/3 of my life, I’ve been building things on the web. I can barely remember a time in my life where I didn’t know HTML, which is kind of weird when you think about it. Some kids learn to play an instrument or dance ballet, but instead I was…
I’ve grown a lot over the last year at my job. Things are never really the same for long, and I’ve had a ton of different challenges to tackle – both on the technical side, but in a growing proportion on the side of people management and technical leadership, too. So I wanted to share some of the books I’ve loved over the last year, which I would recommend even to…
I started looking into this topic because, as you’ve probably heard, Google changed its pagespeed insights tool (and search ranking algorithm) to focus on mobile-first. I’ve got an image-heavy blog that does pretty well in Google, but my pagespeed score was somewhere between 75 and 80. One of Google’s biggest complaints to me were that my images were not resized properly. The…
It’s not that often that I go to a conference or watch a talk on YouTube that truly changes the way I think about programming or software development. Even though I’m someone who does frontend development for a living, most of the talks that were most illuminating for me are technical talks that are either language-agnostic or unrelated to my daily work. Here are a few of the best…
This blog is written with Hugo, a static site generator written in Go. I also have a second blog that uses Hugo as well - and while I love the speed and simplicity of this system, it’s still a pain to deploy by ssh-ing into my remote machine, pull updates, and build manually. Even when I can authenticate via YubiKey ;) So over the Christmas holiday, I automated the deployment of this blog…
What’s a YubiKey? A YubiKey is basically a tiny device that plugs into your USB slot and pretends to be a keyboard. When you tap the little golden disc, it types out a One Time Password (OTP). Through the Yubico API, you can easily validate this password, and use it in combination with another method of authentication (such as a password or ssh key) to achieve two-factor authentication…
Getting started writing any new language is easier with the help of your editor. In the case of linters, they can teach you the language’s idioms and best practices while you write your first lines of code. Here’s how to set up a new project in Haskell and configure vim for Haskell. Basic vim setup for Haskell What you’re going to need: Vim 8 Your .vimrc A vim package manager…
When I started writing React – I made a big mess. Many of my components took too many props, or my component had an immense amount of state. Doing simple things required a lot of data manipulation, and ultimately led to a lot of bugs. It didn’t take long for simple tasks to become extremely tedious. I think this happens to a lot of people who start out with React. It’s almost too…
I’ve recently converted my webapp at work from Require.js to webpack, and although the initial setup was a little tricky, it clearly offers numerous benefits to make the switch when it comes to performance, loading times, and development workflow. In this post, I will only cover a basic switch from Require.js to Webpack. In a following post, I’ll go into lazy-loading with webpack and…
Setting up testing is usually a little painful – but setting up testing when you’re using some kind of weird Angular + Require setup is even worse! Furthermore, the Karma documentation is a little bit terse, so it’s hard to tell exactly what combination of configuration settings will get you your intended result. Here’s how I accomplished this. File Hierarchy Here is a…
Tastypie is one of the most popular REST API frameworks for Django, and surprisingly easy to get up and running if you’re already working with Django’s Models. It can, however, be a bit difficult to debug, and produce some cryptic error messages. Here are a couple of tasks I’ve had to figure out while working with this framework, tips for troubleshooting, and some general…
Let’s be honest: No developer wakes up in the morning and thinks, “Oh goody! Today I get to internationalize my giant website with tons of content and files. I bet supporting right-to-left languages is going to be a blast.” However, I’m here to tell you that it’s not nearly as bad as you would expect. In fact, Django makes it downright easy to do. Unfortunately,…
'In this way, the Athenians came to the circumstances under which they grew in power.' The first sentence from Thucydides' [Pentecontaetia](http://en.wikipedia.org/wiki/Pentecontaetia). This is a long post and chances are you only need information from part of it. Here’s a table of contents: Background 1. Trees: In Linguistics and in d3 2. Our Incoming Data 3. Dependencies Base Code 1. Our…
I had some issues with libraries installed via npm (such as d3 and jsdom) causing segmentation faults in Mocha tests. Ultimately I realized that it wasn’t a problem with these node modules so much as it was with my node install itself. I had installed from source following this guide, but it wasn’t quit enough to get my node install right on Debian Squeeze. Install Node.js Dependencies…
When browsing the web, I often read that setting up nginx with uWSGI is incredibly easy to set up and get running. I absolutely did not find it so, as I had to deal with a lot of configuration issues. So here’s how I finally got these components working together on an instance of Ubuntu 12.04. I ultimately hook this up to Django, but I’m sure the general principle would apply to other…
One of Backbone’s major strengths as a javascript MVC framework is the way it helps you do event handling. By extension, it’s also great for handling errors that result from failed AJAX calls. As you can see in the Backbone.js documentation, the error event is triggered when a model’s attempt to save fails server-side. However, there is no Backbone event that detects when the…
Somewhat recently, I encountered an issue where my expected user input is an arbitrarily long list of words. While I could get the word count, I had no reliable way to know whether all of the ajax requests had been completed before firing an event that created a list of definitions for each word. I had several realizations in my quest: I could do the entire process synchronously. However, this…
Prologue Last week I had the following mortifying experience: I tried to ssh into my box hosted at RackSpace and nothing happened. It simply hung, and never prompted me for my password. Commence panic. I determined that port 22 was, in fact, open, and I was connecting to the machine at some point. nc -zw3 monicalent.com 22 Connection to monicalent.com 22 port [tcp/ssh] succeeded! telnet…
Hi, my name is Monica. I’m an American software engineer and former engineering manager living and working in Berlin, Germany. I started coding before the age of ten, and haven’t stopped since. In my 10+ year technical career (not including coding as a kid 😉), I have worked in a wide range of domains such as cloud services, natural language processing, e-learning, and fintech. My…
Thanks for your interest in getting in touch! The best way to reach me is by email at hi@monicalent.com. NOTE: I do NOT accept guest posts or do link insertions. Paid or otherwise. Ask me for one of those things and I will mark your email as spam 😇 If you’ve got a more casual question, the best place to get in touch is on Twitter @monicalent.
Last updated: December 8, 2020 Monica Lent, c/o Factory Works GmbH, Lohmühlenstraße 65, 12435 Berlin Disclaimer This document contains the information required for an Impressum. For more information about how your data is used, collected, and stored, please read the privacy policy. Liability for content The content of this website was created with great care. I do my best to it ensure that it is…
Hello, welcome to my website. I use a very small number of third-party services, configured in a privacy-friendly way. Third-party services and data collected Google Analytics – GA is configured with all advertising, IP tracking, and demographics collection features turned off. No personal data is shared with Google Analytics. ConvertKit – ConvertKit is my email service provider. If…
.post-full img { border: 1px solid #444; border-radius: 3px; } Projects Affilimate : Unified Affiliate Dashboard and Content Analytics Affilimate aggregates affiliate commissions from different networks into a single, unified and user-friendly dashboard. It also enables scalable, automated attribution through dynamic subid tracking on a site, page, link, and link-occurrence level. This includes…
Conferences / Podcasts / Interviews Conferences These are conferences I will or have spoken at, as well as summaries of the talks I’ve given. Please note: I am no longer accepting conference or meetup speaking engagements since I’m 100% focused on growing my SaaS business. This includes talks I’ve previously given. Thanks for understanding! Conference Date Location GOTO Berlin…
Thanks for signing up for my newsletter 💌 I hope we’ll have some good conversions and learn something from each other. If you have questions or feedback for me in the meantime, I’m always available on twitter too @monicalent 😊 Keep rockin’
My core values are empowerment and empathy, and I thrive on helping teams building sustainable technical solutions that take into account the human element of software. I love building collaborative teams, sharing my knowledge, and mentorship. I’m also a nerd for content/email marketing, search engine optimization (SEO), and bootstrapped startups. I’m always interested in learning…