HNHacker News
TopNewBestAskShowJobs

tmarice

133 karma · joined November 22, 2018

https://tmarice.com
submissionscomments
tmarice··on Show HN: Dental Scope – Interactive 3D dental anatomy
You built nothing.

You pointed your clanker of choice to a dataset (or more realistically, asked it to find an appropriate dataset), and told it to build a interactive 3d model. You learned nothing from this project because no mental effort was spent beyond listing out features for your clanker, and some manual testing.

tmarice··on Coding is not solved
I mean, was typing out code by hand really that bad?

If you were a professional software developer, you a) learned to touch type, b) started using vim/emacs keybindings to navigate around the project, and c) used a framework which already abstracted away a large part of the menial work.

And going all-in on the loop and no-code-review nonsense in a project someone is actually paying you for, I can only assume means you're hoping not to be around when the slop tower collapses.

tmarice··on AI-written speeches are taking over politics
https://archive.is/mis0m
tmarice··on Eight facts about air conditioning amid an overheated global debate
Large majority of ACs sold in the EU are air-to-air heat pumps.
tmarice··on Native Instant Space Switching on macOS
I had a similar stance on this until I went through macOS -> linux with i3 -> back to macOS transition. i3 window and workspace operations on a maxed-out Dell XPS were truly instantaneous, and after moving back to macOS, there is no way to unsee the slugishness of the native window operations.

I'm using Aerospace at the moment, and it gets pretty close, but still isn't as nice as i3.

tmarice··on Show HN: Home Maker: Declare Your Dev Tools in a Makefile
I’ve been using devenv.sh for the last year for this, and never been happier.
tmarice··on Subscription bombing and how to mitigate it
I don't really understand the captcha hate, it's table stakes for any public-facing form. You need to pick a point on the "Ease of signup" vs. "Security" curve, and email signup + captcha seems to be the sweet spot.

I haven't seen any proof that the big ones (Google, CF) can be easily and automatically bypassed, and would love to learn more if someone has evidence to the contrary.

tmarice··on Claude Code's source code has been leaked via a map file in their NPM registry
A couple of years ago I had to evaluate A/B test and feature flag providers, and even then when they were a young company fresh out of YC, GrowthBook stood out. Bayesian methods, bring your own storage, and self-hosting instead of "Contact us for pricing" made them the go-to choice. I'm glad they're doing well.
tmarice··on Ripgrep is faster than grep, ag, git grep, ucg, pt, sift (2016)
Yeah, that Cursor blog post is a bit iffy since they just brush over the "ripgrep is slow on large monorepos", move on to techniques they used, and then completely ignore the fact that you have to build and maintain the index.

On a mid-size codebase, I fzf- and rg-ed through the code almost instantly, while watching my coworker's computer slow down to a crawl when Pycharm started reindexing the project.

tmarice··on Ask HN: Who wants to be hired? (March 2026)
Location: Zagreb, Croatia (UTC + 1)

Remote: Yes, Remote Only (EU/US overlap)

Willing to relocate: No

Technologies: Python, Django, Celery, PostgreSQL, SQL, Linux, Docker, React, FastAPI

Résumé/CV: https://tmarice.dev/tomislav_maricevic_cv.pdf

LinkedIn: https://linkedin.com/in/tomislav-maricevic

Github: https://github.com/tmarice

Email: hn@tmarice.dev

Product engineer with 10 years of experience. I love Python and Django (8 years and counting), have worked extensively with Celery and Postgres, have some React/Typescript experience, as well as some exposure to Docker, GitHub Actions and MLOps workflows.

I am comfortable owning products end to end: backend architecture, data models, async workflows, monitoring, and collaborating with business, product, and ops teams. Interested in roles that value ownership and strong engineering fundamentals.

tmarice··on Show HN: Deff – Side-by-side Git diff review in your terminal
Nice, I did not know about this!

I feel Kitty doesn't get enough love, it's all ghostty this, ghostty that, but Kitty has been my top performing terminal emulator for 10 years now.

tmarice··on Some notes on starting to use Django
This is not specific to Django, but to any project using a database. Here's a list of a couple quite useful resources I used when we had to address this:

* https://github.com/tbicr/django-pg-zero-downtime-migrations

* https://docs.gitlab.com/development/migration_style_guide/

* https://pankrat.github.io/2015/django-migrations-without-dow...

* https://www.caktusgroup.com/blog/2021/05/25/django-migration...

* https://openedx.atlassian.net/wiki/spaces/AC/pages/23003228/...

Generally it's also advisable to set a statement timeout for migrations otherwise you can end up with unintended downtime -- ALTER TABLE operations very often require ACCESS EXCLUSIVE lock, and if you're migrating a table that already has an e.g. very long SELECT operation from a background task on it, all other SELECTs will queue up behind the migration and cause request timeouts.

There are some cases you can work around this limitation by manually composing operations that require less strict locks, but in our case, it was much simpler to just make sure all Celery workers were stopped during migrations.

tmarice··on Some notes on starting to use Django
After working with Django for 8 years, I find it hard to move on to anything else. It's just the right amount of magic, and just the right amount of flexibility, and it's just such a joy to work with.

Re: Django is OK for simple CRUD, but falls apart on anything complex - this is just untrue. I have worked in a company with a $500M valuation that is backed by a Django monolith. Reporting, recommender systems, file ingestion pipelines, automatic file tagging with LLM agents -- everything lives inside Django apps and interconnects beautifully. Just because it's a Django app doesn't mean you cannot use other libraries and do other stuff besides basic HTTP request processing.

Recently I had the misfortune of doing a contract on a classic SPA project with Flask and sqlalchemy on the backend and React on the frontend, and the amount of code necessary to add a couple of fields to a form is boggling.

tmarice··on Things I've learned in my 10 years as an engineering manager
This kind of EM-focused articles often mention "coaching" and "career growth" -- I always wonder what does this concretely mean. Are they all managing teams of juniors straight out of college?

What can a career EM, or even an engineer-to-EM convert who has been out of the coding game for more than a few years, teach a non-junior engineer on their team?

I understand we can talk and exchange our concrete life experiences, same as I would talk to and listen to any other person, but the word "coaching" implies one party is superior to the other in one very concrete area.

tmarice··on Proton spam and the AI consent problem
On their Masked Email feature page https://www.fastmail.com/features/masked-email/

> Companies have no way of linking different Masked Email addresses together to track you.

I have received the Fastmail support response, and since they do not consider this a vulnerability, I'll post it here:

- You have a Masked Email

- You have set up forwarding from your Fastmail account to another email service

- The other email service rejects the mail for some reason

- The bounce message goes back to the original sender, and may include the email addresses along the chain after the Masked Email address.

I'm assuming the bounce message contains the X-Resolved-To header mentioned in the other HN thread linked above.

tmarice··on Proton spam and the AI consent problem
Well they still claim it is impossible to connect different masked emails together. If you as a sender can reliably determine the target email address, then that claim is untrue as well.
tmarice··on Proton spam and the AI consent problem
One concrete vulnerability is mentioned in a linked thread and described here https://news.ycombinator.com/item?id=37791500

I have created a ticket with the Fastmail support asking them more details about the vulnerability you mention in your thread, I’m curious to see their response.

tmarice··on Proton spam and the AI consent problem
Do elaborate.
tmarice··on Proton spam and the AI consent problem
I've been using Fastmail for years now, and I'm completely satisfied. Custom domain + built-in masked email functionality works great.
tmarice··on Django: what’s new in 6.0
Celery is the worst background task framework, except for all the others.

There are bugs and issues, but because so many people are using it, you’re rarely the first to stumble upon a problem. We processed double-digit millions of messages daily with Celery + RabbitMQ without major obstacles. Regardless of what people say, it should be your first go-to.

tmarice··on What the hell have you built
Very relatable to a recent interview experience I had with a popular freelance platform for the backend developer position.

I never worked at a FAANG-ish company, and in the course of my 10-year career I spent most of my efforts on stopping the organizations from building the wrong thing in the first place, not on "making things scaleable" from the get-go. My view is that if you have product-market fit, you can throw money on the problem for a very, very long time and do just fine, so everyone in the org should focus on achieving PMF as soon as possible.

The question of "How would you scale a Django service to 10M requests per day" came up, and my answer to just scale components vertically and purchase stronger servers obviously was not satisfactory.

tmarice··on Show HN: Django Keel – 10 Years of Django Best Practices in One Template
Looks great, looking forward to trying it.

Interesting that you included Temporal for background task processing — did you ever use it in production in a Django project instead of Celery?

tmarice··on Python developers are embracing type hints
Type hints in Python add a great amount of visual noise to the code, and I actively avoid them wherever possible. If static typing is a must, use a language where static typing is not an afterthought, and let Python be Python.
tmarice··on Coders End, from Typers to Thinkers
If you're not using Vim or Emacs, and not very proficient at touch typing, you're almost certainly limited by your typing speed.

Coding is an iterative process, regardless of whether you're handcrafting the code or using AI -- you need to move your thoughts / code / prompts from your head to the computer. You have to use the keyboard to do this. You have to do this over and over again, interleaving thinking with typing, and if you're fumbling for the mouse or smashing those arrow keys, your thinking is blocked.

tmarice··on Things we've learned about building products
Posthog's newsletter is one of the few I re-subscribed to after a general newsletter purge, top content.

Regarding the superday controversy: my best interviewing experience was a conversational technical interview followed by a paid-either-way-the-decision-went 2 week project. I did quite a bit of competitive programming so leetcode interviews are not a dealbreaker for me, but I feel there's just too much at stake for 1-2h coding exercise, and projects allow you to showcase all of your skills, not just speedcoding.

tmarice··on Should managers still code?
Of course they should still code, otherwise they're not engineering managers, they're project/product managers, and good engineers will not follow those people.

Whenever we talk about EM duties, it's always a list of fuzzy, empty words:

> Owning the team's strategy and roadmap, and ensuring efficient execution.

This is project management.

> Making decisions to ensure that the team is working on the right things and saying no to the things that don't matter.

This is product management.

> Dealing with fires, escalations, and other crises that pop up all of the time.

How can an EM that doesn't code deal with fires? The only thing they can do is pull the sleeve of someone else who does code, and then, what, hang behind their shoulder until the fire is put out?

> Building a strong culture within the team so that people are engaged, challenged, and motivated.

This is meaningless. We're not children.

> Mentoring and coaching your reports so they get better and can have more work delegated to them, thus increasing output further.

Mentoring them at what? If an EM doesn't code, how can they mentor in an area that's relevant to the mentee (i.e. a coding engineer)? They can coach them on moving Jira tickets more effectively, or playing office politics better?

> Managing the team's stakeholders so they can offer their steer to the team early and often.

Again, product management.

> Actively performance managing the team so that superstars can continue to shine and underperformers can be coached or exited.

Combination of meaningless and project management. In order to be able to evaluate someone's performance, you need to know their work. If you don't, the only metric you have is number of tickets, or "velocity" or whichever other bullshit metric you use because you're not in the trenches.

> Building close working relationships with other teams so that smooth collaboration happens across the organization, leading to a better and more cohesive product.

Office politics.

The only one that make sense is hiring and retaining great people, but you can't do either without being a technical person.

EMs that don't code making technical decisions is a showcase for divorcing decision making from suffering the consequences of those decisions. And having teams with EMs + tech leads + team leads etc. is just making things worse by diluting the responsibility.

https://world.hey.com/dhh/we-once-more-have-no-full-time-man...

tmarice··on Two Hard Things (2009)
Everybody knows the two hard things are timezones and unicode.
tmarice··on The Practical Guide to Scaling Django
If you're on Postgres, StringAgg and ArrayAgg are nice alternatives to prefetch_related to avoid building Python model instances and waste memory.

I wrote a short blog post on recent optimizations we did on our Django codebase: https://tmarice.dev/blog/better-living-through-optimized-dja...

tmarice··on How I ship projects at big tech companies
This is what purgatory looks like for software engineers.
tmarice··on Principles for product velocity
You can still have domain experts collaborate directly with engineers instead of adding a middleman in the form of a product manager.

The more I work, the more I'm convinced that product management is not truly a profession but rather a way for non-technical people to insert themselves into a profitable industry.

Page 1 of 2Next →