07Contact
Start with the problem
No formal brief needed. One paragraph is enough for me to tell you whether this is a fit.
Answered within 24 working hours
Fastest
- 0821-2636-1820
- Telegram
- @tanpaulus
Formal
- halo@tanpaulus.id
- Phone
- 0821-2636-1820
Elsewhere
- /in/tanpaulus
- GitHub
- @tanpaulus
- @tanpaulus
- tanpaulusCopy the ID — WeChat has no direct link.
Messages outside 09:00–18:00 Jakarta time get a reply the next day.
What to write
Four things that make my reply immediately useful
Without them, the fastest reply I can write is “could you tell me more?” — and a working day disappears right there.
The problem, not the solution
Describe the symptom: what is slow, what comes out wrong, what still gets done by hand every day. The right fix is often not the one you pictured — and it is usually cheaper.
When it has to be live
Name the date or the event tied to it. A real deadline changes how I shape the scope, not just the price.
What already exists
The site, app, spreadsheet, or WhatsApp group currently holding it together. "Nothing yet" is a useful answer too.
A budget range
A rough number is enough, and this is not haggling. The range decides whether the answer is an application or a small fix that turns out to be enough.
Before you ask
The questions that come up first
Process, what each package contains, and what I don't take on all live on the services page.
- I do not know what I need yet. Is that okay?
- That is the part I help with. The 30-minute intro call costs nothing and commits you to nothing — and if the answer turns out not to need code, I will say so.
- The project already exists. Can you take it over?
- Yes, and often. All I ask for is read access to the code and time to read it before promising anything — guessing on top of someone else's code is the fastest way to miss an estimate.
- Remote or on-site?
- Remote by default, on Jakarta hours. For clients around Jakarta, meeting in person can be arranged at the start of a project and at handover.
- What does it cost?
- It depends on scope, and I would rather not guess here. What is fixed: the number lands in a written proposal before the first line of code, and it does not move unless the scope does.