HN user

metadata

241 karma

Damir Bulic, making database software. Made a ton of other things as well, but that's another story.

Posts7
Comments63
View on HN
Fable 5 is Back 21 days ago

It is nerfed even just for plans. It switches to Opus in the first few minutes of me trying to build a plan to extract a component out of my larger codebase.

Trying to minimize privileged access codebase and was careful not to mention security explicitly.

Validation is trivial, I simply used BenchmarkDotNet test and had AI flip git between latest HEAD state and current state.

Optimization is where the real work was - but also fun because I would just think of something, and AI would make it happen. It also had great ideas of its own. Feedback mechanism is crucial.

Safe Boundary, a database security proxy especially optimized for AI agents: https://www.spectralcore.com/safeboundary

Launching for Postgres very soon (currently working on Supabase-optimal deployment). Continuing with Oracle, SQL Server, MySQL in the coming months.

Our superpower is a very fast parser with full static analysis engine. This enables not only blocking of destructive queries but also deep SQL rewrite for PII masking in real-time. It also means better syntax error messages which allow AI agents to adjust their SQL queries automatically.

Full workflow (parsing + static analysis + SQL rewriting + logging) takes less than 1ms.

This is not necessarily true. Wrong monetization can be the killing blow. Market can change and your business model which used to work can suddenly fall apart. A recent example for business model change is Tailwind where traffic to their open-source docs plummeted and suddenly not enough people are upgrading to their commercial licenses.

Startups die for a variety of reasons, even if products are popular and loved.

SQL Studio 7 months ago

I have recently asked my LinkedIn audience if my company should build a great PostgreSQL IDE. That's my wish for many years, and I know exactly where we can provide significant value over existing solutions. Yet basically everyone said not to do it.

Too many free options, hard to get people to change habits, you can't charge enough because devs just don't want to pay if they can help it.

I decided we will build something else. That said, good luck to this developer, I hope their product takes off.

I went indie some 20 years ago because I needed money and I wanted full control over my life. Did some things right but many things wrong. Unfortunately, there is a price to pay to build your life in an unconventional way. Everything turned out well but it might have easily concluded with a disaster. Luck (or lack of it) plays a significant part however much you try.

What I would recommend to the "new indies":

- Build this on a side with a steady full-time job. If you can't get to a few thousand dollars per month by investing 2-3 hours per week day plus 10-20 hours on a weekend, going full time won't make a difference.

- If you have a family, be careful. You are making high risk decisions but people who depend on you didn't ask you to make a leap into unknown territory. Attempt to pull of indie business is stressful for everyone, may lead to years of strained relationship, and to a divorce.

- Do not share too much business information with your spouse. What is acceptable risk to you may cause dread to your significant other. They don't deserve all the emotional ups and downs that come with running a solo business. Absolutely do share important things because you are in this together - just don't frighten people whenever you are in a bad situation.

- Be mentally stable. If money is tight, if things are unknown, remember this was your choice.

- Don't be too proud - always be prepared to freelance or find a "real job" if needed. Remember that big success can take (many) years or it may never come. Do your best but do not self-destruct.

- Read "The E-Myth Revisited" to learn that your job changes. I was a spectacularly good developer when I started this. Today? Perhaps just a very good one because development turned out to be 10% of the job. You will wear many hats and some of those hats you will absolutely hate. You thought all you'll do is make state of the art software? Yeah, and you will also do sales, website, marketing, customer support, accounting, taxes. You will be exposed to all the shit you were blissfully unaware exists in business while at a steady job because it was someone else's job to handle all that. You will understand your past bosses much better.

All that said, I love the business I built. A beautiful lifestyle business for a quite a few years. It's a stable and growing business now, with a team of 20-ish people in 6 countries. We make great things, and have a great work-life balance.

You can do it, just don't sacrifice everything else. Nothing is certain but do your best. Always be kind to people. Remember to take care of the family first. Be there for them, spend time with them. Kids never grow up twice - what you missed, you missed for good.

(Edited for formatting)

.NET 10 8 months ago

A bit off-topic, bit hiring exceptional .NET developers is like searching for a needle in a haystack. Way more people have a ton of experience with JS and marginal experience with .NET, just writing very basic API endpoints - yet claiming serious experience.

If you came to me for an interview, your story would have been a breath of fresh air. So maybe try to mention it anyway, someone will be interested.

A lovely language with an incredible web framework (Phoenix, LiveView). However, not easy to pick up for people with only imperative programming experience.

I had to switch my project to .NET in the end because it was too hard to find/form a strong Elixir team. Still love Elixir. Indestructible, simple, and everything is easy once you wrap your head around the functional programming.

It. Just. Works.

Postgres is a better choice for 99% of the companies out there. But there are cases where you need ability to massively scale AND control your database cluster perfectly.

Postgres won't even let your force an execution plan and ignores hints (yes, there is an extension for that) so your optimized query can at some point just 10x in execution time and increase load in production when the plan changes.

In Oracle, I am told you can prioritize certain queries at certain time of day - it's crazy what it can do. Yes, it's slow and expensive. If you have money to throw at the problem, it's fast and it solves your problem, whatever the scale. Their Exadata cluster, for example, is wicked fast storage layer pre-filtering the data it sends to the database.

Of course, I despise their business practices - especially the abuse of customers via audits. As a database, it absolutely has its place regardless of lobbying, corruption, and whatever else they are doing.

I didn't look into the code structure - 60 contributors mean that yes, there is a problem.

People start something with good intentions, then the project grows to the point where it requires a lot of unpaid time, and there are expectations from the users. There are bills to pay and limited time in a day.

I would probably be irked if I contribute in my free time and then see my effort being used in a commercial product. Then again, in some products you may have one person doing 95% of the work and another 50 doing 5% of the work.

If OP is motivated, they can relinquish control over this project and start a completely new one from scratch with no code borrowed from the existing one but learnings can definitely be applied. The new commercial project would need to compete with the existing AGPL project - and that's a good thing. If 60 contributors are contributing significantly, FOSS project won't suffer and the OP will be able to live from something they are passionate about.

Just for the context, I've been making (and selling) database (migration/translation) tools for 20-ish years.

What you have built can definitely become a product supporting you with a very nice income. Free version can stay free but you can sell solo licenses and team licenses as subscriptions. Paid license users will also have your support - and that matters to companies.

As others have said, commercial features can be built on top of the OSS product, like Electron desktop client, support for more databases, for views/procedures etc.

There is no downside to trying to commercialize this. Whoever wants to use what you have built so far can continue and I guarantee that many companies would be happy to give you $50/month for a more advanced version with support.

(edit for typo)

Skew wasn't just a little bit faster than TypeScript.

According to Evan Wallace (former Figma CTO), it was 1.5x to 2x faster due to better optimizations enabled by stricter type system.

Scripting data movement is easy only for small and easy jobs. With many thousands of tables and more than a few TB, all kinds of issues start popping up. I read somewhere that 85% of large data migration projects fail. Data warehouses really need an optimal Parquet file sizes to work efficiently, and for Snowflake it's roughly 100-200MB per file. The good way to copy that is relying on DB statistics to determine the optimal number of records per chunk. Then, to have the job finish in a reasonable time, one needs to read a certain number of data chunks in parallel and stream that data into Parquet at S3 (or Azure Blobs). Once the data is up, Snowflake can ingest it.

Shameless plug: my company created a commercial solution which does exactly that (https://www.spectralcore.com/omniloader). Happy to answer any questions.

CodeMirror is promising. Monaco is huge and clunky to integrate, but it works really well once you get past the steep learning curve. It has everything one needs to build a full IDE around it (as VSCode demonstrates, quite convincingly).

Right now, someone with own parser/language analyzer (I have built parsers for several SQL dialects) has just Monaco to work with as LSP for CM6 doesn't seem to exist yet.

Will be closely watching CM development.

F# Good and Bad 5 years ago

The generated .NET IL is not great. seq turns into an IEnumerable, list is some sort of linked list, I'm pretty sure you'd get pretty terrible performance if you did this.

Functional languages have completely different data structures. What is intuitively fast in C# (arrays) may be terribly slow in FP. For example, Erlang (and hence Elixir) are far slower than C# in single-threaded tasks. But, immutability of data allow for incredible parallelism. F# allows mutability, but the default is immutable data.

I remember quite some time ago, when ASP.NET could handle a few thousand connections, Elixir team achieved 2 million concurrent connections with just a few tweaks to the Elixir codebase.

[1] https://phoenixframework.org/blog/the-road-to-2-million-webs...

You are right, it is Croatia. Our military service was obligatory for a long time. At one point we could issue a "conscience objection" and serve as a civil service for 9 months instead of going to the army for 6, which I decided to do.

Ah, yes, that burnout when trying to start a new thing alongside a day job. Happened to me as well, and it was hell.

Back in 2001, I was living in a small village half an hour drive from the city. We thought living in the country will be fantastic. I had a great job, working for a US company. Super-hard and very interesting projects, I could come and leave the work as I please. Then, 9/11 happened and all investors disappeared. My pay was cut in half. At the same time, had to go to the army (I chose civil service to pay that out), so I could only work half-time on my job - another half of my pay went away. Suddenly this was unsustainable, and I had a pregnant wife. My solution - no problem, I will start my own business.

While it all worked out well in the end, the next year was terrible. I would leave the house at 6:15AM, be at the civil service until 3PM. Then go to the job and work until 8PM. Then go home and work on the side project until 2AM. Relationship with my wife deteriorated to the point of almost no return as I was overstressed and impossible to live with. We constantly struggled with debt. And my brain fried from overwork and lack of sleep. People would speak to me and I would not remember it after 5 minutes. It took a lot of time to get back to normal afterwards.

In hindsight, starting a side project was a terrible decision for that time. I should have made sure to safeguard the health of the family. We should have moved back to the city. We could have moved to live with my parents for a while. Anything would be better than the path I took, in my arrogance and need to provide for my family the way I decided is the way to go. The same financial independence would come, with far less stress, if I stopped to reevaluate what can be done - and talked with my wife more. When someone asks me for advice, I always say - do not risk everything for the chance of success. With family, it's family first.

This is a beautiful device. I wonder how much it improves over the existing one, though.

Thinking about it, usb-c cable and faster ui are valuable. Larger screen, probably not a big deal.