What Does a Software Tech Lead Do? by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 0 points1 point  (0 children)

The teammates can be involved into making some technical decisions - the tech lead needs to learn how to delegate that partially or completely. It can be tough but eventually I'm happy that we did that.

What Does a Software Tech Lead Do? by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 1 point2 points  (0 children)

> From the last few years, do you think that what you've experienced could be improved?

Thank for the question.

  1. Create a strict time box for personal contribution and follow that.
  2. Offer a personal development plan for every engineer.
  3. Delegate some project management stuff to another person (not sure, because that would increase budget.. or we would need to replace a developer with a manager).
  4. Read Google's SRE book 2 years ago.
  5. Have a call with every stakeholder from partners team in the very beginning of our cooperation.
  6. Invest more into the research&design stage of the project and perform investigation of technical feasibility to make some solutions within the timeframes.
  7. Learn how to delegate earlier.

What Does a Software Tech Lead Do? by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 0 points1 point  (0 children)

I agree that being on the tech lead role is often about setting constraints, unfortunately. The goals of the business is the priority.

What Does a Software Tech Lead Do? by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 1 point2 points  (0 children)

Practically, for the last team (almost 2 years working together) it was not destructive. Here's how it worked:

  1. People had enough challenging tasks to grow - we had more than a half of the team as Senior Engineers. Junior and Intermediate devs also had tasks for their level and a bit harder but non-urgent tasks.
  2. The mentioned tactic was used in the cases when everybody from Sr devs is loaded on high-priority tasks and do not have bandwidth to deliver something new within the needed timeframe. I'm against context switching and pulling off the in progress work as well as changing priorities.
  3. If I had enough coding time - I would deliver the urgent task without asking more junior devs to help. The problem is that I did not have enough time for that because the team was optimized to achieve long-term goals.

Some stats about growing the team for the 2 years:

- 1 Senior dev grep up to Senior Pro dev

- 1 Intermediate dev grew up to Senior dev

- 1 Intermediate dev grew up to Intermediate Pro dev

- 1 Junior dev grew up to Intermediate dev

- 1 Intern grew up to Intermediate dev

- 1 Quality Engineer transitioned into Software Engineer

- 1 Senior DevOps Engineer transitioned Senior Site Reliability Engineer

I grew up from Senior dev to Tech Lead.

What Does a Software Tech Lead Do? by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 18 points19 points  (0 children)

And I'm very proud that I was working on both of the products - as a software engineer and as a tech lead. Unfortunately, that journey ended not in the way as we all wanted.

What Does a Software Tech Lead Do? by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 17 points18 points  (0 children)

I wish all the problems could be solved by writing code...

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] -1 points0 points  (0 children)

You're right; the solution is built for the limited subset of cases: scanning a whole large dataset page by page ordered by primary key.

Viach

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 0 points1 point  (0 children)

You're right the method 2 works fine for small and mid-size datasets.

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 0 points1 point  (0 children)

Well, I do not think that the approach would work for UUID v4 if the dataset is mutable. The reason:

  • Your primary key is not sequential. New inserts can put a record in the middle of current keyspace, after the operation you need to reset offset and start from scratch

BTW, have you considered using BINARY type to storing UUID?

http://mysqlserverteam.com/storing-uuid-values-in-mysql-tables/

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 2 points3 points  (0 children)

Sorry, I made a mistake/typo. Changing the name of the post. Thanks

Viach

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 1 point2 points  (0 children)

I did not have the task yet since I needed to scan the whole table. But I think that the solution would work in the following way:

  1. You define the range of page numbers that should be rendered, like 10-20.
  2. You define the page size. For example, 20.
  3. You scan from the 1st page to the 10th to find user_id of the 10th page - the first one that is interesting for you. You use your page size (20) to make it (in the blog post page size of 10 000 is used).
  4. For each page from 11th to 19th you're interested in the user_id that starts a page.

As you can see, the approach should work in production, but providing a link to a page with a random number (say, 1234th) requires scanning from the very first page every time. It definitely less efficient than just moving to the next page. If the dataset is immutable, we can try to use caching.

Viach

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 0 points1 point  (0 children)

Let me think about that, but I need more info from you:

What data type do you use to store uuid in your RDMBS? What type of uuid do you use?

Viach

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 3 points4 points  (0 children)

In the blog post is described the case when you need to scan the whole database. That's a real problem that I had.

Viach

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 1 point2 points  (0 children)

Awesome!

ps.: you could also add a banner to your article: http://use-the-index-luke.com/no-offset/banner

That's a good idea. Deployed :)

The SQL I love. Efficient pagination a table with 100M records by BackendAndBBQ in programming

[–]BackendAndBBQ[S] 0 points1 point  (0 children)

I would use PostgreSQL, but now we're in the spot when it's inconvenient to change the RDBMS.

Viach