All blogs / Software / engineering practice
Yegor Bugayenko
Yegor Bugayenko blogging about object-oriented programming, Java, project management, philosophy, and startup investments; at least one new post every week.
Software / engineering practiceEngineering management / careersJava / JVMAI / MLEssays / personalEngineering blogs
- Posts
- 497 from 4 Mar 2010 to 20 Sep 2026
- Posting
- monthly (13 in the last year)
- Kind
- personal blog
- Feed
- https://www.yegor256.com/rss.xml
2026 9
2025 15
2024 10
2023 21
- Defend me against chatgpt
- How to review research paper
- Results and discussion
- Research questionnaire
- Avoid line breaks inside paragrap
- Method of research
- Individualism vs collectivism
- How to write related work section
- Five ingredients career
- Turbulence
- Style checker for bibtex files
- Ai for software engineering
- Immigration by war
- Fast vs deep testing
- Decision making process
- Dictators
- Two step initialization
- Method overloading
- Contribute disabled tests
- Just show up
- Layout of tests
2022 11
2021 11
2020 25
- Metric for emotions
- Self managing orgs
- Abstract objects
- Objects without methods
- Svoboda and conflicts
- Award 2021
- Typing without types
- Daily reports
- Distance of coupling
- Lack of problem
- Latex spell checking
- Open source etiquette
- Silence doesnt cure
- Individual performance metrics
- Protesters
- Veil objects
- Career killer
- Open source arms race
- First world hysteria
- Coronavirus
- Prefixed naming
- Fat skinny design
- Object cohesion
- Question never ask
- Embrace the chaos
2019 52
- Talented programmers
- Testosterone
- Altruism kills
- Testing in code review
- How much cohesion is enough
- Revolutionary evolution
- Award 2020
- Sql as a service
- What is the point
- Parsing and printing
- Be unhappy to be happy
- Revolution bottom up
- How to motivate kids to code
- Injection of guilt
- Moscow protests
- Joy of programming
- Inversive management
- Strong opinions
- Tdd misbeliefs
- Syncem
- How much they suffer
- Where do you seek help
- Trust or not
- Dont improvise
- Cause risk effect
- Sibit bitcoin command line client
- Formula of happiness
- Elegant readme
- Nutch from java
- Beg them
- Software project review checklist
- Survival guide
- Concerns
- Cost of zerocrat
- Jpages
- Sales kit
- Logging without static logger
- Terrorism and power
- Data and maintainability
- How to move faster
- Jews vs french
- Calibrated democracy
- Silicon valley benefits
- Zache
- Cloudrepo
- Dependency hell
- The wall
- 10x paychecks
- Drugs
- What if architect is wrong
- Country as a service
- enthusiastic
2018 48
- Speaker cheat sheet
- Silicon valley criticism
- Unit testing anti patterns
- You can do better
- Freelance vs outsourcing
- Journalism
- Bigotry
- Ruby threads
- Mailanes
- Dont make me guess
- Can you control us
- History simplification
- Remote work
- Award 2019
- Fear of coupling
- Clear code
- What is speed
- monolithic repositories
- Soft skills
- Penalty for refusal
- Builders and manipulators
- Seventy percent
- Bugs or pull requests
- Global variables
- Are you an architect
- Glogin
- Object validation
- Default arguments against null
- Open source attributes
- Right way to report bugs
- How to be lazy
- Learning by refactoring
- Donations via zerocracy
- How to test thread safety
- Why gas
- Zerocracy announcement
- Putin election
- Fluent interfaces
- Speed vs quality
- Parsing objects
- Micro vesting
- Where to find more bugs
- Sociotech skills
- Educational aspect of static analysis
- Dalles plan
- Micro budgeting
- Fake opposition
- Operator new is toxic
2017 72
- Software quality formula
- Srp is hoax
- Alan kay was wrong
- Data access object
- https://www.yegor256.com/shift-m/2017/12.html
- Microtasking
- Opposition
- Trust pay lose
- Static factory methods
- Crimea
- Five new java features
- https://www.yegor256.com/shift-m/2017/11.html
- Ukrainian language
- Award 2018
- Motherland
- Lazy loading caching sticky cactoos
- Streams vs decorators
- Java9
- https://www.yegor256.com/shift-m/2017/10.html
- Threecopies server data backup
- What motivates me
- Evil object name suffix client
- Rehttp http repeater
- Xcop
- To be nice or not
- Bitcoin pyramid
- Raii in java
- How to manage a manager
- Sabotage failed
- My favorite websites
- Sexual harassment
- How to redesign equals
- Sexism
- Activists
- My environment
- Object oriented input output in cactoos
- Dynamodb rack maven
- Gluten free management
- Why contribute to open source
- Unlimited number of bugs
- Single statement unit tests
- Monikers
- Loyalty
- Inversion of control
- Remote slaves
- Sixnines
- Slaves of the law
- Dnepr corruption item
- No help via email
- Flexibility equates lower quality
- Pdd in action
- Solid
- Tdd that works
- Traits and mixins
- History of separatism
- Too many classes
- Say no to google recruiters
- Nationalism of the future
- Stackoverflow is your tool
- Private method is new class
- How to eliminate corruption
- Decorating envelopes
- Lifetime imprisonment for separatism
- Career advice
- Consciousness and revolution
- Synchronized decorators
- Ukrainian startups
- Will i go to war
- How to teach customers
- Justice against corruption
- How much you love conflicts
- Ukraine budget 2017
2016 64
- Tu154 sochi
- Who wants our donations
- What would you ask putin
- What causes terrorism
- Can objects be friends
- Are you ashamed of voting
- Privatbank nationalization
- Onishenko our hero
- Mvc vs oop
- Putin is power
- Lustration in ukraine
- How to pay programmers less
- Who needs war
- What is wrong about guns
- Eolang
- Saakashvili speaks ukrainian
- Yanukovych v president
- Naked data
- Software conferences to attend
- Why no ebooks
- Award 2017
- Command control innovate
- Oop without classes
- Inheritance is procedural
- Gradients of immutability
- Decomposition of responsibility
- Communication maturity
- What is wrong object oriented programming
- If then else code smell
- Distributed teams are higher quality
- Continuous integration maturity
- Active record
- Convince me
- Law of demeter
- Who is object
- Mistakes in agile manifesto
- Software project roles
- Data transfer object
- Singletons must die
- How to hire programmer
- Dont use java assertions
- Conference mistakes
- Who is project manager
- Convertible notes
- Keynote clowns
- Test methods must share nothing
- Why inputstream design is wrong
- Object must not be configurable
- Java annotations are evil
- Revenue may kill startup
- Printers instead of getters
- Jare instant free cdn
- Unspoken secrets of elevator pitch
- Try finally if not null
- Wring dispatcher github notifications
- Pimp up your resume
- How we interview programmers
- Holacracy autocracy
- Are you still debugging
- Design patterns and anti patterns
- Defensive programming
- How expensive is outsourcing
- Good programmers dont work for equity
- How to punish employees
2015 74
- Turnover is good for maintainability
- Why dont you contribute to open source
- Investors are too scared
- Temporal coupling between method calls
- Throwing an Exception Without Proper Context Is a Bad Habit
- Imprisonment for Irresponsible Coding!
- Ringelmann Effect vs. Agile
- Stop Comparing JSON and XML
- 10 Typical Mistakes in Specs
- A Chatbot Is Better Than a UI for a Microservice
- Why Software Outsourcing Doesn't Work ... Anymore
- What Do You Do With InterruptedException?
- Software Quality Award, 2016
- What Is the Difference Between Ridley Scott and Joseph Goebbels?
- Competition Without Rules Is Destructive
- How to Be a Good Office Slave
- Vertical and Horizontal Decorating
- You're Just the Mayonnaise in a Bad Sandwich
- Are You a Micromanager?
- How to Fire Someone Right
- When Do You Stop Testing?
- How to Set Up a Private Maven Repository in Amazon S3
- Redundant Variables Are Pure Evil
- Need Robust Software? Make It Fragile
- Why Many Return Statements Are a Bad Idea in OOP
- Nine Steps to Start a Software Project
- Checked vs. Unchecked Exceptions: The Debate Is Not Over
- their time
- Fools Don't Write Unit Tests
- Meetings Are Legalized Robbery
- Catch Me If You ... Can't Do Otherwise
- Public Static Literals ... Are Not a Solution for Data Duplication
- The Better Architect You Are, The Simpler Your Diagrams
- XML Data and XSL Views in Takes Framework
- A Few Valid Reasons to Reject a Bug Fix
- Good Programmers Write Bug-Free Code, Don't They?
- Software Outsourcing Survival Guide
- Wikipedia's Definition of a Software Bug Is Wrong
- Seven Deadly Sins of a Software Project
- How Much For This Software?
- There Can Be Only One Primary Constructor
- A Few Thoughts on Unit Test Scaffolding
- How to Avoid a Software Outsourcing Disaster
- How Cookie-Based Authentication Works in the Takes Framework
- Two Instruments of a Software Architect
- Three Things I Expect From a Software Architect
- Constructors Must Be Code-Free
- How to Protect a Business Idea While Outsourcing
- How to Implement an Iterating Adapter
- My Favorite Software Books
- Software Quality Award, 2015
- Tacit, a CSS Framework Without Classes
- Class Casting Is a Discriminating Anti-Pattern
- How AppVeyor Helps Me to Validate Pull Requests Before Rultor Merges Them
- JAXB Is Doing It Wrong; Try Xembly
- Java Web App Architecture In Takes Framework
- Worst Technical Specifications Have No Glossaries
- Don't Create Objects That End With -ER
- Team Morale: Myths and Reality
- Composable Decorators vs. Imperative Utility Methods
- making the customer happy
- Utility Classes Have Nothing to Do With Functional Programming
- It's Not a School!
- Code For the User, Not for Yourself
- Four NOs of a Serious Code Reviewer
- Don't Repeat Yourself in Maven POMs; Use Jcabi-Parent
- XSL Transformation in Java: An Easy Way
- making the boss happy
- If. Then. Throw. Else. WTF?
- How to Cut Corners and Stay Cool
- A Compound Name Is a Code Smell
- Continuous Integration on Windows, with Appveyor and Maven
- Daily Stand-Up Meetings Are a Good Tool for a Bad Manager
- How to Be Honest and Keep a Customer
2014 83
- Immutable Objects Are Not Dumb
- You Do Need Independent Technical Reviews!
- How Much Your Objects Encapsulate?
- How an Immutable Object Can Have State and Behavior?
- Synchronization Between Nodes
- ORM Is an Offensive Anti-Pattern
- Five Principles of Bug Tracking
- Seven Virtues of a Good Object
- Hits-of-Code Instead of SLoC
- How Immutability Helps
- An Empty Line is a Code Smell
- How Much Do You Cost?
- Are You a Hacker or a Designer?
- Paired Brackets
- Incremental Billing
- How We Write a Product Vision
- project architect
- Continuous Integration is Dead
- Stop Chatting, Start Coding
- Project Lifecycle in Zerocracy
- Best Hosted Continuous Integration Services for a Private Repository
- Dependency Injection Containers are Code Polluters
- motivating
- Built-in Fake Objects
- Getters/Setters. Evil. Period.
- Deploying to Heroku, in One Click
- Deployment Script vs. Rultor
- Anti-Patterns in OOP
- RESTful API and a Web Site in the Same URL
- Simple Java SSH Client
- How We Run as a Non-Root Inside Docker Container
- How to Publish to RubyGems, in One Click
- How to Deploy to CloudBees, in One Click
- The Art of Software Testing by Glenford Myers
- How to Release to Maven Central, in One Click
- Fluent JDBC Decorator
- How to Retry Java Method Call on Exception
- Strict Control of Java Code Quality
- Cache Java Method Results
- Rultor + Travis
- Every Build in Its Own Docker Container
- Rultor.com, a Merging Bot
- Master Branch Must Be Read-Only
- Liquibase with Maven
- How to Read MANIFEST.MF Files
- Custom Pygments Lexer in Jekyll
- SASS in Java Webapp
- XML+XSLT in a Browser
- Deploy Jekyll to GitHub Pages
- CasperJS Tests in Maven Build
- Limit Java Method Execution Time
- Avoid String Concatenation
- Objects Should Be Immutable
- Java Method Logging with AOP and Annotations
- Object-Oriented Java Adapter of Amazon S3 SDK
- Get Rid of Java Static Loggers
- MySQL Maven Plugin
- Atomic Counters at Stateful.co
- Object-Oriented GitHub API
- Why NULL is Bad?
- OOP Alternative to Utility Classes
- DynamoDB Local Maven Plugin
- W3C Java Validators
- XML/XPath Matchers for Hamcrest
- Typical Mistakes in Java Code
- Incremental Requirements With Requs
- Java XML Parsing Made Easy
- Basic HTTP Auth for S3 Buckets
- How Hourly Rate Is Calculated
- Mocking of HTTP Server in Java
- How XDSD Is Different
- Definition Of Done
- GitHub Guidelines
- Object-Oriented DynamoDB API
- Bugs Are Welcome
- No Obligations
- PDD by Roles
- How Much Do You Pay Per Line of Code?
- Fluent Java HTTP Client
- Xembly, an Assembly for XML
- First Post
- Movies for Thanasis
- PhantomJS as an HTML Validator