When the Interviewer Fails
Did you fail that interview or did your interviewer fail you? Did you ever get rejected from a job interview and feel terrible about it? I mean, like really beat yourself up about it. I know I have. Well, sometimes there’s more to the picture than you passing or failing. Sometimes the interviewers don’t…
Real Gs Move In Silence Like Alignment
Lil’ Wayne really captured something important in that line. It doesn’t just apply to gangsters. It also applies to senior engineers and managers. I was in a discussion a few weeks back about how directly technical we can expect managers to be. To be honest, it was quite a dramatic conversation (by the standards of…
Shared Context, But Like Durable
Most companies have a small number of people who know how everything works. These are the people that answer the questions for new joiners. They write the documentation. They train and onboard new people. They empower and nurture and explain. They’re the busiest and most valuable team members. They’re multipliers for their teams. Their impact…
Are you a senior developer?
When an engineer transitions from mid-level into senior, their job tends to change. Mid-level engineers can get away with the occasional dalliance into some pet problem. Or some period of low productivity because they’re lost and confused and need some guidance. With seniority comes higher expectations. This post is a detailed look at the senior…
Are you a mid-level developer?
Graduating from juniority into… uh… mid-level-ity? means reaching some key mile markers. Mid-levels have solid core programming knowledge. Their overall problem solving ability has progressed a lot. They generally have a sense of how to solve a problem when they hear it described. This post is a detailed look at what being a mid-level developer…
Are you a junior developer?
The key hallmark of juniority is the quest for clarity. To use the language of my homeland, junior developers don’t know their asses from a hole in the ground. Everything is a mystery. Most mysterious of all is how to progress and what “good” looks like. This post is a detailed look at the junior…
How to tell what level of developer you are, junior to senior
The developer you are today is a cleverer, more capable version of the developer you were yesterday. The scope of task you can handle today is ever so slightly bigger and more challenging than your peak yesterday. It’s one of the most exciting aspects of becoming a software engineer. The career progression opportunities are massive.…
A Surprising Way Managing Has Made Me A Better Tech Lead, Part 2
This is Part 2 of the story that begins here. The points explained here are the ways in which I should have handled my first intern’s sub-standard performance. It was the first time I needed to give tough feedback to someone and I failed — massively. Described below is what I wish I had done.…
A Surprising Way Managing Has Made Me A Better Tech Lead
Moving from full time coding into full time managing is a move many engineers and developers look at with a strong dose scepticism. We use metaphors like “becoming part of the corporate machine” or “turning to the dark side” to describe it, from the outside. There is probably some truth in that. However, there are…
Choosing your tech stack, 2020 Edition
Part 2/3: Server Side Tech Picks This is the second part of a three part series about choosing a technology stack for a startup in the modern (at least as of the time of this writing) world. The last post focussed on building a client side web app using modern tech. For this post, we’ll…
A CSS Puzzle
As posted on Twitter and elsewhere, here’s a fun little CSS brainteaser for you. No images. No SVGs. No box shadow! Think you can reproduce this UI and interaction? Let me know how you did it.
Choosing your tech stack, 2020 Edition
Part 1/3: Client Side Tech Picks We started Radical in 2020 in the middle of a pandemic. Our mission is building absolutely killer real-time and asynchronous collaboration features that work with any existing SaaS tools. In other words… This idea sounds simple enough, but when you dig into what’s required to deliver this, you start…
Debugging Elastic Beanstalk
Recently, I’ve had the extremely mixed blessing of working with AWS and Elastic Beanstalk to deploy an app. This app has continuous delivery going using the Code* Suite. While not wonderful, CodePipeline/CodeBuild are at least straightforward. Enter Elastic Beanstalk. I’ve been attempting to use the CLI to trigger Elastic Beanstalk version updates. This would seem…
Stacked Diffs Versus Pull Requests
Update: This post received quite a lot of healthy discussion on Hacker News. You can follow that conversation here: https://news.ycombinator.com/item?id=18119570 Update: And… again? https://news.ycombinator.com/item?id=26922633 Update: Btw, if you want to work this way, we’re hiring at Cord! Update: If you want the Stacked Diff workflow but you’re stuck with GitHub, there’s an excellent tool for…
Communicating via AES 256 GCM between NodeJS and Go(lang)
I recently had the mixed fortune of needing to send encrypted payloads back and forth between a service running in NodeJS and a service built in Golang. It was not a straightforward thing to do, which made me appreciate just how particular and difficult these libraries are to use, doubly so to communicate across services…
How not to join the wrong company
I recently had the experience of joining and then leaving a startup. I won’t get into the details of the company, but let’s just say it rhymes it “kitty slapper.” I stayed a month, which was long enough to understand the culture of the company, the mission, and the people. In that time, it became…
Do you need strong mental math to pass an engineering interview?
I got a great question from a viewer of the Intro to Architecture and Systems Design Interviews video I created (https://youtu.be/ZgdS0EUmn70). The question is: If my mental math is really weak, is it OK to whip out a calculator app? Below is my answer, republished here so everyone can (I hope) benefit from it: For…
This site is now available only via SSL
After much gnashing of teeth and furious Googling of obscure SSL related Apache error log messages, this site is now available via SSL exclusively. Huzzah.
Architecture and Systems Design Interviews
[youtube https://www.youtube.com/watch?v=ZgdS0EUmn70&w=1280&h=720%5D Welcome back for Episode 06 of The Unqualified Engineer! I wanted to switch things up a bit this time. On an earlier episode, one of our viewers Vahid Noormofidi asked about system design interviews, so today we’re going to go there. We’ve talked a lot about coding skills on this channel so far.…
Largest Rectangle in a Histogram Coding Interview Problem
Here’s the full text of the code from Episode 05. This is coded in JavaScript and uses the common approach of using a stack to keep track of the open rectangles. https://gist.github.com/jacksongabbard/9cc21485c5e02d145203fa28651f42c4.js
Permutation Generator Coding Interview Question
Episode 04 of the series is available now on my YouTube channel. [youtube https://www.youtube.com/watch?v=V7hHupttzVk%5D This problem revolves around generating permutations of a sequence incrementally. Rather than pouring out a huge vector of output, this problem asks for a generator that can output the next permutation of a vector with every iteration. For this video, I…
Calendar Conflicts Coding Interview Question
Here’s the video and code for the Calendar Conflicts video which walks through a linear complexity solution to a common coding interview problem. The idea is that you’re given a list of calendar events and you must find any events in the calendar which conflict. [youtube https://www.youtube.com/watch?v=olK6SWl8UrM&w=560&h=315%5D There is an easy brute force solution to…
Dinner Party Coding Interview Problem
You’ll find the text-form code from the second episode here. Following some very good critical feedback I got from friends and viewers, this episode is much, much shorter and focuses entirely on a coding challenge. The full video is here: [youtube https://www.youtube.com/watch?v=3teHU4n-czU&w=560&h=315%5D With this coding problem, you’re main challenge is generating combinations. There are some…
Least Disruptive Subrange Coding Interview Problem
Here’s the code from the first episode. This is a basic coding interview question that you might be asked in an interview at a tech company. You can see the video associated with this code here: [youtube https://www.youtube.com/watch?v=1wMBw38rAlw&w=560&h=315%5D The problem here can be stated pretty simply. Imagine that you need a function that can take…
Thinking About Knee Jerk Reactions
Original post here: https://www.facebook.com/jg/posts/10100265608855158 While I was running tonight, I had a thought about the extremely negative reaction so many privileged people have to being called sexist or racist or <insert thing here>-ist. It occurred to me that this group of people probably hates being unfairly labeled as something they don’t see themselves as and don’t…
Birthday Question, Age 31
Original Post: https://www.facebook.com/notes/jackson-gabbard/birthday-question-age-31/10152781770934836 So the 21st was the day of the Birthday Question. It’s the 2014 edition and roughly the 4th year of asking it. I think for me, this is a fairly easy thing to decide on. Last year was a big year and one that I spent a lot of time reflecting about.…
“Mate, really?” (Or, Why It Matters to Me)
Original Post: https://www.facebook.com/notes/jackson-gabbard/mate-really-or-why-it-matters-to-me/10152645525549836 I wrote a note a long while ago about a conversation I had over a dinner. I wrote the note to explain how the conversation was actually sexist and dismissive of women despite looking like a conversation that was praising some of the women we knew. I got a lot of flack for…
Review of Secret Cinema, Spoilers Included
Update: After a few pieces of earnest feedback that I’m actually taking away from people’s experiences, I decided to alter the details of this post to exclude direct mention of the movie. Given the strong negatives of the overall experience, I feel like what movie it is doesn’t really matter. Still, doesn’t do to diminish…
Lessons: A Year and A Decade
Original post: https://www.facebook.com/notes/jackson-gabbard/lessons-a-year-and-a-decade/10151936284329836 This is my answer to The Birthday Question for the 30th year of my existence. I was asked the question by a number of people this year, which I think is awesome. For those of you who haven’t been exposed, the question is this — what is the most important lesson you learned…
Sassy !== Assertive and Female
Original post: https://www.facebook.com/notes/jackson-gabbard/sassy-assertive-and-female/10151447333274836 At a dinner some weeks back, I was having a conversation with some male engineer friends of mine from a bunch of companies in the London area. The challenge of finding engineers who are women came up. It’s a topic that comes up a lot when I’m at the table because I think…
This Web Page is a Dick: T-Mobile
It boggles me endlessly when sites have draconian requirements for passwords. I use a password generator/store application called 1Password. This application lets me create crazy strong passwords for every site I interact with. This means I can ratchet up the special characters and length without any worry that I won’t remember the password. I know…
Generating a Color Picker Style Color Wheel in Python
For the record, I am very bad at Python. Yet, it has become more and more my go-to language for doing little things that aren’t web. For instance, I recently undertook to create a color picker/color wheel in Python. For the uninitiated, a color wheel or color spectrum is a series of hues that run…
Hey Android, Where’s the USB Data?
Does your ping look like this when using Android’s sweet USB tethering feature? I tried lots of things: Disabling/Enabling USB Tethering Disconnecting/Reconnecting the USB cable Restarting the phone Disabling/Enabling the network interface on the computer Restarting the computer All of this got me exactly no where. The phone is still connected to the interwho, but…
Baby Steps: Vim Macros
I spend probably a third of my maker time writing code (another third doing root cause analysis on bugs and another third reviewing code, more or less). In my coding time, I do almost all of my work in Vim and Bash, mostly Vim. You IDE buffs out there can scoff if you will. Vim is…
APKs Won’t Download In Android Browser
If you, like me, are attempting to setup a download end point for Android APK files that doesn’t include a .apk in the URL, you have probably butted your head against a myriad of issues. It’s worth noting that downloading APKs in Dolphin, Firefox Mobile, or Opera all work fine with respect to using Content-Disposition…