JavaScript, webdev

Why/How Senior Engineers Embrace AI Tools in Development?

How can you do better (or succeed more) with AI coding tools?

Senior engineers who use AI tools (co-pilot, claude.ai, cursor, etc.) are like master chefs who know when to use the microwave and when to actually cook with fire.

Here are some of the bold aspects I’ve noticed in the past year:

Continue reading
Standard
JavaScript, webdev

Cleaner Code: The Importance of Dependency Injection in Software Development

Dependency Injection (DI) is a software design pattern that addresses the problem of managing dependencies between objects in a program. In traditional programming, objects are often tightly coupled, meaning they directly create or reference other objects they depend on.
This can lead to rigid, hard-to-maintain code that is difficult to test or reuse.
Dependency Injection solves this problem by separating the creation and configuration of dependent objects from the objects that use them.
It is a design pattern where a class receives its dependencies from external sources rather than creating them internally. Think of it as “outsourcing,” the creation and management of objects that your class needs to work on.
Instead of directly instantiating or referencing its dependencies, an object receives them through its constructor, methods, or properties.
This decoupling makes the code more flexible, testable, and maintainable.
In large-scale projects, Dependency Injection becomes especially important as the codebase grows in complexity. With many interdependent components, DI helps manage the web of dependencies, making it easier to swap out implementations, replace third-party libraries, and test individual components in isolation.
This improves the overall modularity and scalability of the system.

Continue reading
Standard
webdev

How to Grow as a Full-Stack Engineer: Practical Tips for Young Developers

The brutal truth about leveling up as a full-stack engineer?
Raw coding speed and chasing the latest framework won’t cut it.
While junior developers often fixate on technical skills alone, the engineers who truly accelerate their careers understand a more profound truth: mastery demands rewiring how you think about software development.
Let me share the strategies that separate senior full-stack engineers from the pack – hard-earned lessons that took me years of mistakes to discover.

Continue reading
Standard
Business, webdev

A Guide to Measuring Engineering Team Performance

“You can’t manage what you can’t measure.”

While software development practices constantly change, there will always be a tier of truly top engineering teams who stand above their peers by combining unparalleled efficiency with top-tier code quality. What are the metrics that will help you evaluate your development team?
That question arises in many startups once you have a team of developers and need to run as fast as possible.

Continue reading
Standard
Business, webdev

15 Effective Strategies That Engineering Leaders Should Embrace

Engineering teams are the backbone of any tech-driven organization, and effective leadership is crucial to maximizing their productivity. As an engineering leader, you have the power to shape the direction of your team and drive their efficiency. In this blog post, we’ll delve into 15 essential strategies that can empower you to lead your engineering team to success. 

You are probably thinking: “Why 15?”

So the easy answer is: “Why not?” but a longer one is that after the time with Google, Netflix, and Meta – These are a collection of ideas I’ve collected. 

Continue reading
Standard
cloud, JavaScript, webdev

Mastering the Linux Shell: A Developer’s Guide to Unleashing Its Full Potential

Introduction

The Linux shell, also known as the command-line interface (CLI), has been a cornerstone of Linux-based operating systems since their inception. It provides developers a powerful and efficient way to interact with the system, execute commands, and perform various tasks. It’s one of the main factors that made Linux the most popular OS worldwide.

In this post, we’ll briefly discuss the history, explore its advantages and disadvantages, and discuss how developers can leverage its potential to streamline their work and enhance productivity.

History of the Linux Shell

The roots of the Linux shell trace back to the early days of computing. The concept of a command-line interface predates graphical user interfaces (GUIs) and originates in the mainframe era. 

I still remember the first time (At Tel Aviv University) we wanted to interact with a computer (mainframe) back in the day. It was with this black terminal. That was the only interface you had. We are talking here in mid-1980.

Even before that, in 1969, Ken Thompson developed the first Unix shell, the Thompson shell, which laid the foundation for future shell implementations.

Over the years, various shells were introduced, each offering unique features and improvements. In the mid-1980s, the Bourne shell (sh) became the standard shell for Unix-based systems, inspiring the Bourne-Again Shell (bash) development in 1989. 

Today, bash remains one of the most widely used shells in the Linux ecosystem. 

Ahh… if you are on MacOS, you can taste the same shell.

Continue reading
Standard
Business, webdev

Get Things Done – Lessons From Yahoo, Google, Netflix And Meta

Google, Meta, and Netflix are part of a small elite group of innovative and successful tech companies of our time. They have made a name for themselves in business and technology. All these companies are pioneering new technologies, products, and services. 

Google

Google’s search engine is a household name synonymous with finding information online. The mission is to “organize the world’s information and make it universally accessible and useful.” They are doing a fabulous job on that. However, the future is still determined by Google’s Bard and the competition with OpenAI and Microsoft.

Meta

Formerly known as Facebook, Meta is a social media giant connecting billions worldwide. Meta has not only revolutionized the way we communicate and interact with each other, but it has also changed how businesses and brands reach out to their target audience.

Meta’s acquisition of Oculus has given the company an edge in the virtual reality space, and the prospects of the Metaverse are still in the ‘dust’ – but it will be interesting if the future looks like “Ready Player 1”.

Netflix

Netflix has disrupted the entertainment industry by offering a subscription-based streaming service and investing in original content. How will the competition with HBO and Disney shape the future? That’s a good question.

But what can we learn from them? 

In the following slides, I focused on essential aspects.
If I missed something, please let me know.

Continue reading
Standard
JavaScript, webdev

SkyMass: A New Way to Build Web Apps

If you’re searching for a fresh approach to developing web applications, SkyMass offers an innovative solution. It provides a more efficient method for swiftly crafting functional web applications for your internal APIs.

Over the past few months, I’ve had the opportunity to collaborate with SkyMass on multiple projects, and the results have been impressive. Instead of starting from scratch with a React app each time, SkyMass has enabled me to swiftly define the essential components and have a working prototype in a matter of hours or days, rather than the weeks or even months it would typically take.

Continue reading
Standard
Chrome

Do You Need A Binary Repository?

Any developer knows that you must have a source code repository (e.g. Git) but from time to time I get the question “why do I need a binary repository”?

Here is the short answer:

Faster and more secure software development – Any company is a software company these days and the best companies release updates on daily/hourly bases. The ability to push updates quickly is a real competitive advantage. The minute you have few engineers on your team you wish to avoid ‘fetching the all internet’ with every ‘npm install’.
A binary repo will give you the option to cache these libraries and make sure you are working with the correct ones (vs a hacked one). From the developer perspective, it is a big boost for their productivity as it saves time during development and on each build. Even better, from the DevOps perspective, the ability to control all the packages/libraries (and scan them for vulnerabilities) is a huge advantage. It enables the internal engineering team to control the releases better as they have full transparency (e.g. quality, performance, security, licenses, etc’) on everything the ‘compose’ the release version. Check the 12-factor app manifesto for more on dependencies (declaration and isolation).

Continue reading
Standard
cloud, testing

Product Excellence Best Practices

What are the components that help teams to build quality into their outcomes?

The main goal is to create a baseline that developers could follow and be in a quality level that is well defined and measurable. The main parts to focus on are:

  1. Testing
  2. Code reviews
  3. Static analysis
  4. Health monitoring: availability, resilience, etc’.

Tests

Continue reading
Standard