react-dom for your UI,
lodash for utility helper methods,
rollup as your bundler, and
@testing-library/react for unit tests.
All of these packages are stored as dependencies in your
package.json file. Understanding whether to include them as
peerDependencies can sometimes be a struggle for newer developers.
In this article, we’ll look at the three types of dependencies found in the
package.json file and what each does.
dependencies are packages used…
I’ve recently become fascinated by the idea of “winner’s games” and “loser’s games.” There are several great articles which explain the idea in depth, but here’s a quick summary:
An observation was made by Simon Ramo in 1973 that there is a big difference in how games are won in amateur tennis versus professional tennis.
When two amateur opponents are playing, the game is often won not through the winner’s great skill but because of the loser’s mistakes. The loser often commits unforced errors by hitting the ball out of bounds, missing easy shots, or double faulting. In other words…
Content platforms thrive on suggesting related content to their users. The more relevant items the platform can provide, the longer the user will stay on the site, which often translates to increased ad revenue for the company.
If you’ve ever visited a news website, online publication, or blogging platform, you’ve likely been exposed to a recommendation engine. Each of these takes input based on your reading history and then suggests more content you might like.
As a simple solution, a platform might implement a tag-based recommendation engine — you read a “Business” article, so here are five more articles tagged…
Software engineering is an interesting field because the work never really ends. You may be working to finish a feature now, but after that there will be more features to build. More bugs to fix. More tech debt to pay down.
You could spend your entire life working and never really “finish.” I suspect the same is true of most other professions.
And yet, I often feel a sense of urgency, that I must work later or longer to get more work done.
To be clear, this isn’t a result of poor time management — I get plenty of work…
As a senior software engineer at a large growing tech company, I have the privilege of helping interview many other software engineers who apply to come work with me. Throughout the last year, I participated in about 50 interviews for positions ranging from mid-level software engineer to senior software engineer to engineering manager.
This experience has given me time to reflect on the qualities and skill sets that I value in other senior software engineers, and as a result, I try to craft my interview questions in such a way that I can hopefully get a glimpse into these attributes…
Similarity search is a subset of the machine learning field that deals with finding items that are closely related to the original input. It’s incredibly useful for things like product, music, or movie recommendations. You watched The Office on Netflix, so here are some other shows you may like. You frequently listen to Bayside on Spotify, so go check out these other pop-punk bands.
Similarity search can also be used to automate customer support. What if when a customer asks a question, you could easily find previously asked similar questions and answers that could help them?
Being a tech lead is difficult.
As a tech lead, you’re often expected to continue to be a high performer as an individual contributor while also taking on additional responsibilities to help the team. These additional responsibilities may include breaking down work into clearly defined tasks, grooming the backlog, prioritizing work, mentoring junior engineers, and resolving blockers for the team.
The hardest part of being a tech lead is learning to balance your individual work with the needs of the team.
How do you get your own work done while helping the team remain productive? You can’t do it all…
DevOps is hot right now. It seems like every software engineering job posting requires DevOps experience and expertise regardless of the actual job title.
When a tech company breaks up its monolith into microservices, each of its engineering teams now owns their portion of the application from start to finish. Software engineers no longer just build the application. They also own repo maintenance, set up continuous integration, configure build pipelines, and deploy their application.
In this world of cross-functional teams and microservice architecture, DevOps skills become increasingly important — and that starts with understanding CI/CD (continuous integration, continuous delivery, and…
Remember the 90s? Pokémon, Beanie Babies, Crazy Bones, Super Nintendo, Pogs, and neon windbreakers… Those were the good old days. The web was a simpler place too, with barebones websites composed of mostly text and hyperlinks. I remember it like it was yesterday. Or, wait — 30 years ago?
I recently found Wicked Coolkit — a nifty retro-themed toolkit — and I thought it would be fun to play around with it to briefly relive those years. The toolkit includes a hit counter, webrings, and developer trading cards.
If you’re feeling nostalgic too, let’s explore some web development trends from…
With a long list of end-to-end (e2e) test frameworks available to choose from, it’s hard to know which one you should be using. Cypress and Selenium are leading the market as the most widely used options, but there’s also Appium for mobile app testing, Puppeteer for automating tasks in Chrome, and Protractor for Angular and AngularJS applications, just to name a few.
Recently, a newcomer has joined the pack: TestProject, a free, open source test automation platform for e2e testing that helps simplify web, mobile, and API testing. …