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 … Continue reading Are you a senior 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 … Continue reading Are you a mid-level 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 … Continue reading Are you a junior developer?
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. … Continue reading How to tell what level of developer you are, junior to senior
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. … Continue reading A Surprising Way Managing Has Made Me A Better Tech Lead, Part 2
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 … Continue reading A Surprising Way Managing Has Made Me A Better Tech Lead
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 … Continue reading Choosing your tech stack, 2020 Edition
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.
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 … Continue reading Choosing your tech stack, 2020 Edition
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 … Continue reading Debugging Elastic Beanstalk
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. People who have worked with Phabricator using a ‘stacked diff’ workflow generally love it and seek it wherever they next go. People who have never used it and only use Pull Requests with GitHub/GitLabs generally don’t understand … Continue reading Stacked Diffs Versus Pull Requests
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 … Continue reading Communicating via AES 256 GCM between NodeJS and Go(lang)
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 … Continue reading How not to join the wrong company
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 … Continue reading Do you need strong mental math to pass an engineering interview?
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.
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. We’ve walked … Continue reading Architecture and Systems Design Interviews
Episode 04 of the series is available now on my YouTube channel. 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 code in … Continue reading Permutation Generator 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. There is an easy brute force solution to this problem, … Continue reading Calendar Conflicts Coding Interview Question
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: With this coding problem, you’re main challenge is generating combinations. There are some really fancy … Continue reading Dinner Party 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: The problem here can be stated pretty simply. Imagine that you need a function that can take two inputs: … Continue reading Least Disruptive Subrange Coding Interview Problem
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 … Continue reading Thinking About Knee Jerk Reactions
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. … Continue reading Birthday Question, Age 31
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 … Continue reading “Mate, really?” (Or, Why It Matters to Me)
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 … Continue reading Review of Secret Cinema, Spoilers Included
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 … Continue reading Lessons: A Year and A Decade
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 … Continue reading Sassy !== Assertive and Female
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 … Continue reading This Web Page is a Dick: T-Mobile
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 … Continue reading Generating a Color Picker Style Color Wheel in Python
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 … Continue reading Hey Android, Where’s the USB Data?
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 … Continue reading Baby Steps: Vim Macros
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 … Continue reading APKs Won’t Download In Android Browser