Working with Me
A user manual for collaborating with me.
On this page
I write software for a living, but I’ve spent enough years working across time zones, cultures, and codebases to know that the hardest bugs are usually interpersonal. This post is my attempt at a README for working with me.
Think of it as a man page. Skip to the section you need.
The short version
I prefer written communication over calls. I default to async. I value specificity and I’m allergic to vague requests. I’ll give you honest feedback and I expect the same in return. I care about developer experience, clean APIs, and shipping things that work.
If you’re reaching out for the first time, email beats everything else.
Where I come from
I’m Italian, specifically from the Veneto region, near Venice. I grew up close to H-Farm, one of Italy’s early tech incubators, which is where I first caught the startup bug. At 19, I co-founded Skydreamer and presented at TechCrunch Disrupt 2017. It didn’t last, but it taught me more about shipping under pressure than any university course would.
I hold a Master’s in Computer Science from the University of Padua (graduated with honors). My thesis on submodular optimization took me to the Czech Technical University in Prague, where I later returned to work on fuel pipeline scheduling for the Czech Ministry of Energy.
Since then, I’ve lived and worked across Europe: Venice, Berlin, Prague, Istanbul, Tbilisi. I’m currently based in Tbilisi, Georgia. I’ve worked remotely for most of my career.
Culturally, I’d describe myself as Central European. I’m direct, sometimes blunt, and I don’t take long to get to the point. If you’re used to more indirect communication styles, this might feel abrupt at first. It’s not rudeness; it’s efficiency. I’d rather spend five minutes on a clear email than thirty on a meeting that could have been a message.
I speak English, Italian, and Venetian. I get by in Spanish, German, Turkish, and Russian, depending on how recently I’ve lived somewhere.
How I communicate
Async by default. I operate across multiple time zones and work deeply for long stretches. Slack messages are fine. Emails are better for anything that requires thought. I’ll respond within a day for most things, faster if it’s urgent.
Written over spoken. I think more clearly when I write. If we’re discussing architecture, a tricky decision, or a proposal, I’d rather see it as a document or a GitHub issue than hash it out live. Writing forces precision, and it leaves a trail.
Specific over vague. “Can I get your thoughts on this?” with no context is hard to act on. “Here’s a PR that changes how we load WASM modules. Can you review the approach in src/runtime?” gives me something to work with. The more specific your ask, the better my answer.
Direct feedback, both ways. I’ll tell you if I think something is wrong. I won’t be harsh, but I won’t sugarcoat it either. I want the same in return. A colleague at Prisma once described me as someone who “consistently brings boldness, clarity, and thoughtfulness into the room.” I take that as the best professional compliment I’ve received.
How I work
I go deep. I once spent a full day tracing a createRequire is not a function error through webpack internals, wasm-bindgen binaries, and WebAssembly loading semantics before finding a two-line fix. I like understanding systems from the bottom up. If something breaks, I want to know why, not just how to make it green again.
I care about DX. Most of my career has been about developer tooling: ORM internals at Prisma, AI agent SDKs at Composio, build tooling, CLI design. I think about APIs from the consumer’s perspective first. If the developer using my code needs to read the source to understand the interface, the interface is wrong.
I default to open source. I’ve maintained public projects in TypeScript, Rust, C++, Python, and Go. I think in public when I can. My talks, code, and writing are usually available for anyone to read.
I ship incrementally. A small, correct change today is worth more than a perfect, sprawling one next week. Small PRs, clear commit messages, fast feedback loops.
Meetings
I’m not against meetings. But I treat synchronous time as expensive.
If you want to meet, send me context first: a brief message or document outlining what we’ll discuss. “Quick sync” with no agenda usually means neither of us will leave with clear outcomes.
For first-time conversations: start with an email or message. Tell me what you’re working on, what you need, and why you think I can help. If the conversation has momentum, a meeting follows naturally. If it doesn’t, forcing one won’t fix that.
I keep my calendar on Cal.com. Book a slot if the context is clear; no need to ask permission.
What I value in collaborators
Ownership. If you say you’ll do something, do it. If you can’t, tell me early.
Precision. I appreciate people who are careful with words: in code, in documentation, in conversation.
Curiosity. I’ve gone from mobile apps to mathematical optimization to WASM compilation pipelines to AI agent tooling. The thread connecting all of it is that I followed what was interesting. I like working with people who do the same.
Honest disagreement. I hold strong opinions, weakly. I’d rather be wrong and learn something than be right and learn nothing. If you disagree with me, say so.
Getting in touch
- Email: alberto.schiabel@gmail.com. Best for anything that needs thought.
- GitHub: @jkomyno. Where most of my work lives.
- X: @jkomyno. Shorter thoughts.
- Cal.com: cal.com/jkomyno. Book a call directly.
If you’ve emailed me and haven’t heard back in a week, nudge me. I sometimes lose things in the inbox. I won’t mind.
This post was inspired by Grzegorz Kossakowski’s Working with Me.