When developing, how often do you think about starting over from scratch and redesigning the whole system?

“Developers buy into a familiar lie: ‘We can clean it up later; we just have to get to market first!’ Of course, things never do get cleaned up later, because market pressures never abate” — Clean Architecture: A Craftsman’s Guide to Software Structure and Design

Image for post
Image for post
Photo by JESHOOTS.COM on Unsplash

There will always be new requirements to fulfill and new features to ship. If the code isn’t well designed in the first place, one day it will come down burning.

Developer’s nightmare scenarios:

  • there is no way of adding the new feature without breaking old features or require a complete…

7 steps on how to set your personal 2021 roadmap

Image for post
Image for post
Photo by Daria Nepriakhina on Unsplash

As we are wrapping up in 2020, many companies are starting to have year-end talks and 2021 roadmap plans. Product managers have their schedules packed with planning and retrospective meetings to plan for the year ahead. How about our personal goals for 2021? How can we plan our personal 2021 roadmap as Product Managers would?

(Note: Some links in the following are affiliate links. If you choose to purchase the item through the link, it will help me earn some extra bucks at no cost to you. :) Thank you)

Step 1: Get Feedback

“If I had asked people what they wanted, they would have said faster horses” — Henry…

The inner turmoils when Slack went down while working from home

Image for post
Image for post
Photo by Stephen Phillips - Hostreviews.co.uk on Unsplash

According to Slack’s status page (https://status.slack.com/2021-01-04), Slack was down from 9:14 AM CST to 1:28 PM CST on Jan. 04, 2021.

This was definitely not the first time that Slack went down (https://status.slack.com/calendar), but it is the first time that I have encountered Slack going down while our entire team is connecting remotely.

The following is a playback of the whole incident and the valuable lessons our team learned during the downtime.

Wait? Is Slack or my Internet down?

I was in the middle of debugging when a Slack notification popped up on the bottom right of my computer. …

And the telltale signs that you are on the right track — from a tech lead

Three women working together on their laptops
Three women working together on their laptops
Photo by Christina @ wocintechchat.com on Unsplash.

Pick and choose from the following tips as you see fit!

1. Reduce Context Switch Before the Task Is Completed

This all makes sense and is reasonable until deadlines approach. Chances are, you always have managers to report to or customers to respond to. A missed deadline would be a sour blemish on your performance report. Whenever I see newly hired developers still trying to understand the code base mere days away from the deadline, I have to fight the urge to ask them to push whatever they have and complete it myself.

Think back to the time when you started as a junior developer. How often were you assigned to work on a project only to be told to switch to another one while a senior took over your original project? …

Image for post
Image for post
Photo by ROBIN WORRALL on Unsplash

Last month, my entire phone screen suddenly turned bright green. Of course, I promptly tried turning it on and off again to see if that would fix the problem. After several attempts, I had to reluctantly admit that rebooting is not always the ultimate solution and decided to take it to the repair shop. Turns out the whole screen needs a replacement and it would cost around $120 and two weeks to get it fixed.

Ugh. I was hesitant about fixing an old phone for $120. …

Lightning-fast search through handwritten notes is just one way to leverage the power of digital note-taking.

I’m an avid note-taker. I was initially doubtful about digital notes.

After testing out various digital handwritten note-taking apps out there in the market — Goodnotes, Notability, and Evernote — I have settled on Goodnotes. Goodnotes is an iOS note-taking app and its suite of nifty features makes note-taking a whole lot easier. While some of these features can seem obvious, they really add up to a smooth and efficient experience.

These are the ways I found to leverage the features of Goodnotes on the iPad for my work as a software engineer and student. …

A doodling approach to explaining image compression, rank, and SVD

Image for post
Image for post
Image source: Author

Bitesize Machine Learning — Bite #1

There are lots of algorithms out there for image compression, but this article is going to focus on Rank-K approximation. The concepts covered in this article will serve as a foundation for other common machine learning problems such as PCA (principal component analysis), matrix completion, and noise reduction. (See the last paragraph for more details.)

It’s easier to understand Rank-K approximation through images. For simplicity, let’s assume we are only dealing with grayscaled images, so each data point lies within 0 and 1, with white as 0 and black as 1.

Cozy Minimalist v.s. Extreme Minimalist

Personally, minimalism is never about limiting myself to own only X number of items and depriving myself of materialism. I have come across extreme minimalists who insisted on owning just one object of each functionality: One cup, one chair, one desk. No, thank you, I think I would like to drink my coffee from an actual coffee mug and not a glass jar.

The reason that I have chosen to live a minimalist life is not that I want to deprive myself of physical items, but I want to spend less time on objects that don’t matter and focus more on the people that I love and experience life. …

Because there’s no “I” in “team”

Woman laughing while sitting at a table
Woman laughing while sitting at a table
Photo by Brooke Cagle on Unsplash.

Teamwork behavioral interview questions are tricky to answer, mainly because people react differently in varying scenarios and it is difficult to figure out what the interviewer is looking for. Throughout the years, I have been on both sides of interviews for different teams and different positions, and I definitely sensed a pattern.

Disclaimer: Most of the people I interview are applying for either software engineering- or product manager-related positions. Other positions may have slightly different questions regarding team communication.

1. Resolve a Disagreement on Implementation

Question: How would you resolve a disagreement on implementation?

I’m quite surprised at how many “Do whatever the boss says,” “Do whatever the product manager says,” or “Do whatever <insert a higher position> says” answers I get from interviewees. …

Git lola, better branch names, squashing, and more

GitLab dash
GitLab dash
Photo by Pankaj Patel on Unsplash.

1. Run git lola to Visualize Commit History

When working with Git versioning, it is crucial to be able to visualize your Git branches.

Git commands can be long and tedious to type out. To save yourself some effort in the future, let’s set up one useful Git command that helps you visualize your Git branching history.

In the terminal:

vim ~/.gitconfig

And then in the gitconfig file, add in the following snippet:

[alias] lola = log --graph --decorate --pretty=oneline --abbrev-commit --all --date=local

I just cloned a brand new project that only has the initial commit to it. …


Jenn Greene

software engineer (web full-stack) + Machine Learning grad student at UT Austin. I write about studying tips, productivity, and minimalism.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store