keinsell

I've been stupid programmer.

August 17, 2026

I’ve been writing code for several years, and I’ve been switching roles in my carrer through design, product, testing and management - none of them sticked down to me, and over passage of time, I’ve noticed that I’m pretty stupid.

It’s a small (not even an intimate one) confession of software developer who have took his own way into a world of software and was self-thought without a guideance or mentoring, and it shows…

I’ve always been somewhat unable to solve mathematical equations and even the easiest Leetcode problems and formal specifications of computational problems were challenging to grasp for me. I’ve been doing what I could to follow through complex dependencies within codebases which pushed me toward software architecture, I’ve been pretty bad at reading code literally which pushed me towards thinking in abstractions rather than code.

When I’ve tried to learn programming I’ve disliked verbosity of C and decided to use a TypeScript which was a less shitty superset of JavaScript, althrough with time I’ve seen a spots for improvement and spark for new language. I’ve tried to learn Rust and Haskell as those languages had a lot of play with types.

I’ve not invented anything which haven’t been seen before and what I have been doing have been gluing things together and make sure they would work.

So what do I do about it?

I used simple programming language (TypeScript). I use a lot of types and abstractions to “navigate” through codebase which I may not understand fully. I avoid deep abstractions and always choose composition over inheritance or mixing.

I depend a lot on community and ecosystem of my programming language, and try to keep balance between external dependencies and using open code into my codebase. I design modules with clear APIs (by my own taste), and almost never extract them into microservices. I skipped the lessons about SQL and always been prefering ORMs and QBs rather than plain untyped queries which were not aware of their corectness relative to database schema. I apply basic resilience patterns like timeouts, circuit breakers, and backpressure.

I try to use as few software components as possible. Ideally, just the application itself which would be self-contained in executable binary. I solve deployments with set of basic shell scripts and containers when there’s a need to do such.

I’ve wanted and been struggling to figure out what programming languages are all about and have stayed at knowledge that code is parsed down to AST and then [___] by compiler into what I wanted.

I’ve built a software used by users which have served business (or myself) well.

So being stupid kind of worked out for me, at it’s own time.

← Back to blog