I’m a Staff Software Engineer from Chicago. Currently at Bain & Company building AI-powered knowledge retrieval tools for consulting. Previously worked on data privacy and consent management at Abbott, shopping orchestration micro-services at United Airlines, and enterprise platforms, chatbots and web applications at Accenture. Graduated with a BS in Biology from Loyola University Chicago…
Intro I’ve noticed that almost every book I read, new restaurant I try, or video game I play is usually based on someone’s recommendation. In the data science world, we can build recommendation engines using a technique called “Collaborative Filtering” to help make predictions when the data we have is limited. The gist of it is: “If I like something and I’m into…
Intro In 2023 I interviewed with Amazon and Google. Both were eye opening experiences and exposed me to the rigor and extreme caution that big tech companies take with their hiring process. Their philosophy, as I’ve come to understand, is that passing on a few good candidates is better than hiring one bad egg. This poses an especially big challenge for us humble interviewees because we need to be…
Intro So I’ve had my fair share of personal websites and blogs. I have built them on stacks ranging from the most basic HTML and CSS, to hosted frameworks like Wordpress and Laravel, to the more modern single page applications built in Vue and React. For a simple content blog I think you can’t go wrong with a Static Site Generator though. These days I am almost exclusively writing…
As a budding Rust programmer, I recently found myself wanting to set up a local development environment that would allow me to easily write and test code. After doing some research, I decided to give AstroNvim a try. AstroNvim is an open-source configuration for the Neovim text editor that provides a number of helpful features for development including syntax highlighting, code completion, and…
A Closure in JavaScript gives you access to an outer funtion’s scope from an inner function. This is useful for a number of things, but first lets take a look at how we declare a local variable. For example: function getDinner() { var dinner = 'steak'; function whatsForDinner() { console.log(dinner); } return whatsForDinner(); } var todaysDinner = getDinner(); todaysDinner(); // steak Notice…
We can use a “data-*” attribute in our html to make accessing DOM elements for our unit tests more easily. Grabbing elements based on id, class, or html symantics is completely viable, but it may also lead ot some unexpected unit test failures due to simple UI changes – say the removal or renaming of a class. Thus using a custom data attribute allows us to still access the…
Here is a useful code snippet that allows you to pass in an array of objects, and then filter out the objects that have duplicate key values. Imagine you have a list of articles that you have merged from multiple sources and want to remove the duplicates based on id. const articlesList = [ { id: 3, title: 'Interesting Stuff', content: '...' }, { id: 45, title: 'Even more interesting', content: '.
In JavaScript, const and let are both ways to declare variables, but they have some important differences. const stands for “constant.” When you declare a variable using const, you are telling the compiler that the value of the variable cannot be reassigned. For example: const pi = 3.14; pi = 3.14159; // This would cause an error On the other hand, let allows you to declare a variable…
A higher-order function is a function that takes one or more functions as arguments, or returns a function as its result. Higher-order functions are an important concept in functional programming, as they allow you to abstract over actions rather than just values. One common example of a higher-order function in JavaScript is the Array.prototype.reduce() function. This function takes an array and…
Here is a simple little script that checks a directory for node module and prints the total damage done: cd directory_to_check find . -name 'node_modules' -type d -prune | xargs du -chs To remove them use: find . -name 'node_modules' -type d -prune -exec rm -rf '{}' +
Check out Wes Boss’s uses.tech group and add feature your own /uses page. Here is the gear I have been using lately. Software Text Editor: LazyVim, VSCode Terminal: Kitty, Tmux (see my dotfiles) Hardware - on the go MacBook Pro M1 Max 16 AIAIAI TMA-2 Move Wireless headphones Hardware - linux hacking MacBook Pro 14,1 2017 (non-touchbar) Arch Linux (modified Omarchy) Hardware - home…