John Oerter Profile Banner
John Oerter Profile
John Oerter

@joerter10

Followers
520
Following
527
Media
37
Statuses
1,806

Friendly lead software engineer sharing high-value coding thoughts and insights

Joined May 2023
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@joerter10
John Oerter
5 months
Functional programming has eaten software development Pure functions, immutable data, first-class functions, declarative code These are all ideas that are now either a best practice in your language, or been adopted outright
19
12
112
@joerter10
John Oerter
5 months
@dhh To be fair, you can use TS happily without creating something like this
12
5
432
@joerter10
John Oerter
4 months
@webdevcody The common pattern here is that new tech and ideas get overhyped and overused in situations they weren't designed for
2
2
166
@joerter10
John Oerter
6 months
@JamesIvings I believe the core problem they’re solving is tab hoarding. It’s made me feel much more focused
4
2
159
@joerter10
John Oerter
5 months
@anammostarac So glad I’m not on TikTok Getting a degree does not entitle you to a high paying job. It never has. You need to bring the skill on top of it
6
2
134
@joerter10
John Oerter
6 months
@kettanaito The competition provided by Bun and others has led to the recent feature packed node releases Even if I never actually use Bun in production, I’m thankful for how they’ve pushed the ecosystem forward - VC backed or not
1
3
112
@joerter10
John Oerter
5 months
@levelsio I’m not European and have spent little time in Europe. But my feeling is that culture plays the biggest role Entrepreneurship and risk taking is less common in the Midwest US because of a more risk adverse culture. I wonder if it’s similar in Europe
5
0
72
@joerter10
John Oerter
6 months
@brotzky_ Use it everyday and loving it so far. Once you adopt it’s workflow, it’s great
1
0
69
@joerter10
John Oerter
3 months
@danielcranney @polotek I believe the reason it seems difficult is too many beginners are lead straight down the framework path and therefore skip learning the building blocks of JS, CSS, and HTML or even lower level CS concepts
5
1
48
@joerter10
John Oerter
6 months
@davefarley77 Taking criticism of code personally instead of looking at it objectively
2
1
45
@joerter10
John Oerter
6 months
@aliniikk In one way I would be happy if a position I applied for used this. It’d be a great early signal the company isn’t a fit for me
0
0
45
@joerter10
John Oerter
4 months
@kettanaito Give emmet a try. You could do this by using its wrap with tag feature
2
0
42
@joerter10
John Oerter
5 months
@ThePrimeagen C# is so much better than Java ever could be
0
0
32
@joerter10
John Oerter
4 months
@dhh It's a bit like exchanging linux admin skills for AWS service integration skills
0
1
30
@joerter10
John Oerter
5 months
I ❤️ CSS (Chicken Salad Sandwiches)
16
0
29
@joerter10
John Oerter
5 months
@MaxPrilutskiy Vite is the natural successor to create-react-app. That would be the easiest migration for you
1
0
29
@joerter10
John Oerter
5 months
If you really understand the current relationship between React Router and Remix, you know this isn’t a big deal
@kentcdodds
Kent C. Dodds 🌌
5 months
People are overreacting to the Remix React Router merge.
51
14
419
1
1
17
@joerter10
John Oerter
4 months
@housecor Asking questions is hands down the best way to deal with this attitude People will often talk themselves into a knot if you let them
0
0
15
@joerter10
John Oerter
5 months
Advice to junior web devs: take time to learn some basic Linux administration skills Instead of Vercel, Netlify, etc for your next side project, go to Digital Ocean or another VPS provider Manually setting up the web server, database, ssl certs, CI/CD can be time consuming, but
4
1
15
@joerter10
John Oerter
5 months
@thdxr The JS culture has never embraced monolithic frameworks because it evolved in the browser
1
0
14
@joerter10
John Oerter
1 year
@schicknickshow Can't wait for the premier of Schick and Nick Junior on Hurrdat Kids
3
1
14
@joerter10
John Oerter
6 months
@DanielW_Kiwi What is this, Runescape in 2004?
2
0
14
@joerter10
John Oerter
1 year
The DX of @SST_dev is immaculate
1
1
14
@joerter10
John Oerter
6 months
@maybe_riya That annoying error you can’t figure out and has you blocked all day
1
0
14
@joerter10
John Oerter
3 months
@kettanaito This is a much different world than 5 or 10 years ago. Companies need to maximize their ROI immediately and can’t afford to take chances to skill up like they once could
4
0
14
@joerter10
John Oerter
6 months
UX is downstream of DX A poor developer experience in language, local environment, CI, testing, deployments, etc will lead to poor products Therefore, invest in your team’s tooling and processes because any efficiency gained will create a better experience for the end user
3
0
11
@joerter10
John Oerter
3 months
Please stop using “I’m an introvert” as an excuse for not practicing pair programming You don’t like pair programming because of comfort, social anxieties, or a misunderstanding of productivity and collaboration These are not the same thing as being introverted
5
2
11
@joerter10
John Oerter
5 months
Thinking about a stage between junior and senior dev I'm calling the "zealot stage" This is a phase where devs have enough knowledge to understand the value of new ideas and patterns, but lack the experience to apply them with nuance This untempered enthusiasm leads to
6
0
11
@joerter10
John Oerter
6 months
@pashynnyk @kettanaito 💯 Kudos to the bun team for seeing an opportunity and executing on it thus far. We'll see how successful they are in the future, but you can't say for certain that their efforts would've been better spent contributing to Node directly
2
0
11
@joerter10
John Oerter
4 months
@housecor I'm glad Vite is still popular. SPAs will continue to have their place even as SSR and RSCs become more and more popular
0
0
11
@joerter10
John Oerter
5 months
@Albertttoasg Interacting on this app! I’ve been a silent lurker for years
1
0
10
@joerter10
John Oerter
6 months
Having just looked briefly at @EffectTS_ , it looks like something I would strongly consider for a new back-end TS project My only concern right now would be the surface area of the API. Any app built with Effect would be very sensitive to future breaking changes
3
0
11
@joerter10
John Oerter
6 months
@adamstern_ @browsercompany @nathantannar4 Oh man the Netscape themed one is sick
0
0
10
@joerter10
John Oerter
5 months
@davidnix_ It’s almost like a version of hazing or initiation “I had to go through this so everyone else should too” It takes some independent, critical thinking to break the cycle - something our education system doesn’t encourage
1
0
10
@joerter10
John Oerter
4 months
There’s nothing better than rolling out big features or migrations to your product without a single support issue!
5
0
10
@joerter10
John Oerter
5 months
All languages have foot-guns and features that can be used in “clever” ways to create unmaintainable code We should call out those uses specifically instead of blaming the language
@dhh
DHH
5 months
Never seen a better ad for ditching TypeScript. You don't have to live like this!!
196
158
2K
2
0
10
@joerter10
John Oerter
5 months
@adamdotdev I often think about my ancestors and what they had to do for a living vs what I do. It’s quite humbling
0
0
9
@joerter10
John Oerter
5 months
@joshm This is art
0
0
9
@joerter10
John Oerter
5 months
@aaryandw @ImSh4yy Immediately need an eye appointment after this one
0
0
5
@joerter10
John Oerter
5 months
@dhh Do you still see value in specialists when a project reaches a certain scale?
2
0
8
@joerter10
John Oerter
3 months
@kettanaito I agree with you to a certain extent. The long term thinking is simply not there for most companies
0
0
8
@joerter10
John Oerter
5 months
@vponamariov Man, I miss forums so much
2
0
8
@joerter10
John Oerter
5 months
@SergioRocks I think the standard practices of code reviews and automated tests still apply here
0
1
8
@joerter10
John Oerter
5 months
I find it more difficult to remember points from remote meetings vs in person meetings I’m not psychologist, but it must have something to do with being in a physical space with your coworkers I wonder if VR meetings will help with this when they become mainstream
5
0
8
@joerter10
John Oerter
5 months
@housecor Funny how when SPAs first came on the scene they were seen as being overly complex Now they are the simple option
1
0
7
@joerter10
John Oerter
5 months
@janetacarr @t3dotgg Enjoy delving into the world of words ChatGPT doesn’t know
1
0
7
@joerter10
John Oerter
6 months
@MasterShifuu18 Software development is a unique career because it’s a hobby and career for many devs
3
0
7
@joerter10
John Oerter
5 months
In React, avoid passing boolean props that determine child component behavior Instead, pass event handlers that allow the parent component to handle the event accordingly
4
0
6
@joerter10
John Oerter
4 months
Learning Clojure's (or similar) functional approach reshapes thinking: - View code as data streams - Focus on transforming immutable collections - Embrace pure functions Result: Cleaner, more comprehensible code that's easier to reason about. Applicable to almost any language!
1
1
6
@joerter10
John Oerter
4 months
You’re reviewing a PR in a TypeScript project and you see a plain for loop instead of forEach, map, reduce, etc. Do you leave a comment or leave as is?
10
0
7
@joerter10
John Oerter
3 months
@schicknickshow Great episode! Gotta admit I was confused when Schick said he’s had up to 6 Doug’s living with him though
0
1
7
@joerter10
John Oerter
4 months
There are two types of people Those that take charge and make their own reality happen And those that just sit back and complain about the reality others have made
2
0
7
@joerter10
John Oerter
6 months
@Cennydavidsson I feel so content when writing Clojure because of things like this
1
0
6
@joerter10
John Oerter
5 months
@wesbos I think the lesson is that we as tech twitter should not post pictures of daily life things
1
0
7
@joerter10
John Oerter
6 months
The UX of @todoist has made for such an improvement to my productivity that I was happy to buy an annual plan today. It's replaced both Reminders and Notion for ideas and daily todos
3
0
7
@joerter10
John Oerter
5 months
I’m realizing lately that I actually like dealing with legacy code There’s something satisfying about refactoring, adding tests, and incrementally decrementing old features
3
0
7
@joerter10
John Oerter
3 months
@housecor Feasibility of this would be difficult, but some kind of automatic "merge" capability reminiscent of git would be neat If the two changes can both be applied without conflict, then take them both, otherwise, deny with the conflict
4
0
7
@joerter10
John Oerter
5 months
@housecor 💯 I ask similar questions when deciding to bring in a new dependency via npm
0
0
6
@joerter10
John Oerter
4 months
Skip all the certifications and bloated frameworks and just do this
@unclebobmartin
Uncle Bob Martin
4 months
Honestly. The Agile methods can be boiled down to this: 1. Work in short cycles. 2. Measure what happens. 3. Adapt. If you don't find story points helpful, don't use story points. If daily scrums are getting in the way, don't do daily scrums. If the cycle is too long, shorten
94
285
2K
2
1
7
@joerter10
John Oerter
3 months
What is your primary motivation in work? 1. The mission of the company/product 2. Solving interesting technical challenges 3. Earning a salary
4
0
7
@joerter10
John Oerter
5 months
@TkDodo Yes optimistic updates are very difficult to get right except for very simple operations
0
0
7
@joerter10
John Oerter
5 months
How did I just discover GitHub has a command palette and it’s pretty dang good
2
0
7
@joerter10
John Oerter
6 months
@housecor I think it depends largely on architecture and size of the company/team A purely server rendered app has no need for an extra layer In large companies, abstracting data access into a managed API is a good practice
0
0
7
@joerter10
John Oerter
5 months
Do you make a high level todo list when coding a new feature? TDD is essentially a todo list that enforces you accomplished the task
1
0
6
@joerter10
John Oerter
4 months
I’ve found the same. React testing library makes things easier, but it’s really hard to debug without a visual
@housecor
Cory House
4 months
I rarely use Jest or Vitest for UI testing anymore. Here's why: Testing in a real browser using Playwright or Cypress gives me more confidence, more power, and a better DX. Testing UI components via Jest or Vitest tends to lead to duplicated effort, because I still need to
54
44
678
0
0
6
@joerter10
John Oerter
4 months
Doing competitive research by inspecting competitors apps: Using Bootstrap classes still -> Don't even worry about them Evidence of redux usage -> Their codebase is probably some over engineered mess HTMX attributes -> Look out, they are kicking our butt
2
0
6
@joerter10
John Oerter
5 months
@ovstoica And you can just as easily ignore the JS churn entirely!
0
0
6
@joerter10
John Oerter
5 months
@antalova_janka Wow way to dodge a bullet on that one. It would be nice if these companies were more up front about their process
2
0
6
@joerter10
John Oerter
6 months
@antalova_janka That’s tough but don’t be too hard on yourself. Learn the lessons you need to learn and move on. You most likely wouldn’t have enjoyed working there anyways based on that behavior
3
0
5
@joerter10
John Oerter
5 months
@Alennushkaa A very unauthentic way to build followers that doesn’t work in the long run
1
0
6
@joerter10
John Oerter
4 months
Just remember, today’s shiny new project is tomorrow’s legacy code Unless you consider testing, DX, and dependency management from the beginning
3
0
6
@joerter10
John Oerter
5 months
This may be my favorite way to interact with AI yet
@joshm
Josh Miller
5 months
Our vision for how AI can enhance the human experience through access to the knowledge of humanity in service of bringing self-actualization (wait for it...)
64
83
1K
0
0
6
@joerter10
John Oerter
5 months
Fantastic advice. Think about yourself as a business providing services to your employer even when you’re an employee
@unclebobmartin
Uncle Bob Martin
5 months
@ThePrimeagen Never let your employers lead your career. Learn things that your employers will need next year and then lead your employers to them.
10
17
204
3
0
6
@joerter10
John Oerter
5 months
vscode - download and be productive vim and emacs - requires time and customization to be productive That sounds like a clear win for vscode, but I think it's a loss because it discourages devs from getting to know their tools on a deep level
5
0
6
@joerter10
John Oerter
3 months
@housecor I think setting up teams this way is one I’d the best ways to ensure buggy apps with poor performance. But if it can’t be avoided your other solutions can help
0
0
6
@joerter10
John Oerter
3 months
The most challenging aspect of technical leadership is staying on top of all the initiatives your team has underway Making solid decisions requires deep understanding which gets harder to obtain the more spread out the efforts become
1
0
5
@joerter10
John Oerter
5 months
@tannerlinsley Kinda coming around to this opinion too. An opinionated and standard file structure is a good thing
0
0
4
@joerter10
John Oerter
4 months
@dhh @1Password I would still recommend 1P and others to avoid lock-in, but if this causes more people to start managing their passwords better, I'm all for it
1
0
5
@joerter10
John Oerter
5 months
Until further notice, I refuse to believe any narrative that significant developer layoffs are caused directly by AI It makes no sense based on the current capabilities of the tech
@zerohedge
zerohedge
5 months
BP NEEDS 70% FEWER THIRD-PARTY CODERS BECAUSE OF AI: CEO Highest paid jobs about to be hit with a neutron bomb
180
663
4K
1
0
5
@joerter10
John Oerter
5 months
@remix_run Fascinating! I gotta say I thought it would be the other way around, but after reading the article, it makes sense
1
1
5
@joerter10
John Oerter
6 months
@unclebobmartin Tests are valid and useful even during prototyping What are you using for graphics? Is it web-based?
1
1
5
@joerter10
John Oerter
5 months
A common mistake devs make is expecting unfamiliar tech X to behave like familiar tech Y and then getting frustrated with Y The true pitfall is when you bend Y to behave more like X instead of taking the time to understand Y and embracing the features that make it powerful
2
0
5
@joerter10
John Oerter
5 months
@ziademarcus This is potentially dangerous advice. It’s hard to fix a bad first impression
0
0
5
@joerter10
John Oerter
5 months
I realized today watching the Apple Event that I’ve never owned a tablet I’ve had a Kindle for a long time, but never an iPad or Android tablet What am I missing out on?
3
0
5
@joerter10
John Oerter
6 months
@Steve8708 Naming is one of the hardest things in programming. Types force you to create a lot more names than in a dynamic language
3
0
5
@joerter10
John Oerter
6 months
Instagram must be listening on my microphone. I was just telling a friend the other day how badly I need a new drinking fountain bottle refiller 😂
Tweet media one
3
0
5
@joerter10
John Oerter
5 months
@housecor Bingo. Monolithic hooks just make the situation worse
0
0
4
@joerter10
John Oerter
5 months
@AwayCaludio @dhh The unfortunate reality of Twitter
0
0
5
@joerter10
John Oerter
4 months
When I first graduated college, I thought I would eventually return for an MBA or computer science master’s degree Now, I can’t think of a better waste of time and money 😂
2
0
4
@joerter10
John Oerter
5 months
That “honeymoon stage” time of a new greenfield project is the best Everything is new and fresh and you haven’t created an unmaintainable mess yet
1
0
5
@joerter10
John Oerter
3 months
Often our own incompetence is often a bigger threat than actual threat actors
3
0
4
@joerter10
John Oerter
5 months
@devatTheCave People think that coding is all about dealing with computers, when it is just as much about humans as any other profession The days of the isolated genius coder are long gone
2
0
5
@joerter10
John Oerter
5 months
@kelseyhightower Bingo. That’s why this and similar efforts are just vote buying
1
0
5
@joerter10
John Oerter
6 months
@housecor The only thing about auto-format is sometimes I work in codebases without it, and that causes some challenging diffs
1
0
5
@joerter10
John Oerter
4 months
@VicVijayakumar Ideally, CS degrees would be for people wanting to go into academia Then SWE could be taught through trade schools and apprenticeships
0
0
4
@joerter10
John Oerter
5 months
@levelsio Very true! Regulation plays a big part in shaping the culture
1
0
4
@joerter10
John Oerter
5 months
@davefarley77 Hater Magnet Development
0
0
5
@joerter10
John Oerter
5 months
GitHub Copilot Copilot+ PCs Copilot in Windows These are all different products Tech product naming makes me feel better about my own variable names
2
0
5
@joerter10
John Oerter
4 months
I understand that the whole point of RSCs is to dissolve the network barrier between FE and BE My biggest question right now (haven't actually built anything with them yet, so could be wrong) is does this make debugging more confusing? Will it be hard to decipher what the
3
0
5
@joerter10
John Oerter
4 months
Which do you prefer and why?
Tweet media one
5
0
5