Eduards Sizovs Profile Banner
Eduards Sizovs Profile
Eduards Sizovs

@eduardsi

Followers
6,988
Following
0
Media
412
Statuses
4,607

Dev, architect, mentor, trainer, ex-CTO, 15+ y/o experience. 🎓 Masterclass:

Singapore
Joined July 2009
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@eduardsi
Eduards Sizovs
3 years
– We don't write tests. – Why? – Because we don’t have time for it. – Why? – Because there is too much work and pressure. – Why? – Because we don’t move fast enough. – Why? – Because changing software has become difficult and risky. – Why? – Because we don’t write tests.
113
2K
8K
@eduardsi
Eduards Sizovs
5 years
When you don't have time to write a good exception message, use this
Tweet media one
16
383
898
@eduardsi
Eduards Sizovs
2 years
Junior developers love magic. Seniors hate magic. And the reason seniors hate magic is that they know, from experience, that magic (things they don't understand) eventually bite in the ass.
15
168
846
@eduardsi
Eduards Sizovs
5 years
Developers need autonomy, mastery, and purpose, not pizzas, hugs, and ping-pong tables.
12
122
360
@eduardsi
Eduards Sizovs
5 years
Sometimes when I’m programming in JavaScript I just want to yell “Fuck this” but I can’t remember what “this” refers to.
8
77
315
@eduardsi
Eduards Sizovs
5 years
👉 Sequential by default, reactive if necessary. 👉 Latest state-based by default, event-sourced if necessary. 👉 ACID by default, BASE if necessary. 👉 Monolithic by default, distributed if necessary. Keep things simple.
5
117
277
@eduardsi
Eduards Sizovs
5 years
🙉💥 Chaos Engineering for Teams: every week, one randomly-selected person takes the whole day off regardless of their current work. Without informing others.
6
108
273
@eduardsi
Eduards Sizovs
5 years
🕙 More hours is not productivity 😴 Less sleep is not optimization 👨‍💻 Being busy is not making progress ⛱ Doing nothing is not wasting time ♥ Family is not an interruption
1
97
220
@eduardsi
Eduards Sizovs
7 years
Tweet media one
7
184
150
@eduardsi
Eduards Sizovs
5 years
Stop Learning Frameworks –
5
79
145
@eduardsi
Eduards Sizovs
7 years
Schrodinger's backup
Tweet media one
0
98
135
@eduardsi
Eduards Sizovs
3 years
I pulled a list of 35 Java libraries that I like and use daily. Some of them are well-known; others are not so popular, yet very useful at work:
3
23
129
@eduardsi
Eduards Sizovs
3 years
Imagine if every product included an honest message from the engineering team such as "not unit tested", “delivered to you under the pressure of unreasonable managers,” etc. That would be a more interesting and valuable read than marketing BS :-)
8
31
108
@eduardsi
Eduards Sizovs
7 years
“Commenting code is like explaining a bad joke“ #comments #code
Tweet media one
3
44
86
@eduardsi
Eduards Sizovs
1 year
Well-crafted software is expensive. Crappy software even more so.
4
17
87
@eduardsi
Eduards Sizovs
3 years
Lightweight, simpler, no-magic alternatives to popular Java libraries and frameworks: * Spring -> Dagger (or Guice) * Spring MVC -> Javalin (or Spark) * Hibernate -> jOOQ * Hystrix -> Failsafe
13
20
86
@eduardsi
Eduards Sizovs
4 years
1️⃣ Simple is not necessarily easy. 2️⃣ Good is not necessarily perfect. 3️⃣ Fast is not necessarily sloppy. 4️⃣ Busy is not necessarily productive.
1
37
79
@eduardsi
Eduards Sizovs
9 months
I invited Carson Gross – the creator of Htmx (and the author of 😄) to the upcoming @DevTernity , to bring web development back to its senses, and save us, young grugs, from JS and React fatigue. You'll learn about good old hypermedia architecture, see the…
Tweet media one
1
11
70
@eduardsi
Eduards Sizovs
5 years
Every time an experienced developer is working alone on something that no other team member can replicate, he/she gets a little smarter, and the entire team gets dumber. We need more mentors and fewer I'll-do-everything-myself-developers.
3
26
64
@eduardsi
Eduards Sizovs
1 year
Clean Architecture with all its ports, adapters, and layers of abstraction is overhead for most apps, even non-trivial ones. When I look at some demo apps showcasing clean architecture, it makes me cry. 🧵
3
6
61
@eduardsi
Eduards Sizovs
5 years
1️⃣ DevOps is not a role 2️⃣ Agile is not lack of process 3️⃣ Setting up a build server is not CI 4️⃣ Continuous Delivery is not Continuous Deployment
1
26
58
@eduardsi
Eduards Sizovs
2 years
Although tests cannot prove the absence of bugs, every bug proves the absence of tests.
1
20
55
@eduardsi
Eduards Sizovs
5 years
When you see people coming to your work for a job interview
Tweet media one
1
12
52
@eduardsi
Eduards Sizovs
6 months
I invited Carson Gross – the creator of Htmx (and the author of 😄) to the upcoming @DevTernity , to bring web development back to its senses, and save us, young grugs, from JS and React fatigue. You'll learn about good old hypermedia architecture, see the…
Tweet media one
13
4
53
@eduardsi
Eduards Sizovs
2 years
If you ask a candidate to invest time in a coding assignment, responding with "sorry, you didn't make it to the next round" is not enough. You owe the candidate a detailed code review.
8
9
54
@eduardsi
Eduards Sizovs
5 years
The best developers are raised, not hired – #hiring #hr #tv #recruting
2
24
51
@eduardsi
Eduards Sizovs
1 year
I can't be a better software engineer than I am a person. — Kent Beck
5
9
49
@eduardsi
Eduards Sizovs
8 years
Thanks @tech_fellow for sharing :D
Tweet media one
1
49
47
@eduardsi
Eduards Sizovs
5 years
Books that have changed my life: 1️⃣ The Way of the Peaceful Warrior – how to find harmony 2️⃣ Nonviolent Communication – how to deal with people 3️⃣ Company of One – how to run a business 4️⃣ Antifragile – how to thrive in the ever-changing world 5️⃣ Atlas Shrugged – how to be strong
1
4
47
@eduardsi
Eduards Sizovs
5 years
– "Let's use AWS, Docker, Kubernetes, Kotlin, and Vue.js. Now please remind me, what application we are building?"
2
11
46
@eduardsi
Eduards Sizovs
5 years
The secret behind Thor's hammer
Tweet media one
1
17
46
@eduardsi
Eduards Sizovs
3 years
Give the team that "doesn't have time" to write good code infinite time, and you'll see the same bad code, only written longer. Bad engineering is rarely a capacity (time) problem. It's a competency (or attitude) problem.
4
16
45
@eduardsi
Eduards Sizovs
5 years
I often ask senior developers if they mentor colleagues, and only a few hands go up. But when I ask them if their colleagues need to improve, everyone says yes! Everyone is good at finding flaws in others. Be the one who eliminates flaws.
0
16
46
@eduardsi
Eduards Sizovs
6 years
The next #github version. Inspired by @nazarff
Tweet media one
0
9
44
@eduardsi
Eduards Sizovs
4 years
These "invisible" tasks will make you a distinguished developer. They are never part of Product Backlog: - mentoring people - energizing people - helping people overcome life struggles - spreading optimism
0
17
44
@eduardsi
Eduards Sizovs
5 years
1️⃣ Job is not a career 2️⃣ Job title is not significant 3️⃣ Job promotion is not an indicator of skills 4️⃣ Job interview is not one-sided 5️⃣ Job change is not disloyalty
0
19
43
@eduardsi
Eduards Sizovs
4 years
Productivity cannot be achieved by doing more: trying to make a day longer by waking up at 5am, more thinking, more planning. It's a recipe for burnout. True productivity is achieved by doing less and removing unnecessary clutter from our lives.
0
9
43
@eduardsi
Eduards Sizovs
5 years
The average software developer doesn’t own a single book on the subject of his or her work, and hasn’t ever read one. That fact is horrifying for anyone concerned about the quality of work in the field — Peopleware
4
16
43
@eduardsi
Eduards Sizovs
5 years
If you don't have a mentor – don't worry. Kent Beck, Martin Fowler, Uncle Bob can be your mentors. Just read proper books.
0
3
38
@eduardsi
Eduards Sizovs
6 years
— Manager: Bob, you need to work more on your soft skills. — Worker: My name is Steve.
0
9
39
@eduardsi
Eduards Sizovs
3 years
DRY (Don't Repeat Yourself) rarely comes to the party alone. He usually brings in an evil friend called Coupling.
0
11
39
@eduardsi
Eduards Sizovs
5 years
Is your project not developing fast enough? Instead of hiring more people, stop and think what slows you down. Unlikely the problem is in the number of people. As my friend said – what a small group cannot handle, a big one will fuck up even more.
1
18
37
@eduardsi
Eduards Sizovs
4 years
There is no 1-to-1 relationship between a unit test and a class under test. It's the road to mocking and stubbing hell. Often multiple classes must be treated and tested as a single unit.
3
5
36
@eduardsi
Eduards Sizovs
11 months
😆10 minutes well spent: — "javascript developers call very special complexity demon spirit in javascript "callback hell" because too much closure used by javascript libraries very sad but also javascript developer get what deserved let grug be frank"
2
5
34
@eduardsi
Eduards Sizovs
5 years
It doesn't matter how clean your code is if no one wants to work alongside with you. The degree to which other people want to work with you is an indication of how successful you’ll be in your career. Be the engineer that everyone wants to work with. Don't be an asshole.
0
16
34
@eduardsi
Eduards Sizovs
6 years
Together with @codingandrey we've built a (free) project that simplifies the discovery of tech videos. We took videos from YT, removed marketing noise and added: ✅ Better ranking ✅ Better search ✅ Slim UX ✅ GitHub contribs ✅ RSS (soon) @WatchDevTube
1
17
35
@eduardsi
Eduards Sizovs
5 years
My doctor has recommended updating Agile Manifesto –
Tweet media one
1
13
36
@eduardsi
Eduards Sizovs
2 years
Questions that I love asking when i̶n̶t̶e̶r̶v̶i̶e̶w̶i̶n̶g̶ talking with developers:
4
4
35
@eduardsi
Eduards Sizovs
1 year
In the JS ecosystem, the framework that comes closest to the exceptional developer experience of Rails is @adonisframework .
2
6
32
@eduardsi
Eduards Sizovs
10 months
Hetzner dedicated server: 12 vCPU 64 GB RAM 512 GB NVMe SSD $48/month or $96/month for HA DigitalOcean Managed Postgres instance: 16 vCPU 64 GB RAM 360 GB NVMe GB SSD $900/month or $1800/month for HA No thanks. Even if you have no clue how to set up and operate Postgres (bad…
4
0
34
@eduardsi
Eduards Sizovs
5 years
Developers, unlike many other professions, have superpowers to create things from nothing and affect humanity. We are creators. Let's use our time and skills wisely.
1
8
32
@eduardsi
Eduards Sizovs
1 year
The biggest software engineering waste is not over-engineering. It's not even building features that nobody will use. It's over-engineering the features that nobody will use.
1
4
33
@eduardsi
Eduards Sizovs
5 years
If want to find great tech books, do what you always did – search for the newest books. But in reverse order: 1) The Pragmatic Programmer: 20 y/o 2) Refactoring = 20 y/o 3) TDD by Example: 17 y/o 4) Domain-Driven Design: 16 y/o 5) Clean Code: 11 y/o ...
2
5
33
@eduardsi
Eduards Sizovs
5 years
The Principal Developer –
3
14
33
@eduardsi
Eduards Sizovs
5 years
Tools for better writing: ✍️ Hemingway ✍️ Grammarly ✍️ DeepL ✍️ Ludwig
Tweet media one
2
10
31
@eduardsi
Eduards Sizovs
5 years
A lot of problems in software development are caused by teams' inability to control WIP. When faced with the pressure, instead of reducing WIP and thus reducing time-to-market, we are worsening the situation by accepting more work than is optimal for our capacity.
0
9
31
@eduardsi
Eduards Sizovs
5 years
The state of IT in 2019: 💩 IT managers rarely have a solid development background. 💩 Developers don't want to become managers and protect the good. 💩 Juniors exponentially outnumber seniors. 💩 Mentoring is rare. 💩 Edu system doesn't teach craftsmanship, XP, best practices.
2
12
30
@eduardsi
Eduards Sizovs
6 years
Please replace phones 📱 with books 📚
Tweet media one
2
7
29
@eduardsi
Eduards Sizovs
5 years
The heaviest objects in the universe
Tweet media one
1
14
30
@eduardsi
Eduards Sizovs
4 years
Two agile coaches are trying to understand what a "Proxy" Product Owner is doing in the Agile team:
1
11
29
@eduardsi
Eduards Sizovs
5 years
Mentoring satisfies the crucial need of any developer: the desire to improve, also known as Mastery. Hiring people that are eager to share and teach will increase the retention rate in your company.
0
5
27
@eduardsi
Eduards Sizovs
3 years
As a code reviewer, let go of your ego, and remember that the code should not be written in your way; the code should be written in a *good* way. Good way != Your way.
3
5
27
@eduardsi
Eduards Sizovs
5 years
When you post your article vs. when someone posts your article on Hackernews:
Tweet media one
2
0
26
@eduardsi
Eduards Sizovs
2 years
Retention is more important than hiring.
0
3
27
@eduardsi
Eduards Sizovs
4 years
In any serious software system, there is an infinite number of places that could be improved. That leads to a problem: because there is always something to refactor, devs fall into the trap of refactoring everything randomly without considering the financial impact of their work.
3
8
27
@eduardsi
Eduards Sizovs
5 years
When developers who complain that their managers do not give enough time to write "high-quality code," are given more time, they keep producing crap. There must be a connection.
2
5
27
@eduardsi
Eduards Sizovs
5 years
I know many developers that show no interest in development processes – understanding of Scrum, Kanban, Lean "is for managers." Then they complain about the bad processes at work. 💡 Remember: If you don't know how to manage the dev process, someone else will do this for you.
2
7
25
@eduardsi
Eduards Sizovs
4 years
The worst thing to hear from recruiters
Tweet media one
1
6
26
@eduardsi
Eduards Sizovs
5 years
The most important interview question you should ask senior developers – how will you develop people?
1
3
25
@eduardsi
Eduards Sizovs
1 year
Clean head → Clean code.
3
4
25
@eduardsi
Eduards Sizovs
2 years
💡What makes a good modern programmer?
1
7
24
@eduardsi
Eduards Sizovs
7 years
@codepo8 this is Sparta!
Tweet media one
2
2
26
@eduardsi
Eduards Sizovs
4 years
1️⃣ Junior is not less valuable. 2️⃣ Senior is not necessarily good. 3️⃣ Experienced is not necessarily right. 4️⃣ Experts don't really exist.
2
6
25
@eduardsi
Eduards Sizovs
11 months
Using a custom domain and HTTPS locally is super easy thanks to @caddyserver , which saves you all the hassle and provisions local certificates for you.
1
4
25
@eduardsi
Eduards Sizovs
2 years
Good code is code that reduces the discovery cost and the cost of change.
2
4
24
@eduardsi
Eduards Sizovs
7 years
A Java architecture test library, to specify and assert architecture rules in plain Java – #archunit
0
10
25
@eduardsi
Eduards Sizovs
2 years
My favorite questions when interviewing team leaders: - How will you grow others? - How will you ensure you're not needed?
1
8
25
@eduardsi
Eduards Sizovs
2 years
We want to deliver value sooner, not faster. Driving fast doesn't necessarily make you arrive at the destination sooner. Teams can (consistently) deliver value sooner by moving in TDD baby steps, shipping small increments, reducing WiP. Not by running at breakneck speed.
0
8
25
@eduardsi
Eduards Sizovs
2 years
If you think pair programming slows you down, you don't understand software development, because you see it as a typing business. In typing business, you want to get more keystrokes. But with pair programming, you get fewer keystrokes.
2
8
24
@eduardsi
Eduards Sizovs
3 years
Eliminating the cause of the technical debt is more important than eliminating the technical debt.
0
4
24
@eduardsi
Eduards Sizovs
1 year
Resist writing code for the future. Today you know *less* than tomorrow. Tomorrow you'll write code differently because you'll be smarter.
4
5
24
@eduardsi
Eduards Sizovs
8 years
Very accurate distinction that do not reject element of art
Tweet media one
1
22
22
@eduardsi
Eduards Sizovs
6 years
Technologies come and go, so your precious time. Fundamentals stay intact and are portable across programming languages, tools, and frameworks. Invest your time accordingly.
1
14
24
@eduardsi
Eduards Sizovs
3 years
Don't be afraid to write a little more code if it helps reduce coupling. Typing is cheap; coupling is expensive.
1
6
24
@eduardsi
Eduards Sizovs
4 years
If you think that by calling developers "hackers", "ninjas", "gurus", "rockstars" in your job ads you'll attract more candidates, think twice. Only a small fraction of dev pool identifies themselves with those terms... and you better not hire them. "Developer" is good enough.
3
5
24
@eduardsi
Eduards Sizovs
5 years
The best social network for hiring like-minded people is... Goodreads. Want to hire software craftspeople? Search for people who enjoy reading about Clean Code, TDD, DDD 🤓📚
1
9
24
@eduardsi
Eduards Sizovs
2 years
Pair programming doesn’t mean sitting together all the time (which can be exhausting and counterproductive). My favorite PP sessions involve constantly shifting between two modes – working together and independently.
3
2
23
@eduardsi
Eduards Sizovs
5 years
I never liked technical interviews —
1
6
22
@eduardsi
Eduards Sizovs
3 years
Hackatons in corporations: after years of crazy deadlines, boring tasks, and suppressed ideas, we expect our developers to suddenly become creative on a certain date and build something really innovative.
1
2
22
@eduardsi
Eduards Sizovs
4 years
A busy senior developer is explaining current architecture to new hires:
0
7
22
@eduardsi
Eduards Sizovs
4 years
These are hard times. Now people have to wash hands regularly, cook food, play more with their kids... If it continues, God forbid, it will lead to a crazy thing called reading.
0
4
21
@eduardsi
Eduards Sizovs
5 years
The world needs more programmers. What if Parnas was right? — "One bad programmer can easily create two new jobs a year. Hiring bad programmers will just increase our need for them. If we had more good programmers, and could easily identify them, we would need fewer, not more."
1
4
22
@eduardsi
Eduards Sizovs
2 years
From my experience, the worst leaders (and managers) are always busy. A good manager and leader should see things that other people don't, and timely notice and resolve all kinds of issues *before* they grow bigger. That’s impossible when you’re busy and overwhelmed.
2
4
22
@eduardsi
Eduards Sizovs
7 years
For-profit events that do not cover speaker's travel $, claiming "we are not-profit" harm themselves and others. Honesty is the best policy.
0
5
22
@eduardsi
Eduards Sizovs
5 years
Years of experience do not make you a better developer. It's not the quantity, but the quality of years is what matters most: who did you work with, what did you do and how.
2
10
22
@eduardsi
Eduards Sizovs
5 years
Pair programming has many benefits, but it is not for everyone. Remember that there are extreme introverts that don't feel comfortable working in pairs. We need to create comfortable environment where everyone can perform at their best.
3
4
22
@eduardsi
Eduards Sizovs
1 year
When you try to achieve speed at the expense of quality, you lose both.
1
5
21
@eduardsi
Eduards Sizovs
1 year
Change management tip: before proposing your idea to the group, share it with every group member individually: ask their opinion, address their concerns, and get their buy-in. That reduces friction big time because now you're pitching the idea to a group of supporters vs. a…
6
5
20
@eduardsi
Eduards Sizovs
4 years
How a programmer sees his/her own code: ❤ Good code, written by a good programmer, under unbearable working conditions and time pressure. How a programmer sees code written by a colleague: 💩 Bad code, written by a bad programmer, who had all the time in the world.
2
2
21