The Real True Programmer

Going through life we learn there is always a correct way of doing things, despite if other ways produce the same result, and even they are faster.
The same is for belonging to a certain group – there are rules to follow, even if not following them would benefit the group (and other groups) greatly.

In this article we will focus on what it takes to be a True Programmer (Real Programmer), the one and only ideal, to be accepted in the glorious programmers’ community.

Read more The Real True Programmer

Are developers like instrument players?

HoM&M Concert thoughts

Recently I have been at a Heroes Orchestra concert in Warshaw, a group that is playing Heroes of Might and Magic music mostly (check out their YouTube).

While waiting for the concert to begin, I was observing the preparations being made on the stage.
And thinking: how does it compare to software development?

Read more Are developers like instrument players?

Concurrecy. Are you an optimist?

Conquering concurrency one at a time

In this short article I will not be touching any asynchronous code or concepts. It will also be not about eventual consistency.

There are specific situations when we may have problems with the other type of concurrency, and the biggest problem is discovering the possibility that the system allows for data to be overwritten without end user’s intentions.
The solution is easy.

Read more Concurrecy. Are you an optimist?

It is not a bug! It’s a bugfix!

And not a feature

How can something not be a defect in the system, and still be an unquestionable bug from the business side?

It happens often, missing a key functionality not allowing a business process to be completed but a low priority from a developer’s perspective.

But how often a bugfix becomes a bug itself, while not introducing any issues with the fix?

Imagine one situation that is freely based on some past project…

Read more It is not a bug! It’s a bugfix!

On design: A short story of an unique date

(and how we broke the Gmail)

A simple assumption. An action is performed at a given time, so it can be a unique value used for sorting by date. Right?

Gmail developers thought that way, and it seems they were not entirely correct.

On one of the cold nights of the Autumn 2016…

Read more On design: A short story of an unique date

Art of system integration

System integration reviewed

The system integration tips presented here are to achieve data integrity, performance, quality, cooperation, and finally fewer support issues.

Tips are based on an integration with web service communication and data transfer between at least two parties.

If you prefer bullet-point version of best practices, scroll down this page.

Read more Art of system integration

Web services in .NET – big picture

Web services

In this technical article, I will present the full picture of web services, basing on WCF technology over HTTP using IIS when going into details. Both beginners and experienced developers may use this article as a checklist of things they already know or want to learn.

By the full picture I mean from a need to have a web service, choosing web service type, correct configuration (e.g. security), deployment environment, to testing tools. I assume you have already created your “Hello web service” application, or just want to have a closer look at the topic.

Read more Web services in .NET – big picture

Getting into complex / legacy projects quickly

Legacy project – I have no idea what I am doing

Have you recently started a job at a new software company or changed a project? Maybe even after two years the legacy app you maintain still makes no sense to you? This article presents tips on how to get into complex projects quickly.

Read more Getting into complex / legacy projects quickly

New item – Resources

Just a small update – I have added a Resources page which I will update from time to time. That page contains the books and sites I recommend, so I am going give some time new “candidates” before I update my list.

I was thinking about adding tools and add-ons as well but they become outdated after a year or two, so I will most likely focus on main Resource categories and do not update Tools often.

RESOURCES PAGE

Searching at a warp speed

Searching is a speed

All information about a programming language or a project can’t be stored in one’s head.
By searching, a developer can expand his virtual memory onto anything he can search well.

Quick finding is helpful when developing, and priceless when debugging a critical error from production.

Let’s get started to practices around searching.

Read more Searching at a warp speed

Codex: Leaving a job

Leaving a job

Even as developers, we can find ourselves in bad workplaces. Too much or not enough processes, spaghetti unmaintainable codebase, over-engineered solutions, lack of automated testing, poor planning, old technologies, long manual builds, to name a few.

The most popular solution to all these problems is a job change.
We want improved companies, but do we at least try to improve them? Why we do not change current jobs to be a new, better ones?

Read more Codex: Leaving a job

On design: E-mail is unreliable

E-mail is unreliable

Having worked on various projects where e-mails were used I came to this exact conclusion. E-mail is unreliable, as a medium.
It is not obvious while coding it happily, but certainly gets painful after doing maintenance over an application for a prolonged period of time.

“I’ve sent an e-mail and now it’s not my problem” attitude, assumption that an external component always works, will bring trouble to the final product.

Let’s look at using e-mail in the app-wide, business-wide perspective.

Read more On design: E-mail is unreliable

Productivity – foundations

Productivity

Always on-time, more at the same time, quicker, under control, planned, delivered. Productivity topics should be important not only for developers but for their bosses and clients as well. Being productive outside of a programming world won’t hurt either.

Below are general points about productivity explained from a developer’s standpoint.

Read more Productivity – foundations

Welcome to my blog

Is this blog for you?

The closer to software development the better. While some posts may be technology-specific (.NET world), most are not going to be. You will be exposed to architecture and productivity topics. Other than these two, software development in general will be the best description of other content.

Architecture – by architecture I mean how everything will work together in general, design and business considerations.

Productivity – by productivity I mean doing certain tasks faster (smarter), having workshop-improving practices, also achieving your goals. Shipping.

Software development in general – interesting stories from past projects, workplace and company organizational topics.

Read more Welcome to my blog