The assembly must be clean
Jan 24, 2025
in •
JAVA
java
warnings
code
need
fix
example
3 min read
Have you ever seen a list of compiler warnings the size of an essay on how not to write code and thought: “Of course, something needs to be done about this… but I just don’t have time for it right now”? And conversely, have you ever seen a single warning appear during compilation and immediately fix it?
When I start a new project from scratch, there are no warnings, no mess, no problems. But as the codebase grows, if no measures are taken, it’s likely that the mess, clutter, warnings, and issues will gradually accumulate. In a large stream of “noise,” it becomes significantly harder to find a truly important warning among the hundreds of others that I am not interested in.
To make warnings useful again, I try to adhere to a policy of zero tolerance for warnings during assembly.
...
➦ Automate your code formatting standard
Jan 17, 2025
new year
standards
code
standard
project
tools
anti-patterns
3 min read
You probably went through this too. At the beginning of the project, everyone has plenty of good intentions – let’s call them “new project promises.” Similar to New Year’s resolutions that people make for themselves: to exercise, quit smoking, etc. Quite often, many of these promises are documented. Promises related to code make it into the project’s code formatting standards. At the first project meeting, the lead developer announces this document, and ideally, everyone agrees to diligently follow the proposed requirements. However, as the project progresses, all these good intentions are forgotten one by one. When the project is finally completed, the code looks quite tangled, and it seems that no one understands how it ended up that way.
When did it all go wrong?
...
➦ Keep everything in version control
Jan 15, 2025
store
subversion
git
mercurial
cvs
life
version
project
code
repository
system
3 min read
Store everything related to any of your projects in a version control system. The necessary resources are already available: free tools like Subversion, Git, Mercurial, and CVS, ample disk space, cheap and powerful servers, ubiquitous Internet access, and even project hosting services. Once you have installed the version control system, saving your work in the repository is very simple: just execute the corresponding command in the clean directory with the code. And you only need to master two new basic operations: committing (commit) changes you made in the code to the repository, and updating (update) your working version of the project to the one in the repository.
Once the project is placed in the version control system, you can easily view its history, find out who wrote each piece of code, and refer to a specific version of a file or project using a unique identifier.
...
➦ Communication is the king, clarity and leadership are its loyal servants
Jan 12, 2025
in •
INDIA
india
visio
act
developers
software
clarity
project
leadership
3 min read
Psychology in IT manifests in everything. Every person has their own base tendencies to dominate. Remember that famous experiment where a group of people was divided into prisoners and guards? Or India with its castes? Well, IT is just like India.
Too often, software architects dwell in ivory towers, sending down specifications to developers and imposing technologies and directions on them. This often leads to conflicts, which are quickly followed by a “popular uprising.” As a result, a software product emerges that has nothing to do with the original requirements. Every software architect should be able to explain the goals and objectives of the software project to their colleagues. The keys to effective communication are clarity and leadership.
Clarity characterizes the communication process. No one in your group will become read a 100-page document justifying your architectural decisions.
...
➦ To do something hastily and run away is a crime
Jan 11, 2025
john
run
time
tests
code
work
3 min read
It’s getting close to evening. The team is diligently working on the new functionality planned for the current iteration; it seems even the air in the room is pulsing with the rhythm of work. However, John is a bit in a hurry: he has a date waiting for him. However, he manages to finish writing his part of the code, compiles it, registers it in the version control system – and hastily leaves. A few minutes later, the “red light” comes on: the application build is broken. John didn’t have time for automated tests, so he went with the “hack and run” principle, which caused the entire team’s work to come to a halt.
The situation has changed – the work rhythm has been disrupted.
...
➦ Comment only on what the code not say
Jan 07, 2025
computing mcgraw-hill
kernighan
plauger
brake
code
comments
comment
programmers
blocks
3 min read
The discrepancy between theory and practice is greater in practice than in theory. This observation definitely applies to comments. In theory, the general idea of commenting code looks commendable: to give colleagues a detailed explanation of what is happening. What could be more useful than providing useful information? But in practice, comments often do more harm than good. Like any form of writing, writing comments requires skill. This skill largely involves understanding when not to write comments.
If the code is written with syntax errors, compilers, interpreters, and other development tools will definitely object. If the code is functionally incorrect, most of the errors will be identified through review, static analysis, testing, and real-world deployment in a commercial enterprise. And what about comments? In the book “The Elements of Programming Style” (Computing McGraw-Hill), Kernighan and Plauger note that “a wrong comment has zero or negative value.
...
➦ Enterprise interview
Dec 27, 2024
in •
BPMN
•
CANADIAN
•
CARLEONE
•
DFD
•
GITHUB
•
GOOGLE
•
LACK
•
NAC
•
PR
•
PYTHON
•
RECRUITING
•
SKYTRAIN
•
SURE
•
USECASE
•
UTC
recruiter
google
skytrain
friday
utc
monday
calendar
code
screening
time
hour
sparkling
python
github
ram
b.
architecture
system
bpmn
kafka
it
facebook
don carleone
middle
undoubtedly
june
july
linux
udemy
advice
stay
quater
interview
interviews
10 min read
I would want to share some insights from my recent return to interviewing. This episode covers employment process design and screening in large organizations.
Examining Tech-screening then takes off like wildfire. The recruiter checks in with Sparkling and asks a ton of questions during the first call. As an example:
-How is it possible to halt the container? The original data types in Python? What is the PID of the Linux kernel? How are PACELC and CAP understood?
-… Some even go so far as to use tiny executable pieces of code to create an entire platform. Twenty queries in twenty minutes. “How do I send a message to the generator?” Or even “What does this code do?” He knows that the code is so strange that I wouldn’t just ignore it in a review.
...
➦ Stand up!
Dec 26, 2024
eye
communication
standing
effectiveness
attention
architect
2 min read
For many of us, a career as an architect began with some purely technical position where success was primarily determined by the ability to communicate with computers. However, in the role of an architect, we primarily have to communicate with other people. Whether you discuss the advantages of a particular template with developers or explain to management the pros and cons of purchasing middleware, the key to success lies in your communication skills.
Objectively measuring the degree of an architect’s influence on a project is quite difficult, but one thing is clear: if developers constantly ignore the architect’s instructions and management does not pay attention to his recommendations, the “correctness” of the architect’s actions will not affect the development of his career in any way.
...
➦ Before blaming others, check your own code
Dec 20, 2024
sherlock holmes
dirk
compiler
time
code
errors
version
3 min read
A developer – any of us! – often finds it difficult to admit that their code doesn’t work. It seems so implausible that we are more likely to assume there is a bug in the compiler.
In reality, it is very, very rare for code to be non-functional due to a bug in the compiler, interpreter, operating system, application server, database, memory manager, or any other element of system software. Yes, there are bugs, but they are much less frequent than we would like to think.
Once, I actually encountered a bug in the compiler (removing the loop variable during optimization), but in all other cases, my complaints about the compiler or operating system turned out to be unfounded. I wasted a lot of my time, support staff time, and management time, only to end up in an awkward position when it turned out that the mistake was my own.
...
➦ Convenience is not an attribute of quality
Dec 17, 2024
in •
CLEANYOURROOMDON
api
monotony
method
convenience
vocabulary
calls
action
3 min read
Much has been said about the importance and complexity of designing good APIs (application programming interfaces). It’s hard to get everything right the first time, and even harder to change anything along the way; it’s like raising children. Experienced programmers have already understood that a good API offers the same level of abstraction for all methods, possesses uniformity and symmetry, and forms a vocabulary for an expressive language. Unfortunately, knowing the principles is one thing, but following them in practice is another. You know that eating sweets is harmful.
But let’s move from words to action and analyze a specific “strategy” for API design that I encounter constantly: designing the API to be user-friendly. As a rule, it all starts with one of the following “insights”:
...
➦