Sign in

Georg Unterholzner

@georg.dev
318 followers 384 following 179 posts

👨🏻‍💻 Software engineer @Dynatrace 🌐 Web dev and trained data scientist 🍜 Foodie | gym-goer | tech & gaming nerd 🇦🇹 Based in Vienna georg.dev

PostsRepliesMedia
Georg Unterholzner @georg.dev · 23/02/2026
Here's a glimpse of how software engineering is going to look soon. I wanted to spend more time with my newborn daughter and less time sitting in a terminal watching an AI type. So I built kipppunkt/build. Today I'm sharing it. github.com/kipppunkt/bu...
120
Georg Unterholzner @georg.dev · 02/02/2026
If you're building TUIs with Claude Code or similar AI agents, I made an agent skill for Ink. It organizes the docs so the agent can pull in only what it needs on demand, saving you lots of tokens.
github.com
GitHub - georg-unterholzner/ink-skill: Agent Skill for building CLI applications with Ink
Agent Skill for building CLI applications with Ink - georg-unterholzner/ink-skill
000
Georg Unterholzner @georg.dev · 09/01/2026
Five-minute timelapse shot on a Pixel 9 on my last day of vacation in South Tyrol, Italy. At some point in my life, I'll move back here, get myself the best telescope money can buy, and spend my evenings taking photos of galaxies and nebulas far away.
030
Georg Unterholzner @georg.dev · 16/12/2025
I interviewed someone for a dev position the other day. Remotely. Asked the candidate a very vague question. Got an extremely thorough answer. Really impressive. Left a weird aftertaste, though. I just typed the question into ChatGPT. Same answer 💀
000
Georg Unterholzner @georg.dev · 09/12/2025
It's kinda crazy how React went from "it's just a super lightweight rendering library, bro" to "whoopsie, our server-side execution layer's complex custom data-format serializer had a prototype-pollution bug and now it's a CVE-10 RCE."
100
Georg Unterholzner @georg.dev · 03/12/2025
AI-generated unit tests suck. Claude overshoots. GPT-5 is lazy af. No model has proper common sense. I tinkered around for a long time to get GitHub Copilot to actually work as expected. The result is this workflow.
110
Georg Unterholzner @georg.dev · 02/12/2025
@anthropic.com is acquiring @bun.sh. I didn't have that on my bingo card. www.anthropic.com/news/anthrop...
anthropic.com
Anthropic acquires Bun as Claude Code reaches $1B milestone
Anthropic is an AI safety and research company that's working to build reliable, interpretable, and steerable AI systems.
000
Georg Unterholzner @georg.dev · 18/11/2025
I wanted to announce a new blog article today. My blog runs on @cloudflare.social Pages. Good that I didn't.
020
Georg Unterholzner @georg.dev · 17/11/2025
You'd be mistaken if you thought pigeon droppings on the floor were just a random annoyance. Quite the opposite! They're a real-time heatmap showing you the probability of being hit by pigeon poop at any given spot. And you thought all that statistics knowledge was useless!
110
Georg Unterholzner @georg.dev · 13/11/2025
One killer use case for AI agents is making sense of minified JavaScript files. I just built a post-install script that monkey-patches a package I depend on. What would have easily taken me half a day was finished in under an hour.
000
Georg Unterholzner @georg.dev · 12/11/2025
Turns out my team and I are partially doing Angular ... again. Haven't touched the framework since v16. Feels like ages.
110
Reposted by Georg Unterholzner
Sarah Drasner @sarahedo.bsky.social · 06/11/2025
🛠️ If your team has issues to work through: We do an exercise at offsites called Elephants, Tigers & Paper Tigers. - Elephants are things that the group isn’t talking about but needs to - Tigers are things threatening the team, risks - Paper tigers are things that seem like risks, but aren’t
815926
Georg Unterholzner @georg.dev · 19/08/2025
Getting a full afternoon of uninterrupted coding is so nice. I don't get that often but today is one of those days. Feels great!
000
Georg Unterholzner @georg.dev · 18/08/2025
Sometimes programming just feels too much like Hänsel and Gretel.
const breadcrumbsForChildren = generateBreadcrumbs(children);
020
Georg Unterholzner @georg.dev · 13/08/2025
Basic question but I can't figure it out. How are these two design patterns called? In the first, the component structure is fixed, and behavior is controlled *only* through props serving as config. In the second, an extension point via the children prop allows for more flexibility.
Component structure is fixed, and behavior is controlled *only* through props serving as config.Extension point via the children prop allows for more flexibility.
100
Georg Unterholzner @georg.dev · 01/08/2025
Don't be like me. Don't sleep on @playwright.dev's test steps. It took me 4 years to realize how much cleaner, readable, and debuggable my tests could be. Named steps = better readability, clearer reporting, faster debugging. Check out the before/after!
Playwright: without stepsPlaywright: with steps
020
Georg Unterholzner @georg.dev · 30/07/2025
Some tools force you to learn a complicated API and require constant maintenance. Other tools... just work, and that's why it's easy to overlook them. @openfeature.dev is one of those tools. Do I use it daily? Yes. Do I ever have to think about it? No.
022
Georg Unterholzner @georg.dev · 28/07/2025
Finally moving all my pet projects off Travis CI. Not a fan of their expiring credits billing model. But where to migrate? - Circle CI - GitHub Actions - ...? What’s your pick?
000
Georg Unterholzner @georg.dev · 22/07/2025
I was frustrated with the lack of clear advice on setting up copilot_instructions.md. Most guides are vague, or worse, generic AI slop that *hurts* Copilot's performance. So I experimented and found better ways to make Copilot *actually helpful*. 🧵
122
Georg Unterholzner @georg.dev · 17/07/2025
Stack Overflow, are you alright?
000
Georg Unterholzner @georg.dev · 14/07/2025
Finally!! Grok 4 in GitHub Copilot.
010
Georg Unterholzner @georg.dev · 28/06/2025
Gen Alpha successfully rotted my brain. grid-template-columns: 1fr 2fr; now reads “one for real, two for realz.” My grid is aggressively verified. ✅
Post on X from @matthewcp:
"Is it? display: grid, grid-template-columns: 1fr 2fr; or whatever, that's what you need for typical flexbox usage."
100
Georg Unterholzner @georg.dev · 23/06/2025
Crazy idea to utilize the webcam input. Mind-blowing.
010
Georg Unterholzner @georg.dev · 12/06/2025
This year's Stack Overflow Developer Survey in a nutshell
A screenshot of a single choice question in the style of the StackOverflow developer survey with the following text:

"What will you do next once AI has replaced you as a programmer, life partner, and parent?

- Cry
- Become a goose farmer
- Pray to the AI overlords
- Take out your rage as a StackOverflow moderator"
010
Georg Unterholzner @georg.dev · 11/06/2025
Large Language Models (LLMs) with "reasoning" capabilities are super hyped, but new research from Apple shows their "thinking" is often an illusion. Beyond a certain complexity, they fail completely. Key points in the 🧵.
Graph showing LLM accuracy vs. task complexity: Standard (non-reasoning) models perform as good as reasoning models at low complexity (but use fewer tokens). Reasoning models excel at mid-complexity. Both fail catastrophically beyond a threshold, with reasoning models showing abruptly shorter traces.
120
Georg Unterholzner @georg.dev · 03/06/2025
To all GitHub Copilot users: What are your most-used features and shortcuts? Inline chat? Agent mode? Just the autocomplete? 🤔
200
Georg Unterholzner @georg.dev · 27/05/2025
Austria is outrageously beautiful.
031
Georg Unterholzner @georg.dev · 18/04/2025
my experience with firebase studio so far 😐
Screenshot of the Firebase Studio AI assistant offering help to fix an error it created
010
Georg Unterholzner @georg.dev · 01/04/2025
rate my setup :)
A monitor and a laptop on a balcony overlooking the South Tyrolean landscape.
140
Georg Unterholzner @georg.dev · 19/03/2025
My learning for that day: the final solution was to use the render props pattern. Kudos to @bhuynh.dev and @taranetz.com for pointing that out. We can even take a step further by leveraging React's `isValidElement` function to support both render props and a standard child component.
import { isValidElement, ReactElement } from 'react';


interface WrapperProps {
  children: ReactElement | ((props: { text: string }) => ReactElement)
}

const MyWrapper = ({ children }: WrapperProps): React.ReactElement => {
  const isRenderFunction = !isValidElement(children);

  return isRenderFunction ? children({ text: 'As render function.' }) : children;
}


export default function App() {
  return (
    <>
      <MyWrapper>
        {(props) => <span>{props.text}</span>}
      </MyWrapper>
      <MyWrapper>
        <span>As normal child.</span>
      </MyWrapper>
    </>
  );
}

// renders to: "As render function.As normal child."
140
Reposted by Georg Unterholzner
Sarah Drasner @sarahedo.bsky.social · 18/03/2025
I have a passive theory that the manner in which junior and senior devs leverage AI assistance for coding is fundamentally different: (1/?)
1013519
Georg Unterholzner @georg.dev · 11/03/2025
They just 10x-ed #typescript!! This is huge! Here's why 👇
230
Georg Unterholzner @georg.dev · 08/03/2025
Life hack: you don't have to worry that someone could replace you with AI, if you replace yourself with AI.
Roll safe meme. Guy tapping his head.
020
Georg Unterholzner @georg.dev · 07/03/2025
Goodbye bash! 👋 After 10+ years of using only bash on #Linux, I think it's time to try something new. What's *your* favorite shell?
300
Georg Unterholzner @georg.dev · 05/03/2025
Would love to hear the perspective of any #React / #ReactJS experts on this topic.
000
Georg Unterholzner @georg.dev · 05/03/2025
React: passing state from a wrapper component to a child. How? I'm building a library that exposes a single wrapper component. Users of this library add the wrapper to their TSX and nest their child component inside it. The wrapper fetches some data that's relevant to the child component.
Code snippet with the following code:

const UserDefinedParentComponent = () => (
  <MyWrapper> {/* I need to get state from here ... */}
    <UserDefinedChildComponent /> {/* ... to here. */}
  </MyWrapper>
);
310
Georg Unterholzner @georg.dev · 28/02/2025
If I got a passing unit test every time I mistyped 'just' as 'jest,' I would be a farmer now.
000
Georg Unterholzner @georg.dev · 26/02/2025
Which of these JavaScript libraries has the highest number of npm dependents? - zod - codelyzer - anakjalanan - jsdoc You **will** guess incorrectly. (Answer in the comments) 👇
230
Georg Unterholzner @georg.dev · 21/02/2025
Say what you want but Deepseek R1 still wins the vibe check for me.
010
Georg Unterholzner @georg.dev · 13/02/2025
I finally found some time to dig into the new State of React 2024 results. Here are the key findings. 👇
Logo of the State of React 2024 survey.
100
Georg Unterholzner @georg.dev · 07/02/2025
Why are you still using moment.js?
Graph: moment vs dayjs NPM downloads (5 years), showing dayjs rising to match moment's popularity. Below a table showing the much smaller bundle size of dayjs.
100
Georg Unterholzner @georg.dev · 27/01/2025
Goodbye, GitHub Copilot. Just canceled my subscription. I really wished it was worth the money, but nope.
130
Reposted by Georg Unterholzner
React Vienna @reactvienna.bsky.social · 16/01/2025
🎊 Happy new year - let’s kick it off with the January edition of the React Vienna Meetup: 🗓️ January 28, 18:00 CET 📍Dynatrace, Wiedner Gürtel 13, 1100 Vienna 💬 Server-side tracking in Next.js using Snowplow by Daria Lyubaeva 💬 How to show 10 million of something by @ccccjjjjeeee.bsky.social
meetup.com
React January Meetup, Tue, Jan 28, 2025, 6:00 PM | Meetup
**=== Talks ===** **Server-side tracking in Next.js using Snowplow** by Daria Lyubaeva https://www.linkedin.com/in/daria-lyubaeva/ **How to show 10 million of something**
185
Georg Unterholzner @georg.dev · 14/01/2025
What a beautiful sunset after a week of overcast skies! Taken at the gorgeous #Dynatrace office in #Vienna / #Wien.
View over Vienna during sunsetSunset view of Vienna
030
Georg Unterholzner @georg.dev · 07/01/2025
Me coming back to work today and remembering the bug I was supposed to fix before vacation.
050
Georg Unterholzner @georg.dev · 17/12/2024
State of JS 2024 results just dropped. Here are the most surprising findings. 👇
1164
Georg Unterholzner @georg.dev · 16/12/2024
I tried relying heavily on AI assistants (Claude, ChatGPT, GitHub Copilot) for my latest hobby project, but almost every interaction ended with me thinking, "Screw this, I'll write it myself." For those of you who swear by these tools, what am I missing? How do you actually make them useful?
372
Georg Unterholzner @georg.dev · 06/12/2024
The release of React 19 might cause you some headaches, if you're a web component creator who happens to name their component events in camelCase (instead of kebab-case as per convention). Let me explain:
Code snippet with the following JSX code:

```
// ✅ this will work
<my-camera-web-component onimage-capture={handleImageCapture} />

// ❌ this won't
<my-camera-web-component onimageCapture={handleImageCapture} />
```
150
Georg Unterholzner @georg.dev · 05/12/2024
My fellow web developers, where do you stand on this? When passing props from a parent to a child component/function, do you prefer: 1. Passing the object (reference) 2. Passing only the specific values needed?
330
Georg Unterholzner @georg.dev · 04/12/2024
If you're in Vienna and free tonight, I'll be giving a talk at the #freeCodeCamp meetup about JavaScript UI frameworks: what each one of them offers and how to boost your chances of landing a web dev job. See you there! www.meetup.com/fccvienna/ev...
meetup.com
freeCodeCamp Vienna December Meetup, Wed, Dec 4, 2024, 6:00 PM | Meetup
Let's do one more meetup this year before the festive season. Everyone is welcome here! If you're a beginner programmer, this is the meetup for you. If you're an expert, t
050