Tag: Software

Next week, OpenAI Will Change Software Forever

Our digital landscape is about to undergo an amazing metamorphosis: software as we have come to understand it, will change forever. OpenAI has announced that it will make its Code Interpreter plugin available to ChatGPT Plus subscribers next week. Compared to other rec...

Code Style Matters in a Take-Home Interview

Let’s get this out of the way to start: probably not just software engineering interviews, but all interviews are in some way flawed. They can overemphasize unimportant aspects during the job and underemphasize aspects that are very important on the job but might be harder to capture in an ...

To Be A Great Software Developer — You Need a System

Software Engineers are expected to churn out work quickly in this fast-paced development world. And let’s be frank. There is a lot of competition out there these days. We have to make ourselves stand out. One way to do that is to churn out high-quality work. One way to consistently produ...

Career Planning as an Individual Contributor Software Engineer

As a Principal Software Engineer, I get to see a lot of folks joining the industry and trying to find their footing to climb the software engineering career ladder. Some people have a very clear idea of what they want from their careers and some have no idea what the next levels look like – or...

Avoid These 5 Workplace Traps to Get Ahead as a Software Engineer

Working overtime If you have read my articles on improving as a Software Engineer, you know I despise the overtime culture. I've experienced burnout at the hands of a corporation multiple times in my 20+ year career as a software engineer, and it's not fun. I currently work f...

Next week, OpenAI Will Change Software Forever

Our digital landscape is about to undergo an amazing metamorphosis: software as we have come to understand it, will change forever. OpenAI has announced that it will make its Code Interpreter plugin available to ChatGPT Plus subscribers next week.  revolutionary. I&...

CI/CD Pipeline Using GitHub Actions: Automate Software Delivery

Today we are going to look at CI/CD pipelines and how we can set them up for free using GitHub Actions. You might not be aware of what CI/CD is and why we use it, so let’s cover that first. Continuous Integration CI stands for Continuous Integration, the process of automatically build...

Advice From a Software Engineer With 8 Years of Experience

Hello, and welcome! My name is Benoit. I have been a software engineer for the past eight and a half years. I stayed at my previous (and first) company for seven and a half years, then I joined a new one in early 2022. This article comes from a recent self-reflection on the things I wish I had...

Best Books for Software Engineering Leaders

Being a Software Engineer these days is extremely challenging — technology is moving faster than ever and sometimes it can be a struggle to keep up! New technology options spring up daily and there is an ever growing number of learning platforms to choose from. I personally find that newer ...

Could I Be the Only Person in the World Still Using This Software

In general, I am the sort of person who does not waste money. When making a big purchase, I usually save up and pay for it outright, rather than borrowing money and buying it right away. There are exceptions when the ADHD side of me takes over and behaves impulsively. Let’s not mention that...

Some First Thoughts on Next 13

I was stoked when I started hearing about Next 13 a couple of months ago. I had some time on my hands, so I thought I’d do an example project to kick the tires. The big thing that had me so excited was the new streamed HTML capability. I’d read about it a few months ago, a...

Software Development Life Cycle And Quality.

In this article I’ll take you through the world of software development and quality of software. SDLC is a framework for developing software of high quality at low cost. SDLC has six distinct phases i.e Requirements gathering, Analysis, Design, Coding, Testing and maintenance. Now let’s ...

MetaGPT Lets You Create Your Own Virtual Software Company from Scratch

MetaGPT, available on Github (crossed 13,000 stars), aims to change the way we make software. This exciting tool can take a single line of what you want to do and turn it into many things like user stories, an analysis of the competition, requirements, data structures, APIs, and documents. What&r...

Career Planning as an Individual Contributor Software Engineer

As a Principal Software Engineer, I get to see a lot of folks joining the industry and trying to find their footing to climb the software engineering career ladder. Some people have a very clear idea of what they want from their careers and some have no idea what the next levels look like – or...

Modern Software Engineering – Documentation

Documentation is a perennially controversial topic because, in my experience, software engineering has focused so much on the business value of artefacts like the source code and shipping features more than others. I constantly hear folks saying that we should only be writing the documentation that&...

2 Regrets of a 55 Years Old Retired Software Engineer

I have started thinking about my long-term plan and what I want to do in my life. Soon, I will share those with you. But as part of the plan, I decided to make a plan to talk with different kinds of programmers. My main goal is to learn as much as possible from them. I also decided to write funda...

Avoid These 5 Workplace Traps to Get Ahead as a Software Engineer

To be productive as engineers, we need strict control over our workday. And we cannot let up on protecting our time. Because the vultures will come swooping in and try to waste it. Many things are out of our control in the modern workplace, but we can control what and who we give our time and how...

To Be A Great Software Developer —  You Need a System

Software Engineers are expected to churn out work quickly in this fast-paced development world. And let’s be frank. There is a lot of competition out there these days. We have to make ourselves stand out. One way to do that is to churn out high-quality work. One way to consistently produ...

The 5 paid subscriptions I actually use in 2023 as a software engineer

I care a lot about the tools I use. Especially when they aren’t free. Some tools are too good to keep to myself. I have to share them! Here’s what I’ve spent my money on in 2022–23 that has genuinely improved my life as a software engineer. Please note: None o...

Best Web Crawling Tools and Software

The demand for data extraction is increasing and is expected to reach 1.8 billion dollars by 2031, according to Strait Research. Kick-start your data extraction project using the best web crawling tools and say goodbye to annoying crawling headaches. We researched and tested hundreds of free...

20 Questions You Must Ask In Software Development

The last week, I published an article revisiting the twelve steps for better code from Joel Spolsky, co-creator of Slack and Trello. Although those steps were very significant twenty-three years ago, they were just a glimpse of the techniques that were still to come from Lean and Continuous Delivery...

The 5 paid subscriptions I actually use in 2023 as a software engineer

I care a lot about the tools I use. Especially when they aren’t free. Some tools are too good to keep to myself. I have to share them! Here’s what I’ve spent my money on in 2022–23 that has genuinely improved my life as a software engineer. Please note: None o...

Become a 10x Software Engineer with Bayesian Thinking

Bayesian thinking is extremely powerful when it comes to software engineering. At its core Bayes Theorem is a way of updating our beliefs about the world with new knowledge that we gain. Bayes’ Theorem is extremely powerful because it allows us to use the additional specific information we ...

Become a 10x Software Engineer with Bayesian Thinking

Bayesian thinking is extremely powerful when it comes to software engineering. At its core Bayes Theorem is a way of updating our beliefs about the world with new knowledge that we gain. Bayes’ Theorem is extremely powerful because it allows us to use the additional specific information we ...

DevOps, the Software Jack-Pot

  I started working in IT in 2007, and while I have never worked in a tech company, I saw how things progressed from the “expert” to “jack of all trades, master of none,” sustained by technical progress, automation, and cost-cutting. This article goes through the role...

From Code To Cash: How To Make Money With Software

I’ve done several presentations at conferences and universities. Through these, I make a lot of very nice and interesting contacts. A young gentleman and fellow software engineer in his mid 20s, who had been in the audiences of one of my presentations, recently approached me. He came up with t...

MetaGPT Lets You Create Your Own Virtual Software Company from Scratch

MetaGPT, available on Github (crossed 13,000 stars), aims to change the way we make software. This exciting tool can take a single line of what you want to do and turn it into many things like user stories, an analysis of the competition, requirements, data structures, APIs, and documents. Me...

Green Software Development: Paving the Way for Sustainable Coding

The environmental impact of software development is frequently ignored in a society that is becoming more and more computerized. Our digital experiences’ servers, data centers, and other hardware produce a sizable amount of carbon emissions. The software development community is adopting a new...

How I’m Using My MacBook as a Software Engineer in 2023

I’ve written this Medium story to help MacBook users on the intel-based chips to understand the benefits of switching over to Apple Silicon. I primarily use my MacBook for software development, here’s how I’m using my new machine. Hope you’ll find it insightful, ...

“Sprints”: The biggest mistake of Software Engineering

Yes, let’s talk a little about being agile and the Brazilian definition of the current state agile generated called “eXtreme Go Horse” methodology. The misconceptions The first thing is to get the common misconceptions out of the way. Agile is going fast By now, we all ...

Why Software Developers Are Silent in Meetings

Ever sat in a Sprint Retro where your Scrum Master didn’t arrive for ten minutes? I just did. We sat in silence. Ever been in a Sprint Retro where almost nobody participates? Are you thinking I just did? You’re a great blog reader if you did! Well done you! What’...

The Fallacy of Anecdotal Software Development

Anecdotal software development is defined as an over-reliance on personal experience or opinion when designing and building software. You’ve probably have never heard it put quite this way before, but this is how the majority of people write and develop software. And if you stop to think ab...

Software is Losing Juniors Faster Than Ever Before

As software developers, we are used to being part of a talent shortage. People were always willing to pay us for our rare and valuable talents. When software houses could not get any. That is changing. In the here and now Escaping the junior software development experience trap In man...

The Hidden Cost of Software Automation

“Anything that you do more than twice has to be automated.” That sounds like a great quote. But, be careful. Automation is costlier than just the process of automating it. This is speaking from a real case I’m sharing below. A Real Case Story There was a piece of code in o...

Is TOGAF Worth Your Time as a Software Architect?

There are many technical certifications like Azure/GCP/AWS Architect certifications, but they only focus on architecting systems in their respective cloud ecosystem. You can argue that the same principles can be applied everywhere but are very much focused on technical expertise. Most of the time...

The Big Difference Between Flows and Channels in Kotlin

Maybe you’ve heard Kotlin programmers say that “channels are hot, flows are cold.” It’s a useful distinction between two ways of working with an asynchronous data stream. Flows and channels are as different as functions and objects. But that’s not the whole story, be...

Graphic Design for Software Engineers and Architects

If you work in software engineering or within technology, you might have seen a diagram that looks like this: You might be the author of such a diagram and see nothing wrong. It’s all there — the services, arrows, some protocol information, etc. You understand it well because you ...

Slog: The Future Face of Go Logging?

Go 1.21 introduced structured logging to the standard library. A much-anticipated feature is now available within the familiar log package under the aptly named slog sub-package. This advancement employs key-value pairs to enable rapid parsing, filtering, and analysis of logs, ad...

From Monoliths To Microservices — And Beyond

The microservice architecture has reigned for many years. In its era, we’ve experienced the good, the bad, and the ugly. In this article, we’ll look at the lessons learned and explore new developments in the field of building future-proof applications. This won’t be a history le...

Fantastic closures and how to find them in React

This article is available in video format. Fewer details, but nice animations and voice instead of letters. Also, this article is part of the “Advanced React” book. If you like it, you might like the book as well  Table of content The problem JavaScript,...

Creating A Challenge To Learn Flutter

Imagine having access to data from over 300,000 books. You need to take action. And you need to do it right away! For instance, learning Flutter and developing an application using this data. In this article, I will discuss creating a challenge to learn a technology (Flutter) and share how I deve...

0. Philosophical Comp Sci Jargon

The current status quo for society and its many faces are simply weird. There now exist micro-variables that determine the state of the aggregate macro-structure. To focus on the state, the structure or the quanta is to shift focus from an entity to an observer. In classical and quantum physics, obs...

Building SaaS with DDD & Clean Architecture in Python — Issue 1

It's been a few weeks, and I decided to work on a SaaS application — I had a bunch of ideas for some time now and was looking to focus on a problem space worth solving. I chose Python as the programming language, as I felt a bit rusty — I have been a Node.js developer for a while ...

The Software Engineer as Tool-User

Engineers develop and use tools to make our work more efficient. Digging dirt with a stick is difficult — a shovel makes things go more quickly. If a large amount of dirt must be moved quickly, a more advanced tool can be employed, such as an excavator. Similarly, joining together two ...

What exactly did Kotlin learn from Java?

JetBrains, the genius folks who gave us IntelliJ IDEA, pulls back the curtain on Kotlin — a fresh-faced, eager programming language ready to take on the world. Fast-forward a decade, and this rookie has carved out a niche in the coding big leagues, securing a spot in the TIOBE Index&rs...

My Company Told Me They Don’t Care About Me by Buying Me a New Macbook Pro

The Secret Developer is an old, irrelevant person. They might claim to be a successful keyboard jockey but they’re a grumpy old stick in the mud. Worse still, they change their mind about the most important issues in computing. Isn’t this a personal attack? Is this allowed in c...

Breaking into Tech: An Entry-level Perspective

Job hunting for entry-level engineers in the current tech landscape can be incredibly challenging. It can feel like all the hard work you put into your degree and skill development is suddenly meaningless. Instead, you become just another resume in a sea of applicants. This situation is all too comm...

Java 21: So How Should We Construct Strings Now?

Java 21 brings in a lot of cool features, and one of them is the String Templates. While it serves more purposes than just classic String interpolation, for us Java developers, it’s yet another way to concatenate Strings in a “proper” way. What is proper, though? I pok...

Delegates and Events In C#

Delegates and Events in C# provide a way to define and execute callbacks using a publish-subscribe pattern. Using Delegates and Events is considered a best practice to uncouple our code. They offer security and type-safety. In this article, you will learn how to implement Delegates and Events throug...

20 Questions You Must Ask In Software Development

The last week, I published an article revisiting the twelve steps for better code from Joel Spolsky, co-creator of Slack and Trello. Although those steps were very significant twenty-three years ago, they were just a glimpse of the techniques that were still to come from Lean and Continuous Delivery...

Stop using nested ifs. Do this instead

A typical use case for nested ifs: you want to perform all sorts of checks on some data to make sure it’s valid before finally doing something useful with it. Don’t do this! : // JavaScript function sendMoney(account, amount) { if (account.balance > amount) { if (am...

Advanced Driver Assistance System(ADAS)- An Overview

Advanced Driver Assistance Systems (ADAS) are becoming one of the hallmarks of modern vehicles, offering a wide range of avant-garde features aimed at making your driving experience safer, more efficient and enjoyable. From automatic emergency braking to lane departure warning systems, ADAS technolo...

10 Trendsetting Apps in July 2023: Discover The Hottest New Tech

It’s that time of the month again, and we’re back with a curated selection of the 10 hottest apps in July 2023 — chosen by the Product Hunt community. From ingenious solutions that streamline your daily tasks and productivity to AI-powered...

Project Management 101: Back to Basics

In the calmer waters of late last year, the company I worked for started an initial effort to standardize how we do project management across different projects. This was less about creating rigid adamant boxes that every project should fit in, and more about finding patterns of good practices ...

Version Control: A Beginner’s Guide to Git and GitHub

Have you ever opened an app on your phone and received a prompt to update to a new version? These prompts most likely direct you towards an app store where you then download the latest version. As you download the new version, you might notice a new layout, button, or piece of functionality. In soft...

The main problem I face as a software developer

They just don’t wanna pay for changes and add-ons! What can I say? Without sounding like an angry dude. When people go to supermarkets, they know the rule. They take 10 items, they pay for 10 items. They want a 11th item, well, they pay for it. Duh, right? Not so, it seems, in softwar...

All about SPDX 3.0

SPDX is one of the three SBOM specifications recommended by NTIA/CISA. The SPDX team is working on a significant update — SPDX version 3.0, targeted for general availability this fall. SPDX 3.0 packs features that cover new SBOM use cases and simplify existing capabilities. ...

10 Microservice Patterns Software Engineers Should Know

Building scalable software requires a software engineer/architect to pick the right architecture especially when building enterprise software/applications. Monolithic architecture is usually the first choice in mind for most engineers because it is easy and does not have to deal with the distribu...

5 Minute DevOps: Perfect Never Ships

I created a T-shirt design and kept wearing it to work to rant at one of my teammates who kept polishing things instead of integrating his code with the rest of the team. CI means that code is integrating continuously, after all. The shirt had this code snippet. Before I created the shi...

Top 20 mobile apps which nobody knows about…

In the vast ocean of mobile applications, some remarkable gems often go unnoticed. While popular apps dominate the headlines, there are numerous lesser-known apps that offer unique features, creative solutions, and a refreshing experience. In this article, we’ll unveil 20 remarkable mobile app...

How you can leverage Topmate.io as a Technical Writer(Not Sponsored! :))

How Topmate.io Can Help You as a Freelancer or Tech Writer Topmate.io is a platform that connects tech writers with clients. It can be a great resource for freelancers and tech writers looking to learn from existing experts, land clients, and improve their skills. Learn from Existing Experts ...

Nine Rules for Running Rust on the Web and on Embedded

I recommend Rust when you want the speed of C++ and the memory-safety of Python. On top of that, with Rust you can build on more than 100,000 software libraries. In addition, Rust offers the potential of running your code not just on a conventional computer, but also inside a web page or even o...

The Guy with Conflicting Files

“The Guy with Conflicting Files”, that’s what they called me for two weeks in my first job as a software developer, all because I didn’t know about “Git.” Here’s what happened… If you’re a web developer, you know that Git is a version co...

Developing Scientific Software

In this article we will follow the tenets of TDD for developing Scientific Software as laid out in the first installment of this series to develop an edge detection filter known as the Sobel filter. In the first article, we talked about how important — and tricky — it can be...

The Best Status Page in 2023 is not Statuspage

Every SaaS company needs to create a status page at some point in its evolution. How do you decide between all the different vendors? Goal: identify the best status page for my mid-sized startup. Skydio’s cloud product lets you fly a drone from anywhere worldwide from a browser. As organ...

The 80% abstraction

Entropy is a universal law: everything tends toward disorder without reinvested energy. Software is no exception. When evolutionary development is constrained by time and/or budget, systems become “monolithic”. That’s often a euphemism for spaghetti of inconsistent abstraction...

Why gRPC is the future of software architecture

REST is architectural style which has been a de facto while designing large scale systems these days. REST idealogy disrupted the market around 15 years back replacing SOAP based architectures because of its high performance, lighter and flexible nature. Yes of course there are many more reason to i...

Mastering Test Case Creation: A Comprehensive Guide to Software Testing Optimization

Test cases are a critical part of the software testing process. Well-designed test cases help ensure that software is thoroughly tested and functions as expected. Here are some tips on how to write effective test cases: Understand the requirements The first step in writing good test cases ...

How to advance as Software Engineer. How to be a more Senior Software Engineer

I will try to share with you some career advice for programmers. I want to start straight away with a truth that we may not know. We have no idea in our industry what a good programmer looks like, which is a little bit alarming given we’re talking about career and growth, and that presumably i...

Leveraging Large Language Models in your Software Applications

How can you leverage the capabilities of Large Language Models (LLMs) within your software applications? You cannot simply create a thin application layer above an LLM API. Instead you need to design and build a number of components to ‘tame’ the underlying models and also to differen...

From Code To Cash: How To Make Money With Software

I’ve done several presentations at conferences and universities. Through these, I make a lot of very nice and interesting contacts. A young gentleman and fellow software engineer in his mid 20s, who had been in the audiences of one of my presentations, recently approached me. He came up with t...

Become a 10x Software Engineer with Bayesian Thinking

Bayesian thinking is extremely powerful when it comes to software engineering. At its core Bayes Theorem is a way of updating our beliefs about the world with new knowledge that we gain. Bayes’ Theorem is extremely powerful because it allows us to use the additional specific information we ...

Estimation Isn’t for Everyone

As an engineering manager, I once led a traditional Scrum team, living the mainstream Agile culture. We spent hours defining, refining, and estimating work so that we could feed it into our fine-tuned productivity machine. We were all veterans of Agile Scrum — so why did it seem like this mach...

A Software Developer’s Favorite 5 Drinks

This blog has exclusive and in-depth access to a crack software developer. The Secret Developer has been pulled away from their keyboard for a short discussion about what drinks keep the engine going in the engineer, the Dork in Dvorak. That one doesn’t even make sense...

Kotlin underrated feature of Distinct and DistinctBy

Recently I got to know about kotlin feature for removing duplicate from a list. Here is more detailed example of using the distinct and distinctBy methods in Kotlin to remove duplicates from a list: data class Item(val id: Int, val name: String) fun main() { val it...

Guide to Building Audit Logs for Application Software

It’s 2023 and audit logs are a core component of any enterprise product offering. As simple as they seem, audit logs can be tricky to implement. Having made this feature twice as part of my work at Infisical, I discuss everything about audit logging in this article and specifically how...

The 5 paid subscriptions I actually use in 2023 as a software engineer

I care a lot about the tools I use. Especially when they aren’t free. Some tools are too good to keep to myself. I have to share them! Here’s what I’ve spent my money on in 2022–23 that has genuinely improved my life as a software engineer. Please note: None o...

MetaGPT Lets You Create Your Own Virtual Software Company from Scratch

MetaGPT, available on Github (crossed 13,000 stars), aims to change the way we make software. This exciting tool can take a single line of what you want to do and turn it into many things like user stories, an analysis of the competition, requirements, data structures, APIs, and documents. Me...

How I Became a Full Stack Software Developer in 7 Months (Self-taught)

Let’s be realistic here. Becoming a full stack developer in less than 3 or 4 months is nearly impossible. Maybe there would be only about 1% of people who would have achieved it but for the rest of 99%, that doesn’t happen. I quit my job as a Content Writer in 2021 and started prep...

Why You Should Give a Damn About Software Design

There are 2 things that make software engineering suck. Bad team culture, and technical debt due to poor design. I couldn’t tell you how many personal projects I’ve abandoned due to not understanding my code and how frustrating it is working with a massive cluster of WET code all over th...

KICKSTART YOUR LARAVEL JOURNEY!!

Hello Ladies and Gentlemen, it’s time to setup our environment and start building beautiful websites using Laravel. To run Laravel on your local machine, you’ll be needing the following software/tools, XAMPP (Version > 8.1) Since Laravel is a PHP framework, you need a PHP int...

A comprehensive overview of computer networking basics

In this blog, we will learn about computer networking basics, starting from the definition of a computer network. We’ll then look at the major elements that form a computer network before finally the different devices that are used for creating an actual network. What is a computer network?...

From Harvard’s CS50 to Microverse: A Passionate Journey in Software Development

In the realm of technology, where innovation and creativity converge, there exist stories of transformation and passion that inspire us to reach for the stars. My story, is one such tale of relentless dedication and the unwavering pursuit of a dream. It is a story that reaffirms the age-old wisdom t...

Sprints: The biggest mistake of Software Engineering

Yes, let’s talk a little about being agile and the Brazilian definition of the current state agile generated called “eXtreme Go Horse” methodology. The misconceptions The first thing is to get the common misconceptions out of the way. Agile is going fast By now, we all ...

Why Learning to Rest Is the Key to Successful Software Development

I recently attended an internal presentation titled “Deciding What to Learn,” which explored the various ways software engineers can keep up with the constantly changing world of tech. Towards the end of the presentation, the speaker emphasized that knowledge isn’t the only factor ...

No, you shouldn’t measure software engineers — but you should help them adopt best practices

McKinsey recently published an article titled “Yes, you can measure software developer productivity” to collective gasps of horror within the industry. My own reaction was also visceral. I’ve seen the endgame of this and it’s not pretty. However, the paper answers a very real...

Getting Out of Software Development? These 4 Destinations Are Waiting for You

There are two different types of developers: Those who love programming Those who work in programming for the money Speak for yourself. I’m in it because I need an excuse to laugh at those with dvorak keyboards. Whichever camp you fall into it is likely one day you will exi...

In defense of better software designs.

If you use software for daily tasks, build products for clients, or design software for a living, you may think it obvious that users should be at the center of software design. But are they truly? Think of any common software or digital product you have used recently — were you frustrated wit...

Deduplicating software bugs with Machine Learning at Google

I’ve been working at Google for about three and a half years. Back in 2021, we were facing a little problem. A team we were working with had too many duplicate bugs. How did they get in this situation? Well, Google runs automated tests. Thousands of them. Millions of them. Some run autom...

How to create interactive zoomable software architecture diagrams

Tl;dr When using abstractions to communicate software architectures, it’s important to choose the right terminology and level of detail based on the audience. The C4 model provides common abstractions with a hierarchical structure that allows diagrams to be tailored to the au...

Unify Data Layer at Software Projects

Hello, Let’s start our article with some questions. … How many models (Holding data only without any logic) at your main working project right now? 100 or 1000 or 10000 or even 100000? Is the same quantity of models at other platf...

Process that Empowers

At one point in my career, I joined a company with a lot of process in place. There were document templates for any kind of proposal you could create and spreadsheets to track progress all activities. Hiring, onboarding, strategic planning, project planning, software acceptance, sprint reviews, you ...

4 Best Practices to Ensure Code Quality

Code quality is one of the most important aspects of software development. It affects not only the performance and reliability of the software, but also the productivity and satisfaction of the developers. In this blog post, I will share some tips on how to improve code quality using four practices:...

7 AI Tools Every Software Developer Needs to Know [2023]

Until very recently, the shift to AI in our lives as devs has been gradual. Now, the creep is ready to become more of a rush. Software developers who aren’t adopting now risk being left behind. 70% of organisations are looking to adopt, or have already done so — so we have t...

How to write better code — follow the interface

If each component is manufacturered and measured according to a standard specs, it can be swapped with other standard-component components. Interface Stability benefits both the programmer and the Operating System Provider. example: open system call Your work as a programmer is simplifie...

The Best C Alternative Is Zig

The C programming language is the creator of every modern software system component. Every operating system offers pre-included C headers to access system APIs. Developers made web servers, databases, operating systems, frameworks, programming languages, cloud components, and numerous software compo...

Autonomous Mobility: A Comprehensive Overview of Hardware and Software Components

Autonomous mobility is the future of transportation, and it involves the use of self-driving vehicles that can navigate roads and highways without human intervention. The technology behind autonomous mobility is complex, and it involves a combination of hardware and software components that work tog...

Deduplicating software bugs with Machine Learning at Google

I’ve been working at Google for about three and a half years. Back in 2021, we were facing a little problem. A team we were working with had too many duplicate bugs. How did they get in this situation? Well, Google runs automated tests. Thousands of them. Millions of them. Some run autom...

The Architect’s Blueprint: Understanding Software Styles and Patterns with Cheatsheet

Insoftware development, architecture plays a crucial role in shaping the structure and behavior of software systems. It provides a blueprint for system design, detailing how components interact with each other to deliver specific functionality. However, with the vast array of architectural styles an...

Shift Left Testing: Revolutionizing Quality Assurance In Software Development

Shift Left Testing is a crucial, ongoing and ever-evolving trend in the software development space. It is, fundamentally, about pushing testing earlier in the software development life cycle, testing early and often, and improving a software product’s quality through better planning and p...

7 Lessons Learned From My Software Engineering Mentor

On June 22nd, 2021, I had the privilege of interviewing at Manaky, an innovative tourism startup in Pakistan. It was a significant day in my life as it introduced me to my mentor, Touseef Liaqat. I think the interview was scheduled for 11 PM, which added to my nervousness. As a freshie looking ...

DRI#3 Thoughts about Software Engineer Career Path

Today is September 4, 2023. Today’s “Daily Reading & Insight” I would like to share about our career path as a Software Engineer. As a software engineer, to most of our employers, that our job is to connecting all piece of data input scattered in every places, build some log...

Silo

The science fiction series Silo on Apple TV+ is an adaptation of Hugh Howey’s series of Wool books. While the enemy in the series is a shadowy government that hides secrets, Season 1, Episode 3 of the series featured something frightening to many softwar...

3 Powerful JavaScript Methods You Probably Didn’t Know About

Traditionally in JavaScript, an object has it's own properties and methods/functions limited to it, ie an object cannot access another object's methods and vice versa. But with the use of the three functions I'll be sharing today, we can bypass this restrictions. These functions allows u...

Software development is more than just coding

Growing in your career isn’t about writing more code. In fact, you’ll probably write less code as you gain seniority. For newer developers, it’s hard to imagine how you could grow your output beyond just coding more. So, what are senior developers working on when they’re n...

All started with a romance book

I guess most people get interested in programming after hearing about it in a video or podcast or maybe after attending a class or a lecture that mentioned it. My journey was a little bit unusual… I decided to pursue a technology career after reading a romance novel. When I was about to gr...

The Beginning Of The End

As you move carefully up the ranks on the board of the Grand Game of Software Engineering it’s a constant struggle to not only keep in mind your end goal, but also to fend off the nefarious and often subtle attacks of the opposing pieces on the board. For example, I’ve written previou...

Oncall — A Nightmare or Golden Opportunity

In the software engineering domain, on-call has always been one of the most dreaded weeks. The constant pressure of late-night pages or a sudden outage where you could have no idea what to do seems daunting to process. I started working as a Software Engineer in 2017. That is when I came across t...

I’m a Software Engineer but financially independent :)

Are you a software engineer working diligently in a company? Chances are you’ve had that nagging thought at least once: “Why should I rely solely on my monthly salary?” If that notion has ever crossed your mind, this article aims to illuminate your path towards financial independen...

Reliable software engineering with Rust

We all want to build reliable software that makes users happy and keeps our heads free from late-night production crashes on Fridays. But every engineer already knows some stack that can handle the users’ needs while tests can check the correctness, so why would anyone bother learning Rust? ...

Do You Need to Be a Math Whiz to Become a Software Engineer?

Do you have a knack for logic and solving complicated problems but mistrust your mathematics abilities? If so, you may be shocked to find that you do not need to be a math whiz to become a good software engineer. While a solid foundation in mathematics is vital, software engineering is primarily foc...

Unlocking the Power of Feature Flags in Modern Software Development

In the fast-paced world of software development, delivering high-quality features to users while maintaining stability is a constant challenge. This challenge is where feature flags, also known as feature toggles or feature switches, come into play. Feature flags have become a cornerstone of modern ...

What is Cinemachine and Timeline

Cinemachine is the cameras. It’s the camera from the characters’ view or, say, if you are creating a retro style survival horror with fixed camera angles, it’s those cameras. It’s any cameras that reside within the scene. This includes cutscenes and it can have certain m...

2+2=4: The Misconception of Story Point Estimation

Story point estimation is widely used in agile software development. With their numeric nature, story points are commonly summed up to determine the efforts that teams deliver in their sprints. In this article, I am going to talk about why estimating sprint efforts with story points is a major...

Why We Over-Engineer Software (and How to Break the Habit)

With ready access to public cloud computing, container orchestrators, and microservices architecture, it has become trivial to create distributed systems of nearly limitless scale and complexity. While all of these tools have their purpose, it’s important for engineers to carefully consider wh...

Are We Making Lambda Too Hard

You may or may not know that I run a weekly serverless newsletter. The newsletter compiles the best serverless content every week and gives a summary with my thoughts. I love doing it — it’s a great way to stay up to date on all the new feature releases and keep up with trending ...

Why I Will Never Use Alpine Linux Ever Again

Nowadays, Alpine Linux is one of the most popular options for container base images. Many people (maybe including you) use it for anything and everything. Some people use it because of its small size, some because of habit, and some, just because they copy-pasted a Dockefile from some tuto...

All Software Estimates are Lies

You might expect me to follow that up with some pithy reversal, like George Box’s famous quote about models, but are estimates useful? That’s the question we’ll be digging into here. Software Development is Research Do pharmaceutical companies ask researchers to pro...

A Wake-up call (or a rant from an underperforming Software Engineer)

Have you ever feel like you wasted the better years of your youth chasing clouds and resting on your laurels as money coming from your software developer job keeps flowing into your pockets? I work for a software consulting firm as a remote-based Junior .NET Software Engineer. Salary is good, wor...

Empowered Teams Work. They Really Do

What does it mean to be an empowered team? An empowered team owns a well-defined slice of product, whatever that may be in the context of their wider organization, and is ultimately responsible for its success or failure. They have the final say over what they create and how they create...

It’s Not You, It’s Me: Improving the Quality of Deliverables Through an Effective Code Review

Software development is not getting simpler. Nowadays any application seems that needs to be cloud-based, event-driven, and provide high levels of scalability and fault-tolerant. The consequence of this scenario is that the code review stage of your development lifecycle becomes increasingly more...

How to Be a Coding Superhero

Which is why every tech firm needs a coding superhero. Someone to clear the codebase of mistakes others can’t see. A super-human developer who works for the good of all, to make the implementation and maintenance of new features accessible in 2023. This article asks the question. Are y...

On a great interview question

Between 2010 and 2019 I interviewed dozens of Software Engineer candidates at Google. Almost always I asked the same interview question. Moreover, this question happened to be on the banned list at Google, because it was publicly available on Glassdoor and other interview websites, but I continued t...

Software Engineering Principles Your Team Must Adopt

Like sculptors, artists, potters, and other artisans, software engineers must follow specific guidelines to build the best product. Although each project will demand a unique approach, following software engineering principles will cut unforeseen delays, set the right team culture, and hel...

Why Human Programmers Hate Testing But AIs Love It

In my opinion, the best use for AI-powered programming tools like GitHub Copilot is writing automated software tests. Today, we’ll explore why AI should handle unit & end-to-end (e2e) testing, so developers can focus on crafting accessible, stunning user experiences. First, we’...

Processing/Equipment Engineer to Software RD

People seek change while they do not feel good/right about their current state. Maybe it’s good enough for their others, but definitely not for the changing ones. While I was in University, my major is Biomedical Engineer and Environmental Science. That major seems kind of fancy right? Well, ...

TECH IS THE RIGHT FIT FOR ANYONE

There’s a gap within everyone, a hole that can only be filled with purpose, and as long as we can keep searching for that fit, that hole always finds its fill. And yes, there would be many obstacles that would hold many down, but not those who persevered towards greatness. Dorcas Abang, tho...

Highest Paying Programming Languages for Software Engineers

Which programming language should I learn? That’s the most common question for aspiring software engineers, and the answer is always: It depends on your preferences and what you want to build. But perhaps you want to take another route and learn the language companies pay you the most fo...

A Visual Guide to Sed

While sd is a better alternative these days, learning sed has some advantages: It’s a standard UNIX tool, available everywhere. It shares syntax with vim’s command-mode. sed is based. However, mastering sed takes some time —&nb...

MetaGPT Lets You Create Your Own Virtual Software Company from Scratch

MetaGPT, available on Github (crossed 13,000 stars), aims to change the way we make software. This exciting tool can take a single line of what you want to do and turn it into many things like user stories, an analysis of the competition, requirements, data structures, APIs, and documents. Me...

The Real Obstacles I Faced to Become a Software Engineer (It Wasn’t My Gender)

How did you discover the job that you do now? For those Software Engineers out there: when did you know that programming was what you wanted to do? When did you first write some code? I studied computer science at university, but it took some luck, trial and error to find out that this is what...

Advice From a Software Engineer With 8 Years of Experience

My name is Benoit. I have been a software engineer for the past eight and a half years. I stayed at my previous (and first) company for seven and a half years, then I joined a new one in early 2022. This article comes from a recent self-reflection on the things I wish I had started doing earlier ...

How AI is Challenging Traditional Software Development

For anyone who knows me well, you’ll most likely realize that I have an unhealthy obsession with LEGO for an adult. There’s something very satisfying about using small building blocks to create something bigger, whether you’re following preset instructions or taking the time to pla...

Interesting Content in AI, Software, Business, and Tech- 9/6/2023

A lot of people reach out to me for reading recommendations. I figured I’d start sharing whatever AI Papers/Publications, interesting books, videos, etc I came across each week. Some will be technical, others not really. I will add whatever content I found really informative (and I remembered ...

No, you shouldn’t measure software engineers — but you should help them adopt best practices

McKinsey recently published an article titled “Yes, you can measure software developer productivity” to collective gasps of horror within the industry. My own reaction was also visceral. I’ve seen the endgame of this and it’s not pretty. However, the paper answers a very real...

An Ode to Software Engineers

We spend our days staring into screens, or sometimes into nothingness trying to understand a problem we’re trying to solve. We also spend our days trying to convince other humans that the problems we’re solving are hard and that we need computers to solve them for us. Worse, once we&rsqu...

From Code To Cash: How To Make Money With Software

I’ve done several presentations at conferences and universities. Through these, I make a lot of very nice and interesting contacts. A young gentleman and fellow software engineer in his mid 20s, who had been in the audiences of one of my presentations, recently approached me. He came up with t...

How I developed a trading system as a software engineer with no formal finance background

Over the last six years, I taught myself the ins and outs of trading and built a fully autonomous system that’s now managing several hundred thousand USD in assets. In this article, I want to share my journey with you. I’ll discuss the challenges I faced as a software engineer with no fi...

Career Planning as an Individual Contributor Software Engineer

As a Principal Software Engineer, I get to see a lot of folks joining the industry and trying to find their footing to climb the software engineering career ladder. Some people have a very clear idea of what they want from their careers and some have no idea what the next levels look like – or...

Software development is more than just coding

In fact, you’ll probably write less code as you gain seniority. For newer developers, it’s hard to imagine how you could grow your output beyond just coding more. So, what are senior developers working on when they’re not coding? Architecting & simplifying user requiremen...

No, you shouldn’t measure software engineers — but you should help them adopt best practices

McKinsey recently published an article titled “Yes, you can measure software developer productivity” to collective gasps of horror within the industry. My own reaction was also visceral. I’ve seen the endgame of this and it’s not pretty. However, the paper answers a very real...

7 AI Tools Every Software Developer Needs to Know [2023]

Until very recently, the shift to AI in our lives as devs has been gradual. Now, the creep is ready to become more of a rush. Software developers who aren’t adopting now risk being left behind. 70% of organisations are looking to adopt, or have already done so — so we have t...

To Be A Great Software Developer — You Need a System

Software Engineers are expected to churn out work quickly in this fast-paced development world. And let’s be frank. There is a lot of competition out there these days. We have to make ourselves stand out. One way to do that is to churn out high-quality work. One way to consistently produ...

An Ode to Software Engineers

We are an odd bunch. We spend our days staring into screens, or sometimes into nothingness trying to understand a problem we’re trying to solve. We also spend our days trying to convince other humans that the problems we’re solving are hard and that we need computers to solve them for...

Chaos and Order in Software Development

In this post, I want to share one of the most important ideas I heard in the last few years — that most companies are too well-run. Photo by Sergey Pesterev on Unsplash Chaos, Order, and Productivity The original formulation of the idea comes from Jim Keller&nb...

20 Steps Test for Better Software Development

The last week, I published an article revisiting the twelve steps for better code from Joel Spolsky, co-creator of Slack and Trello. Although those steps were very significant twenty-three years ago, they were just a glimpse of the techniques that were still to come from Lean and Continuous Delivery...

Things I value in a Software Engineer

While it’s true that sharp technical skill is in high demand, there are other things that I appreciate which are in equally high demand. If you possess even half of these then consider yourself ahead of at least 80% of your peers. Feel free to add these to how you approach interviews! 1. Yo...

How To Motivate A Software Engineer

It’s so tiresome, and increasingly irritating, to encounter those three infamous words “Total Compensation Package” when you’re looking at job specifications or, even worse, during a “1–1” with the automatons in your own HR department when at a performance r...

My personal favorite Dilbert strips on Software Quality

So, I’ve always enjoyed reading Dilbert comic strips which have been around for a long time, came across these initially on Linkedin many years back, and as an engineer working in IT, do feel that some of his comic strips plots, scenarios, and punch lines are spot on to portray and satirize te...

Weekly Overview of the Bundle For Ukraine Page 25: Puzzles and Software Every‘ware’

Holy software update. Page 25 decided that it didn’t want to change from the previous page, and is an identical spread of 9/21. That’s a bit unsettling on its own, until you realize that there are also no duplicates as well to add to the stress. There was also a very strange pattern h...

Weekly Overview of the Bundle For Ukraine Page 25: Puzzles and Software Every‘ware’

Holy software update. Page 25 decided that it didn’t want to change from the previous page, and is an identical spread of 9/21. That’s a bit unsettling on its own, until you realize that there are also no duplicates as well to add to the stress. There was also a very strange pattern h...

Docker — Streamlining Software Development and Deployment

Docker is a platform that allows you to create, run, and manage applications using containers. Containers are isolated units that package the code, dependencies, and configuration of an application. Containers can run consistently across different environments, such as local machines, cloud servers,...

Top DevOps Tools for 2024: Essential Software for Streamlined Software Development

Having spent more than 16 years in the tech industry, I’ve learned that having the right tools is crucial. In this guide, I’ll show you the essential DevOps tools you need. Whether you’re a seasoned pro or just starting your DevOps journey, these tools will simplify your work an...

Top DevOps Tools for 2024: Essential Software for Streamlined Software Development

Having spent more than 16 years in the tech industry, I’ve learned that having the right tools is crucial. In this guide, I’ll show you the essential DevOps tools you need. Whether you’re a seasoned pro or just starting your DevOps journey, these tools will simplify your work an...

Writing Server Software With Go

I’ve written a variety of different server software products. Both commercial as well as Open Source. Some of the examples you can find in my Github repositories. Before we dive in, you might rightfully ask: What do you mean by “server software”? Server software refers to...

MacOS software development tools

I cover the different tools I use on MacOS to facilitate and speed up my work as a software developer. Terminal I use iTerm2 as my terminal. It allows me to split my screen into multiple parts when I need to monitor multiple processes on a single screen. CMD+D and CMD+...

My first three months at Glovo as a Junior Software Engineer

Hi, I’m Javier Rodríguez and I joined Glovo as a Junior Software Engineer this July. I’m part of the logistics cluster, helping to improve the app for the couriers. These past few months have been productive, fulfilling, and enjoyable, and I would like to tell you about my experie...

Your ticket to Berlin as a Software Engineer — Part 2

Tech interviews in Berlin usually consist of 3–4 rounds of interviews including the first “chat” with the recruiter. Mind that, “chat” with the recruiter is actually an interview. The first round of interviews The initial chat with the prospective employer’s...

Software Testing: 6 best practices that small companies implement and 2 that they do not

A vast amount of physical and online literature preaches the benefits of adopting and implementing a comprehensive testing approach to any software development process, but incorporating a thorough testing strategy to a small or medium-sized company may present obstacles that are not easy to overcom...

What is the Main Purpose of Software Development?

Under the general phrase “software development,” which refers to a variety of computer science operations, are the processes of developing, designing, deploying, and supporting software. A computer receives its instructions from software, which is a collection of programs or instructi...

All of a Sudden, Software People are Worried About the Dangers of Automation. Go Figure.

Last week, I had the pleasure of representing Futurice on a panel talking about “The Future of Work” in the context of a Finnish business event. I’ve been working in software for 20 years, in all kinds of different contexts — start up, corporate, and consulting. ...

Our Investment in HyperComply: Building The B2B Trust Layer For Software Companies

Early in my career, I spent time as a Sales Engineer, working for a software company that was selling a cloud solution to the enterprise. Before any sale could be complete, we would have to complete a security audit and fill out an extensive questionnaire to satisfy the buyer’s procurement, le...

Why Making 150k-200k in Data Science or Software Engineering Does Not Make You Successful

I am very familiar with the corporate structure both from working in Fortune 500 companies and from working outside corporate, thus understanding it from both sides. Nowadays large corporations pay a starting salary of 100k+ to a new/raw data scientist, data engineer, or software engineer. After ...

Empowering Real Estate Dynamics with Blockchain-Enabled Property Management Software

The real estate industry is undergoing a profound transformation propelled by the integration of Blockchain technology. Its impact has been monumental, driving businesses worldwide to adopt Blockchain solutions for real estate growth. According to reports, the global Blockchain in real estate market...

Our 2023 H2 software engineers are graduating!

Hardest part of building your project: Integrating features like favoriting/unfavoriting books and managing review edits across different sections of the project was the most challenging part. It was crucial to ensure that data was updated accurately and consistently in real-time, without disru...

How to Build a Software Engineering Culture Where Everyone Can Thrive

Bad software engineering culture is inefficient — in addition to pushing out the 75% of humans who couldn’t ever fit the techbro stereotype, thus making the industry artificially less competitive — bad software engineering culture is also often a culture where only a few dominant e...

Women in Software Awards 2023: Meet the judges

2023 marks 5 years of the Women in Software Awards and with just one week remaining until nominations close, it’s time to seize the moment and nominate yourself, colleagues, or friends for one of this years categories. The awards celebrate women and allies taking action to improve gender repre...

AI in software development: IP challenges for investors

The modern wave of AI is reshaping various industries and software development is at the forefront. Innovations like GitHub Copilot and cutting-edge language models are transforming how we code and perceive software creation. But with all transformative innovations, challenges arise. Drawi...

How to Develop and Integrate Route Optimization Into a Software Product

Every project in the fast-paced arena of software development is a unique adventure full of challenges and victories, learning and growth. At Django Stars, I worked on innovative projects across various industries. However, the realm of logistics holds a special allure. The supply chain industry ...

Novel software aids in the fight against cancer with BioDynaMo

Originating from the CERN openlab inside the CERN IT division, BioDynaMo is a cutting-edge instrument for "in silico" testing, or computer-based experimentation. It develops and executes intricate 3D computer simulations based on mathematical models to better understand the course of cance...

History’s Deadliest Software Error

The Therac-25, a linear accelerator designed for cancer treatment, promised a new era in medical technology. Developed by Atomic Energy of Canada Limited (AECL) in 1976, it aimed to deliver precise radiation doses to tumors, minimizing damage to surrounding healthy tissue. Unlike its pr...

Free Image Analysis Software Tools For Microscopy

Image analysis, also known as image processing, is a dynamic field within computer science and engineering that focuses on extracting meaningful data from digital images. Employing various methods and algorithms, image analysis plays a crucial role in diverse fields such as computer vision, rem...

The Multilingual Software Engineer: Why “Bonjour, World” Beats Just “Hello, World”

“Hello, World!” Ah, the sweet, comforting phrase that has held the hands of novice coders as they took their first trembling steps into the world of software engineering. But have you ever paused to wonder, what if it was “Hallo, Welt!” or “Bonjour, Monde!” instea...

HOW DEALERSHIPS CAN GET THE MOST OUT OF THEIR MARKETING & ADVERTISING

The average automotive customer starts their shopping experience online. It starts with searching for vehicle dealerships in their location, looking over different makes and models, and narrowing down their decision. Once they feel comfortable, they move forward by calling a dealership or, in most c...