Why Choose Us

We are AI-enabled software consultants

Every detail—from architecture to deployment—is handled with rigor, ensuring clarity, performance, and long-term maintainability.

We design and deliver systems that are technically rigorous and commercially impactful.

We embed AI into core workflows, decision-making, and product architecture to create durable advantage.

We translate complex opportunities into elegant, production-ready solutions.

We build with precision, scalability, and a clear understanding of business context.

car
Built for impact

We combine deep engineering expertise with AI to deliver solutions that are practical, scalable, and grounded in real business outcomes.

cube
AI that actually ships

We don’t just prototype—we design and deploy production-ready AI systems that integrate with your existing stack.

glasses
Measurable advantage

Our work is defined by outcomes: faster operations, smarter decisions, and capabilities that compound over time.

AI & Machine Learning Experts

Transforming Ideas into Intelligent Solutions

Software consultant specializing in AI/ML integration, custom model development, and intelligent automation for forward-thinking businesses.

hand of god

"We are better than AI. We are human."

Real thinking.

Real people.

Crafted, not generated.

Invented, not imitated.

The future needs 
more humanity.

Not less.

AI can replicate patterns.

Humans create meaning.

e9e

Latest Articles

All Articles

How to program Drupal Cron

From drupalsun.

Implementing Cron tasks in Drupal

Cron tasks are defined by implementing the hook_cron hook in your module, just like in previous Drupal versions.

/** 
 * Implements hook_cron(). 
**/ 
function example_cron() { 
  // Do something here. 
}

And that's pretty much it. Rebuild cache and next time cron runs your hook will be called and executed.

Pytorch cuda tries to allocate memory but it is not available

If you see an error similar to this one:

RuntimeError: CUDA out of memory. Tried to allocate 11.88 MiB (GPU 4; 15.75 GiB total capacity; 10.50 GiB already allocated; 1.88 MiB free; 3.03 GiB cached)

then, try reducing the batch size.

    train_loader = DataLoader(
        train_dataset,
        shuffle=False,
        pin_memory=False,
        batch_size=2, # was: 16
        num_workers=12,
    )