Sign in

Ken Kocienda

@kocienda.bsky.social
1.5K followers 72 following 137 posts

Working on new projects. Past: Founder at Infactory, 15 years at , inventor of iPhone autocorrect, author of “Creative Selection”.

PostsRepliesMedia
Ken Kocienda @kocienda.bsky.social · 30/01/2026
Using AI assistants with a simple prompt is like standing in front of 3rd graders and saying, “Let’s do an art project!” You have *no idea* what you’re going to get, other than boundless enthusiasm. Results will be all over the place.
020
Ken Kocienda @kocienda.bsky.social · 28/01/2026
I want an anti-microwave on my kitchen counter where I can put things in, press a button, and *zap* things get colder.
150
Ken Kocienda @kocienda.bsky.social · 28/01/2026
How do you know when you’re done with a project? If the project is good, the answer is: never. The best projects are idea factories. There’s always a next step.
000
Ken Kocienda @kocienda.bsky.social · 23/01/2026
If your goal is to produce some particular end product—a website, an app, an open-source project on GitHub—the sooner you can make it look like that end product, the better. With AI, it's never been easier. Get an idea. Sketch with AI. Make a demo! 🧐💡🛠 tugtool.dev/journal/get-...
tugtool.dev
Get an idea. Sketch with AI. Make a demo.
Turning an abstract idea into a concrete demo has never been easier
011
Ken Kocienda @kocienda.bsky.social · 22/01/2026
“when working with AI, say precisely what you want to get exactly what you want” 👆 This idea came to me yesterday as I was thinking about how I collaborate with AI coding assistants, why I find myself so much more productive when working with them. tugtool.dev/journal/say-...
tugtool.dev
Say Precisely To Get Exactly
As a developer, I still need to say what I want... but now in prose rather than code
000
Ken Kocienda @kocienda.bsky.social · 22/01/2026
When I get a new idea, my adversary is the blank page, the empty file. So I get started. I put something down. Even if it’s bad. That’s OK. I can begin fixing it.
060
Ken Kocienda @kocienda.bsky.social · 21/01/2026
when working with AI, say precisely what you want to get *exactly* what you want
010
Ken Kocienda @kocienda.bsky.social · 21/01/2026
I really like writing software. I can do it all day long. And so I do.
010
Ken Kocienda @kocienda.bsky.social · 21/01/2026
These days, I'm working by myself... in the traditional sense. I don't have human teammates—but I *am* collaborating all the time with AI coding assistants. These models are not people. Yet, to get the best results out of them, I need to use *people manager* skills. tugtool.dev/journal/im-a...
tugtool.dev
I’m An AI Manager
Working with AI isn't like working with humans, except when it is
010
Ken Kocienda @kocienda.bsky.social · 20/01/2026
Look where I am! Don’t get any ideas though. Just visiting a friend.
070
Ken Kocienda @kocienda.bsky.social · 19/01/2026
A great part of working at Apple when I did was that I absolutely wanted the products we were making. I always loved the Mac. Joining that first iPhone team was a dream. I *so wanted* that gadget! Now I’m working on a personal project. I’m focused on capturing that feeling. So far, so good.
030
Ken Kocienda @kocienda.bsky.social · 19/01/2026
good projects spawn side projects
000
Ken Kocienda @kocienda.bsky.social · 19/01/2026
Do “real programmers” use AI to write code? I think so! tugtool.dev/journal/real...
tugtool.dev
Real Programmers
The Story of Mel, a Real Programmer (updated for AI)
000
Ken Kocienda @kocienda.bsky.social · 18/01/2026
My wife just turned this up this photo while going through some old boxes. Yes, that's me. Heh. I’ve been working with computers for a long time. Circa 1995?
020
Ken Kocienda @kocienda.bsky.social · 18/01/2026
Starting a software project involves so many things that have to get done before getting down to the actual work of developing the code itself: defining the scope and audience, coming up with good names… and putting up a website. I wrote a post on how I set up mine. tugtool.dev/journal/the-...
tugtool.dev
The Site Meta-Project
A story about making this website
110
Ken Kocienda @kocienda.bsky.social · 17/01/2026
I’ve started a new project. It’s called Tug. The aim is to deliver better refactoring for AI coding assistants. It’s open-source, and I’ll be discussing all the work with lots of journal posts as I go. Hooray for new beginnings! tugtool.dev
tugtool.dev
TUG: Code refactoring for AI assistants
Code refactoring for AI
010
Ken Kocienda @kocienda.bsky.social · 25/06/2025
Over the last year or so, I’ve made the biggest-ever change to the way I write software. I now code with AI assistance all the time. Here’s why. Here’s how. kocienda.micro.blog/2025/06/25/c...
110
Ken Kocienda @kocienda.bsky.social · 21/04/2025
We’ve been making great progress at Infactory, the company I co-founded last year. We help developers build natural language APIs over structured data: connect data sources, build query programs, and deploy them as REST endpoints. infactory.ai/developers
infactory.ai
Infactory AI
Infactory empowers enterprises to build trustworthy AI assistants, agents, and search tools. The Infactory platform connects your data sources, generates accurate queries, and gives enterprises comple...
140
Reposted by Ken Kocienda
Julien Dorra @juliendorra.com · 09/04/2025
How do you solve a design challenge full of unknown unknowns? Jump back to 2005 and try the Blob Keyboard, @kocienda.bsky.social's first working prototype for the iPhone keyboard, created during a UX crisis.
162
Ken Kocienda @kocienda.bsky.social · 30/03/2025
A robot garbage man who was never programmed to dream but does so anyway. #gpt4o
140
Ken Kocienda @kocienda.bsky.social · 29/03/2025
When I add big new features to code, I hack away wildly in my work branch. I'll often break other features. I don't care. I just want to see the new feature ASAP. Once I have that, I usually find it pretty easy to go back, fix any breakages, and neaten things up.
020
Ken Kocienda @kocienda.bsky.social · 26/03/2025
There are “Esperanto” ideas, proposals which sound great, but are complex and impractical, and so they never take off. There also are “tweet” ideas, trivial things which don’t seem to do much at all, but are simple and appealing to everyone, and so they spread everywhere.
261
Ken Kocienda @kocienda.bsky.social · 22/03/2025
I’ve been doing a bunch of coding over the past few days with claude-3.7-sonnet MAX in Agent mode in Cursor. It’s been amazing. It’s like having a junior dev who works fast, knows a lot for its experience level, gets a lot right (and a lot wrong too), but is always willing to go back and try again.
151
Ken Kocienda @kocienda.bsky.social · 05/02/2025
I’m proud to have started Infactory with Brooke, and I think we’re making great progress, but I know it’s rarely easy for her. Let her tell you. www.linkedin.com/posts/abhart...
linkedin.com
Brooke Hartley Moy on LinkedIn: #womenintech #startuplife #motherhood #femalefounders
To my son: I'm building this company for you. But some days, that means building it instead of being with you. The startup world loves to talk about juggling…
120
Ken Kocienda @kocienda.bsky.social · 27/01/2025
I haven't written software for Apple platforms since 2020, but over the last few days, I've been working on an iOS demo app for a prospective customer. In an Xcode log message, I was unexpectedly greeted by an old friend: UIKeyboardLayoutStar. I wrote the first version of that class back in ~2008.
1110
Ken Kocienda @kocienda.bsky.social · 30/12/2024
I have a “software mindset”. When I think about ideas or look at systems, I imagine the abstractions, data, and algorithms I would need to write a relevant program, either to examine a topic, simulate a real-world thing, or actually implement some working code.
130
Ken Kocienda @kocienda.bsky.social · 29/12/2024
no ulus for you
030
Ken Kocienda @kocienda.bsky.social · 29/12/2024
It’s 6:30 AM. In my favorite Hawaiian spot. Already finished a leisurely breakfast. Beautiful view of the surf. Laptop opened. A wonderful day ahead of programming ahead of me, since that’s what I like to do best.
190
Ken Kocienda @kocienda.bsky.social · 26/12/2024
I do a lot of python programming these days, and sadly, there’s no consistency anywhere. Let’s take just one example, is it: len(foo), foo.len, foo.length, foo.len(), or foo.length()? I never know.
250
Ken Kocienda @kocienda.bsky.social · 26/12/2024
I enjoyed every day I worked with Apple ObjC frameworks. Once you learned the naming conventions, you could guess names even in new frameworks. It made it easy to think in that code.
0110
Ken Kocienda @kocienda.bsky.social · 25/12/2024
Delicious!
070
Ken Kocienda @kocienda.bsky.social · 24/12/2024
Merry Christmas to my internet friends. 🎄
2120
Ken Kocienda @kocienda.bsky.social · 23/12/2024
There’s a fine line between software that’s supple and helpful without getting in your way and guessing wrong all the time, but great software comes along with you for the ride, and makes the ride a pleasure.
040
Ken Kocienda @kocienda.bsky.social · 23/12/2024
We can, and probably should, take it for granted that all decent software gets the algorithms right. Getting the heuristics right is what makes software excellent. I wrote this about heuristics in my book.
080
Ken Kocienda @kocienda.bsky.social · 23/12/2024
We applied Postel’s Law throughout the software for the first iPhone, and we described the concept in the ’949 patent under this title: Touch screen device, method, and graphical user interface for determining commands by applying heuristics. patents.google.com/patent/US747...
patents.google.com
US7479949B2 - Touch screen device, method, and graphical user interface for determining commands by applying heuristics - Google Patents
A computer-implemented method for use in conjunction with a computing device with a touch screen display comprises: detecting one or more finger contacts with the touch screen display, applying one or...
050
Ken Kocienda @kocienda.bsky.social · 23/12/2024
The best software gives what you want, not necessarily what you did. This is a corollary of the more general Robustness Principle, which I always refer to as Postel’s Law: “Be conservative in what you do, be liberal in what you accept from others.” en.wikipedia.org/wiki/Robustn...
en.wikipedia.org
Robustness principle - Wikipedia
070
Ken Kocienda @kocienda.bsky.social · 17/12/2024
proud to be the first follower of @jeangordonkocienda.bsky.social, the best person I know ❤️
230
Reposted by Ken Kocienda
infactory.bsky.social @infactory.bsky.social · 17/12/2024
Pt 2 of @kocienda.bsky.social's podcast with Jerry Cuomo is here! Hear all about Ken's journey after Apple, thoughts on AI, & what he's up to now at Infactory www.youtube.com/watch?v=t-s_...
youtube.com
The Man Behind Autocorrect - Part Two
YouTube video by Jerry Cuomo
001
Ken Kocienda @kocienda.bsky.social · 16/12/2024
Two rules of software: 1. Add a level of indirection if the code doesn't do what you want. 2. If that didn't work, goto 1.
020
Ken Kocienda @kocienda.bsky.social · 11/12/2024
I was on the Wild Ducks podcast with Jerry Cuomo talking about Apple and autocorrect. A fun conversation. Future episode on Infactory (my company) and AI will drop soon. open.spotify.com/episode/3IH8...
open.spotify.com
The Man Behind Autocorrect - Part One
131
Ken Kocienda @kocienda.bsky.social · 09/12/2024
Waymo is still super cool every time. Feels like magic.
030
Ken Kocienda @kocienda.bsky.social · 09/12/2024
on this day in 1968! so good. en.wikipedia.org/wiki/The_Mot...
en.wikipedia.org
The Mother of All Demos - Wikipedia
062
Ken Kocienda @kocienda.bsky.social · 09/12/2024
We’ve kept the Rancor out in the living room ever since. Around Christmas time, he gets a hat. Rancor Claus! He thinks you look delicious.
030
Ken Kocienda @kocienda.bsky.social · 09/12/2024
In 2009, I bought this Rancor toy. We had this gingerbread house building contest, and I decided to make a monster movie tableau. I thought it came out great! I made a 1950s style monster movie poster for it too! I didn’t win. 😅
020
Ken Kocienda @kocienda.bsky.social · 09/12/2024
At Apple, I wrote a little declarative language to describe different keyboard layouts. It handled geometry, keyplanes, key actions, graphics, colors, etc. It was cool. I called it KBStar. I wonder if they still use it?
150
Ken Kocienda @kocienda.bsky.social · 09/12/2024
Of course, LLMs make this possible in a way that I didn’t think I would see in my lifetime. And while talking to the computer in English in amazing, and is a big part of what we’re trying to accomplish at Infactory (the company I started earlier this year), that’s not the same as programming.
030
Ken Kocienda @kocienda.bsky.social · 09/12/2024
I’ve always loved writing little domain-specific computer languages. It’s fascinating to figure out the most economical way to say the thing you want the computer to do for you.
040
Ken Kocienda @kocienda.bsky.social · 09/12/2024
Over the past two years, and at an accelerating rate over the past few months, I write software with the help of AI. I come up with the ideas, write the specs, and nudge things in the right direction. The AI does the drudgery of putting the bits in the right order for me to review and integrate.
130
Ken Kocienda @kocienda.bsky.social · 09/12/2024
I like it the most when the new software teaches me new things. Doing a lot of work with Polars lately. Nice software. pola.rs
pola.rs
Polars
DataFrames for the new era
030
Ken Kocienda @kocienda.bsky.social · 09/12/2024
For me, the best programs to write are the ones where I know what I want to do in the big picture, but I’m not exactly sure how to accomplish the thing.
030