Dysfunctional Programming account #1. Senior SWE. I write C++ for money. ex-Haskell, ex-OCaml. All opinions are my own.

London, UK
Wanna become a C++ expert? Good news, everyone! Join CodeCrafters and build your own low-latency in-memory DB. And because you endured all my shitposts, you get a generous 40% discount. I reward your loyalty. app.codecrafters.io/join?via… It's time to git gud. #ad
23
24
511
152,559
It annoys me so much that a web browser became the best PDF viewer app
381
3,214
87,882
4,531,998
Today I submitted my resignation at Netflix. They rejected it. Apparently, you can’t resign from a company you don’t work at.
590
3,342
72,816
2,678,007
Amazing things are happening on LinkedIn
254
1,991
52,030
1,072,713
I had been using Ubuntu for 10 years. Last year, I applied to Canonical for a job to develop Ubuntu itself in Rust. Before the interview, they asked me to write a 20-page essay about my life, aspirations, philosophy and whatnot. Anyway, this is my desktop now.
555
919
19,749
2,010,401
Computers have insanely better CPUs and much more RAM nowadays, yet they feel slower than 20 years ago. I used to think it happens because computers do more useful work. Turns out, better hardware is more forgiving to crappy coding practices.
916
1,096
17,983
1,207,901
Day in the Life of a Senior SWE at Bloomberg
435
623
17,792
4,393,619
Software Engineers are not paid for writing code. They’re paid for solving problems. The faster you accept this, the better your life and career will be.
470
1,586
17,040
754,867
You won't believe how much my life has changed in the last 24 hours after publishing this clip
Day in the Life of a Senior SWE at Bloomberg
128
188
15,459
2,115,826
Strong men create C++ C++ creates good times Good times create weak men Weak men create Python Python creates hard times Hard times create strong men
440
1,202
12,735
577,321
A gifted kid who won a math competition now writes JIRA tickets for a living
109
781
10,629
776,511
A Senior Engineer in Europe earns less than a Junior Engineer in the US
785
557
10,529
2,258,475
I’m on a Zoom call with a developer. They decide it’s better to show the code to explain their point. They open Emacs with the default theme and no syntax highlighting. It was at this moment I realised that I’m talking to a tech wizard.
100
250
10,120
988,946
Duplicating code is fine
What’s a piece of programming advice that completely changed how you code?
195
422
10,411
815,207
It's crazy how after 23 years, devs haven't created anything better than JSON for the human-readable serialisation/config format
567
346
9,328
1,106,431
After working as an SWE for 10 years, I learned that irreplaceable engineers do exist. What I also learned is that companies are perfectly fine letting irreplaceable engineers go.
132
349
8,361
572,222
Docker is stupid. “Sorry, we can’t deploy a single statically linked executable of size 10 MB, so LET’S JUST SHIP GIGABYTES OF DATA CONTAINING AN ENTIRE OS WITH ALL DEPENDENCIES FOR EVERY SINGLE SERVICE”
538
371
8,226
910,323
This one post changed everything for me
Since it’s almost the end of the year, what was your biggest tweet?
123
342
8,166
920,113
It hasn't changed at all
66
40
8,372
162,191
Y’all complain about LeetCode interviews but omg have you seen Quant interview questions?? Wth is this bro 😭
302
243
7,818
1,498,891
Wait, do people actually memorise hundreds of LeetCode solutions instead of like 20 algorithms, 10 data structures and 5 approaches?
174
268
7,417
1,352,839
Python devs made the smartest marketing move humanity ever knew by saying “You can prototype in Python, and then rewrite to whatever you want” They knew economics of software way too well, prototypes are never getting rewritten, it’s too costly.
119
383
7,295
331,275
I’ve been programming for 16 years. It still annoys me that restarting a service weekly is an industry-wide accepted solution to fixing memory leaks.
425
263
7,310
911,372
I worked at a startup that used MongoDB. Eventually, all backend engineers left the company.
MongoDB is lowkey amazing, it's mostly free and easy to use. Fuck you and your SQL Structure deez nuts
303
189
7,059
1,490,956
The worst feeling during coding, Is when you’re smart enough to realise your code is shit, But not smart enough to fix it.
307
504
7,046
190,359
Quant interview question: You press a button that gives your randomly uniformly distributed number between $0 and $100K Each time you press, you have two choices: 1. Stop and take this amount of money 2. Try again You can try 10 times total. When do you stop?
805
175
6,727
1,612,017
As a Software Engineer who deeply cares about my craft and the quality of code I produce, It’s incredibly hard to cope with the fact that shit software almost always wins.
456
293
6,444
459,926
Apparently, Software Engineers can be highly productive if you just leave them alone
167
662
6,564
244,469
Game developers are a different breed
A new blog post! I've realized that the idea of applying matrices to RGBA color vectors is not as well-known as I've thought, so I've wrote a comprehensive list of operations that can be represented this way, together with some motivation for doing so: lisyarus.github.io/blog/post…
79
520
6,227
616,879
Replying to @welltypedwitch
It’s a good feature indeed. But when I open a PDF, I want to open the document instantly and view it easily without loading all the 74 tabs from my last browser window. Just kinda annoyed that browser became a separate OS 😮‍💨
45
40
6,130
305,954
I’ve been programming for 14 years, and it still bothers me that sorting algorithms don’t sort. They order.
192
262
5,806
449,686
A Junior at my team voluntarily takes all the unpleasant and hard tasks nobody else wants to do. I can’t even fathom the rate at which he’s growing. In a few years, he’ll be smarter than everyone else.
91
184
5,894
206,255
Best place I worked in terms of code quality was JetBrains. Every PR I submitted had like 50+ comments from my mentor on how to improve my code. Some might say it’s a toxic culture. But the key point is those comments weren’t rude. I really felt like my IQ grows two points every second. Code quality was unmatched there. The only place where the code was really close to being self-documented.
143
217
5,830
801,637
After programming for 16 years, I noticed that Software Engineer mentality slowly shifted from “produce great code” to “tolerate shit code”
272
341
5,656
307,949
I can't believe I'm losing my job to this
84
552
5,502
554,866
Isn’t it amazing that fundamental Unix tools like ls, head, tail, grep, xargs and others were written in C like 40 years ago and they still run the world without bugs
175
257
5,569
374,857
Many Software Engineers probably never created a new project from scratch. You enter a legacy codebase. You patch it. You leave before it dies.
From a CTO at a startup: "We interview devs by giving them a task to build an app on the spot, from scratch (2x BE endpoints, some frontend.) They can use AI, ofc - and we dig into why they did this or that. What is surprising: 14/15 devs from Meta failed this screening."
152
270
5,337
642,279
Me at 21: Life is so easy, lol Me at 31, to my past self: We had a good thing, you stupid son of a bitch! We had CS, we had an internship at FAANG, we had everything we needed, and it all ran like clockwork! You could have shut your mouth, use C++, and made as much money as you ever needed! It was perfect! But no! You just had to blow it up! You, and your pride and your ego! You just had to write Haskell and open-source! If you'd done your job, known your place, we'd all be fine right now!
44
160
5,200
508,135
Do competitive programming. It’s the best investment of your time to get a great job in tech.
85
226
4,999
327,953
As promised, top algorithms to know. Sorted by usefulness. 1. Binary search 2. KMP (string search, not call to action) 3. Quick Sort 4. Merge Sort 5. Fast Fourier Transform (FFT) 6. Depth-First Search (DFS) 7. Breadth-First Search (BFS) 8. Topological Sort 9. Lowest Common Ancestor (LCA) 10. A* Search 11. Dijkstra Shortest Path 12. Minimum Spanning Tree (Prim or Kruskal) 13. Binary Power 14. Knapsack Problem 15. Longest Common Subsequence (LCS) 16. Greatest Common Divisor (GCD)
Since this is trending, here’s a complete list of Data Structures to implement from my CS curriculum: 1. Linked List 2. Dynamic Array 3. Stack 4. Ring-buffer Queue 5. Deque 6. Binary Heap 7. Binomial Heap 8. HashMap with Open Addressing 9. HashMap with Separate Chaining 10. Binary Search Tree 11. AVL Tree 12. Red-Black Tree 13. B-Tree 14. Splay Tree 15. Treap 16. Segment Tree/Range Tree 17. Sparse Table 18. Heavy-Light Decomposition 19. Link-Cut Tree 20. Disjoint-Set Union (DSU) 21. Suffix Array 22. Suffix Tree
48
470
5,251
446,049
Just finished watching a podcast with @durov by @lexfridman. It's refreshing to see a billionaire with strong technical skills. Pavel explaining database sharding, end-to-end encryption and scaling to 1B+ users felt like a proper System Design interview tutorial. I always felt that billionaires are people from another detached reality. I never felt more relatable to someone who grew up in a poor family, but through hardship and following strong ethical principles, achieved this incredible success. Zero envy. Huge respect.
Here's my 4+ hour conversation with Pavel Durov (@durov), founder and CEO of Telegram. This was one of the most fascinating and powerful conversations I've ever had in my life. We discuss everything from his philosophy on freedom to government bureaucracies, intelligence agencies, human nature, mathematics, encryption, great engineering & design, education, family, and his philosophy on life. It's here on X in full and is up everywhere else (see comment). It is translated and dubbed into Russian, Ukrainian, French, and Hindi. Timestamps: 0:00 - Introduction 3:07 - Philosophy of freedom 6:15 - No alcohol 14:20 - No phone 20:16 - Discipline 41:28 - Telegram: Lean philosophy, privacy, and geopolitics 56:50 - Arrest in France 1:13:01 - Romanian elections 1:23:56 - Power and corruption 1:33:29 - Intense education 1:45:29 - Nikolai Durov 1:49:58 - Programming and video games 1:54:11 - VK origins & engineering 2:11:24 - Hiring a great team 2:20:40 - Telegram engineering & design 2:39:42 - Encryption 2:44:39 - Open source 2:49:26 - Edward Snowden 2:51:58 - Intelligence agencies 2:53:10 - Iran and Russia government pressure 2:56:19 - Apple 3:03:16 - Poisoning 3:29:28 - Elon Musk 3:35:31 - Money 3:44:23 - TON 3:54:13 - Bitcoin 3:57:12 - Two chairs dilemma 4:03:52 - Children 4:15:02 - Father 4:19:33 - Quantum immortality 4:26:05 - Kafka
138
308
4,981
549,393
Software Engineering is one those industries where it’s impossible to argue with people who have less experience.
132
259
4,890
314,985
OOP Design Patterns is a scam. All you need is functions.
251
392
4,669
642,889
The saddest part of Software Engineering is realising you spent multiple years learning not so valuable skills
235
265
4,823
423,697
You delete one line of code You build You wait 40 minutes It failed You return it back and delete another line You build You wait 57 minutes It failed Congratulations, this is your SWE job now.
165
173
4,657
213,946
Python is a great first programming language. Its main problem, it’s a toy language. Too bad many people didn’t realise that, and started using it in production seriously. And now we all suffer.
488
258
4,577
539,617
If you want to level up your DSA knowledge, I highly recommend this series of lectures by @pmavrin. A competitive programming world champion took time to record *checks notes* ~90 hours of video content in the most accessible way you'll ever see! Link in replies
33
424
4,628
413,606
The existence of this website makes my nerdy soul happy
70
273
4,628
234,020
Many devs don’t understand that you’re supposed to use exceptions only for exceptional cases. Exceptions are NOT for error handling.
339
184
4,588
443,085
stop wasting time on docker, redis, queues, auth, load balancers, and how to debug prod. learn leetcode. you’ll be 10x more hireable than someone who read 500 tutorials.
stop wasting time on leetcode. learn docker, redis, queues, auth, load balancers, and how to debug prod. you’ll be 10x more hireable than someone who solved 500 dp questions.
133
140
4,472
407,812
POV: You just learned C++20
112
209
4,431
236,765
Learning how to use ls, grep, xargs, sed, and curl will save you months of Python script writing
What’s the most boomer complaint you have?
100
252
4,238
277,526
Today I saw an image of how autistic people walk. I didn’t know people actually have a name for this behavioural pattern which is “Continuous Dijkstra”
357
152
4,351
744,632
I noticed people who become SWE after another profession (cooking, building, nursing, etc.) are generally happier at job than passionate coders who wanted to make video games but got crushed by corporate management
97
138
4,181
321,380
I spent 45 minutes today to learn Go. I know Go now. I can see the appeal.
165
75
4,210
330,669
I found a comment in a work project saying “Hardcoding this for now” It’s been there for 9 years 🫠
111
115
3,954
169,271
It feels nice to work on a product that brings $8B/year revenue
Founder of Bloomberg explains the $30,000 Bloomberg Terminal:
54
118
4,178
440,206
C++ is actually more secure than Rust. There’s no C++ package manager. Therefore no supply-chain attacks. Checkmate.
148
207
4,020
231,627
Microservices in Python: "10 milliseconds response time is blazing fast!" Meanwhile, in C++
76
152
4,073
277,259
It’s called CS degree. Not SWE degree.
138
116
3,938
248,311
I’m confused. Haven’t y’all already done all that during your CS curriculum?
Every programmer should spend time building all the fundamental data structures from scratch (dynamically resizable array, hashmap, linked list) Actually learning how they work and the specific implementation tricks is 10x more valuable than just knowing their Big O complexity
186
99
3,965
458,999
Every software engineer has a moment where they learned a soul crushing fact about programming. Like when you first learned that a Boolean actually occupies 1 byte, and not 1 bit.
226
98
3,940
268,274
As a Senior Software Engineer with 10+ years of experience, you should know: MySQL PostgreSQL SQLite MongoDB DynamoDB Cassandra LevelDB RabbitMQ Kafka Redis Docker K8S Nix Linux C Python Bash JS HTML CSS JIRA
668
218
3,811
814,492
Btw, this is a trivial coding problem. If you can't instantly solve it in your head, you have some studying to do.
i have a very simple question i ask during phone screens: print each level of a tree on a separate line. 90% of CS grad candidates just can't do it. someone needs to investigate these universities.
158
99
3,746
957,171
People who think that AI will replace developers severely underestimate the complexity of the real world
255
303
3,774
218,402
Here’s a proper 1-hour SWE interview question to filter out people who don’t have basic coding skills: Implement a pure function from scratch to calculate the day of the week by year, month and day.
483
136
3,639
1,076,001
I’m a Senior SWE and I still don’t understand the difference between a library and a framework
362
114
3,547
504,622
I’m fine losing in programming as long as I’m winning in life
if you think that c++ should be used anywhere i immediately start thinking you're a bad programmer
111
65
3,604
236,547
This is what a Senior SWE at Bloomberg's GitHub profile looks like
This is what a nix commiter's GitHub profile looks like.
150
196
3,608
2,926,663
If you’re a Junior Software Engineer, The worst thing you could do for your career Is just execute the tasks you’re assigned at your job.
189
123
3,580
268,398
Replying to @nixcraft
Joe Mama law. Because joe mama also doubles in size every year.
12
30
3,568
41,724
Trees in programming are everywhere: 1. JSON 2. HTML 3. File system 4. Compilers (e.g. Abstract Syntax Tree) 5. Video gaming (e.g. behaviour trees) 6. ML (e.g decision trees) If you say you never worked with trees, you’re telling on yourself.
124
156
3,439
210,568
The hardest thing to do as a Software Engineer, Is noticing shitty code and deciding to leave it shitty.
150
207
3,491
147,948
In case you thought I was jesting
168
73
3,302
238,718
Your brain on FP is believing that remembering ~50 functions is superior to learning a single language construct
200
194
3,316
430,745
Many people think CS is just DSA. It's not. My CS curriculum had: 0. Data Structures and Algorithms 1. Calculus 2. Linear Algebra 3. Physics 4. Mathematical Physics 5. Differential Equations 6. Theory of Functions of a Complex Variable 7. Theory of Probability and Mathematical Statistics 8. Calculus of Approximations 9. Functional analysis 10. Numerical Methods 11. Optimisation Methods 12. Cryptography 13. Compression Algorithms 14. Game Theory 15. Algebra and Geometry 16. Discrete Mathematics 17. Automata-based Programming 18. Formal Language Theory 19. Compilers and Interpreters 20. Computational Complexity Theory 21. Math Logic 22. Type Theory 23. Lambda Calculus 24. Functional Programming 25. OOP Design Pattern 26. Machine Learning 27. AI 28. Hardware Architecture 29. Java 30. C++ 31. C 32. Computational Geometry 33. Operating Systems 34. Computer Networks 35. Databases, Relational Algebra, and SQL 36. Parallel Programming 37. Economics 38. Organisation and management of business processes 39. History 40. Philosophy 41. English 42. Health and Safety Training Course 43. PE
114
301
3,443
217,437
Junior SWE: "If we rewrite the project, we'll have no tech debt!" Senior SWE: "If we rewrite the project, we'll get even more tech debt"
79
95
3,189
184,552
After my recent news, many people have asked me: "Why not Rust?" Here's my answer:
242
125
3,170
676,582
Your brain on Java is when comparing two strings REQUIRES A DNS LOOKUP
190
137
3,047
315,060
Corporate tech survival tip #1: If during code review someone asks you to do something you don't want, Just tell them you'll make a JIRA for this and do it later to avoid blocking client deliveries on this ask. The trick: this JIRA will never be done. Because it'll never be prioritised. Because there'll always be more important things.
85
130
3,078
270,906
All 27 git commands I use: git clone git log git status git add . git add <path> git commit -m "Short description" git commit -am "Short description" git commit -a --amend git push git push -u origin chshersh/branch-name git switch branch-name git switch -c chshersh/branch-name git branch -D chshersh/branch-name git pull --ff-only origin <current-branch> git fetch origin main git reset --hard origin/main git checkout -- . git rebase origin/main git rebase -i HEAD~<N> git rebase --onto git cherry-pick <hash> git stash git stash pop git stash list git remote add upstream <url> git bisect git reflog
101
316
3,048
312,356
Replying to @thisisisheanesu
Maybe they're not actually looking for an engineer!
10
8
2,890
150,854
Girls, if you’re looking for a perfect New Year gift for your nerdy boyfriend, buy him a $75 monospace font. Thank me later.
131
112
2,971
284,676
Junior Engineer: Tech decisions have technical reasons behind them Senior Engineer: Tech decisions have economical reasons behind them
94
205
3,001
117,842
Devs love wasting time discussing new solutions to solved problems. These are solved, move on: 1. Don’t use ORM 2. Monolith first, microservices second 3. Monorepo first, split when it doesn’t scale 4. Never use mocks 5. LeetCode interviews are easy
167
152
2,990
382,062
When I was studying the OS course, our professor forced us to: 1. Write in C 2. Read man pages 3. Use Vim It was one of the best courses.
87
95
2,996
138,190
I once worked on a microservice that took 1h45m to start. There was a hard timeout of 2 hours on a K8S deployment, so my production release strategy was mostly praying.
This app has the worst app opening experience ever
72
47
2,937
348,465
I only left the Haskell community for 2 years and I already don’t understand new memes.
24
109
2,829
135,607
I’m tired of bs coding interview question. Here’s a real question to filter for 10x devs: Store a binary tree in an SQL table and fetch it with a single query. Go.
433
79
2,750
1,206,864
“man i wish I were better at C++” *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice*
“man i wish I knew how to draw” *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice* *doesn't practice*
42
151
2,845
184,592
List of Data Structures to know to pass LeetCode interviews: 1. HashMap 2. Array 3. Single Linked List 4. Doubly Linked List 5. Stack 6. Queue 7. Binary Search Tree
64
176
2,852
402,102
At work, I just write raw SQL queries as strings and run them via a thin wrapper from a functional language. I’ve been doing this for 6 years, and I never regretted. I also saved a ton of time learning a dozen of ORMs that bring more problems than they solve.
ORMs are proof that not everyone is meant to be a programmer
191
127
2,779
664,045
You don’t do LeetCode to become good at programming. You do LeetCode to get a job.
a good software engineer in 2025 has to be a good ML engineer, data scientist, data analyst, account manager, product manager, marketer, shitposter ur leetcode isn't gonna do shit
51
137
2,778
99,806
The fact that LLMs still hallucinate 2 years after the initial release means: 1. Nobody knows how they actually work to fix them 2. Nobody actually cares
236
93
2,570
179,488
I used to think that Rust has really ugly syntax. But then, I actually spent 8 months learning Rust and writing real OSS projects with it to fully understand the language. Guess what, after using the language in anger, I realised that its syntax is indeed ugly.
I find rust a very syntactically unattractive language.
69
122
2,555
295,742
I just discovered the entire playlist of C++ lectures from the same teacher at ITMO University! 30 videos ~45 hours of content My new fav playlist on YouTube now. Topics: 1. Passing by Value, RVO, NRVO 2. Rvalue-references, Move Semantics, Xvalue, Copy Elision, Lifetime Extension 3. Intrusive Containers 4. shared_ptr 5. Perfect Forwarding, Universal References, Variadic Templates 6. Returning Values with Perfect Forwarding, decltype, auto, nullptr 7. Static and Dynamic Polymorphism, Anonymous Functions 8. Anonymous Functions (Continuation), std::function, Type Erasure 9. Signals, Reentrancy 10. Error Handling 11. optional, noexcept, Trivial Operations 12. SFINAE-friendly Functions, Conditionally explicit Constructors 13. constexpr 14. variant 15. Concepts 16. Encodings 17. Multithreading, std::thread, std::mutex 18. Multithreading, std::condition_variable 19. Multithreading, std::atomic 20. Multithreading, std::atomic (Continuation) 21. Multithreading, Relaxed Atomics 22. Multithreading, Cancellation, Asynchronous Operations 23. Introduction to Qt 24. Drawing the Mandelbrot Fractal in Qt 25. C++20 Modules
This is how I was taught C++ at ITMO University: 1. Implement my own 'printf' in pure Assembly 2. Implement Big Integer class with CoW and SOO 3. Implement the QuickHull algorithm 4. Learn Type Erasure and implement my own std::function 5. Implement Persistent Binary Search Tree (PBST) using std::shared_ptr 6. Implement a custom Hoard memory allocator, optimised for multithreaded programming I learned C++ before C. I never looked at C++ as "C with Classes".
50
215
2,772
462,214
Why there’s so much focus on 20yo founders on social media? Those people are dumb. Their only advantage is having a lot of energy and some luck. I want to hear stories from my 40yo and 50yo fellows who decided to become founders after ascending to next levels of wisdom.
308
75
2,657
140,776
Hiring a Junior SWE: risky investment. Hiring a Senior SWE: guaranteed waste of money. No surprise the job market is in depression.
80
91
2,621
163,133
I never understood why versioning is so overcomplicated for no reason. A version should be just MAJOR.MINOR Increase MAJOR for breaking changes. Increase MINOR for non-breaking changes. That’s all.
190
104
2,489
423,552
All places where I worked and used MongoDB, the companies were migrating from MongoDB to PostgreSQL
98
132
2,507
288,412
Let’s be honest. Grinding LeetCode is the single most important skill you can develop for finding a software job.
114
82
2,525
178,650