Start here

NoSQL + SQL = MySQL 8; Keynote OSI2019

Slides from the keynote presented at Open Source India 2019 at Nimhans convention center Bangalore. As usual lots of interesting folks. Lots of focus on Open Source.

Met people from the SODA foundation who are trying to standardize the IO layer across all cloud implementations. All the best guys.

Also met folks from MOSIP who have an effort ongoing to help countries create their own UID. Seems like they already have some traction.

Also met an interesting person trying to think about Indian design and creativity in software. After Chumbak it does make sense to think about how not only UI but the software development process needs more creativity.

Thank you EFY for the opportunity. Great job and all the best for the future.


MySQL 8 loves Javascript @jsfoo

Presented at the JSFoo conference for the first time.

The slides are uploaded here via @SlideShare

Quick impression on the conference:

1. Very buzzy you could see the high energy levels.  Lots to learn about javascript and the speakers were also enthusiastic to speak. 700 attendees.

2. The focus was spot on. Security is something that everyone is worried about.

3. Staff was always on the spot and helpful. The organization looked great with the big video boards announcing the next talk etc.

4. It was also informal communication between the speakers with there being a whatsapp group for speaker to interact with one another.

5. A few things that I did point out to organizers e.g. the banners on the road outside were not there  (disallowed because of a government conference that was happening in parallel), more aspirational attendees etc.

All in all a big thanks to the has geek organizers, did enjoy the conference and would like to continue to be a part of the hasgeek conferences.

(Photo courtesy:  official jsfoo photo tweeted by Zainab)

MySQL Whats New #gids16; slides

Had a wonderful session at the Great Indian Developer Summit 2016.

Thanks Saltmarch for a Great conference with wonderful attendance.

Lots of interest in MySQL document store.

Slides are posted here:

Also here is a picture of our booth.IMG_20160429_095641_HDR




MEB 4.0 allowing backup of MySQL 5.7 is GA

Announcing the availability of the newest version of MySQL Enterprise Backup (MEB) v4.0.0, the online MySQL backup tool.
You can now download it from the My Oracle Support (MOS) website as the latest GA release. This release will be available on eDelivery (OSDC) after the next upload cycle.

MySQL Enterprise Backup (MEB) is a commercial extension to the MySQL family of products.

Please do note that MySQL Enterprise Backup v4.0.0. backs up only MySQL server 5.7.
For all previous versions of server i.e. 5.5 and 5.6 please continue to use the  MySQL Enterprise Backup 3.12 series.
MEB 4.0. ensures  that  the Server 5.7 enhancements like the new 32 and 64 K page sizes and general table spaces can also be backed up.

There was a long standing request to store the Tape ID when backing up using the SBT interface. This request is finally supported using MEB 4.0.

Documentation is available at

Do let us know your feedback.

MySQL User Camp @ Bangalore on 26th June

MySQL India team is back with another MySQL user camp.

The day of the week, time and venue remains the same:

Date: Jun 26th, 2015

Day : Friday

Time: 3-5:30 pm

Place: OC001, Block1, B wing, Kalyani Magnum Infotech Park, J.P Nagar, 7th Phase Bangalore, India

During our previous meetings we were requested by our attendees that they would like to hear about implementation of GTID by the MySQL community. We have listened to you and requested a community member to talk about their experience with the implementation of  GTID. Our first talk is :

  • MySQL Tools Usage in Rakuten and Overview of Replication GTIDs

There is also a lot of interest in our new delivery vehicles for MySQL packages. Using the new YUM repos you can stay up to date with the latest MySQL releases. You need not  wait for your distro to update MySQL in their release packages. The release team which is responsible for this repo magic will update you about how this happens in our second talk :

  • MySQL Software Repositories

More information for the free registration can be found at:

Look forward to see you there.

How to crack that “software product company” campus interview

During my many years of recruiting at engineering colleges, I have sometimes wondered why the simple code to crack the campus interview has not been figured out by students.
At the end of the interviews conducted by our company, the conversation with the campus hiring professor goes along predictable lines. We talk about how the students could have done better.

This blog is about my advise to ace the campus interview.
Surprisingly the structure of the interviews has remained the same since the last many years that I have been recruiting.
What most product companies are looking for, is exactly the same things:

1. Do you have basic intelligence to think and give a solution
2. Can you think programmatically
3. How well do you know your data structures

4. Do you understand operating systems
5. Do you have some idea about distributed programming
6. Do you have some idea about the product/company for which you are being recruited

The reason that the first 3 and last 3 have a gap in between is because the first 3 are must haves, while the last 3 are good to have. An average company not looking for top notch programmers will recruit you even if you are good with the first 3.
The best companies will look for all the 6.

It is not very difficult to prepare for the above. Lets go over each :

1. Do you have basic intelligence to think and give a solution
Remember, you have made it to a the computer science department of a good college selected by this company for campus hiring. You also have good grades to have made it to the cut off list.
As long as you remember that and don’t get either too tense or over confident; thinking should not be a problem.
Also remember the recruiters want to hire you, they will try to give hints about the solution.
Listen to them carefully and even if you cannot get to the final solution, you will definitely be able to make the recruiters understand that you can think along the correct lines.
Don’t bullshit and don’t try to hide behind jargon. These are experienced engineers who have come for recruitment, they will see through these tricks. If you are not getting it, saying so and asking for a different problem will probably be seen as a more sincere answer.
Looking at a few problem solving questions on the internet may also not be a bad idea.

2. Can you think programmatically
If you don’t want to program, you are of no use to a product company. Whether it is development, quality, sustaining or even release engineering, you need to love programming. You have spent 4 years studying computer engineering, and will need to program for atleast the next 7 years if not more. Even beyond that you need to understand programming and to be able to think programmatically.
Given any problem, you should be able to write an algorithm to solve it. Preferably it should  be in a real computer language. You don’t need to know all the tricks and tips of C++ or Python but you need to be thorough with you basic programming.
Most product companies; if they are working in a core technology, are happy if you know C. C is the most used programming language for core infrastructure. If you can master C then any other language should not be a problem.
So here comes my first recommendation about which book to read :

The C Programming Language (Ansi C Version) Paperback – 1990
by Brian W. Kernighan (Author), Dennis M. Ritchie (Author)

It is not only the oldest book on C but the most crisp and concise. Read the book and solve the problems.
Once you are thru this book the second hurdle should not be a problem.

3. How well you know your data structures

What hammer, drill and other tools are to a carpenter, data structures are to the computer programmer. You need to know what data structure you need to use to solve a problem. All problems are not nails and arrays are not the hammer. There are more elegant solutions. Running scared of pointers and trees will not get you too far.
If you have read the C Programming book and solved the problems, you should be good with the basic data structures.
Having said “right data structure for the right job”; the recruiters will try and ask you to use pointers to solve a problem that can easily be solved by arrays. Be ready for that. Know the memory constraints and the order of the algorithm for which you are using your data structure.
There are many books on algorithms and data structures. Any one should be good, but being an old man I still have my faith in:

The Art of Computer Programming: Fundamental Algorithms v. 1 Paperback – 1 Dec 2008
by Donald E. Knuth (Author)

You don’t need to learn the whole book, if you can just be thorough with lists, trees and a bit of recursion from this book along with searching and sorting, that should be good enough.

There is now some new thinking about programming in terms of design patterns. Knowing design patterns is also great.
You do need to go atleast 1 step beyond the MVC though. The plain MVC is the one pattern everyone resorts to and no malice towards the good old MVC but frankly after the 5th college grad mentions MVC, it gets too boring.

That covers the must haves. With the above, you should have your step in the door and probably an easy shot at any service company.
But if you need to get into a specialized R&D type product company there is a bit more.

4. Do you understand operating systems

Who cares about the old operating system? The Internet runs on scripting languages.

Wrong and Wrong.

Whether your programs are running on the web or on the cloud, ultimately your program ends up on or interacts with a server that runs an operating system.
You are lucky that all operating systems whether by Apple or Microsoft or IBM are now converging towards the Linux type of operating system. So it is a simple choice, which OS internals you need to learn about.
You need to know the basic old Unix.
This was the operating system which was a trendsetter for the filesystem, the process structure and other OS primitives that you see in most modern operating systems. That brings me to my 3rd book recommendation.

The Design of the Unix Operating System Paperback – 1988
by Bach Maurice J. (Author)

I know that recommending a book from 1988 is not sexy, but I have not found a more simple and elegant explanation of the building blocks of the operating system than this book. Try it, it does read like a novel and has excellent diagrams to explain the basic OS structures. Also since it is not cluttered will all the new extensions to the OS, the basics can be grasped as they were designed.
Otherwise any good book on OS should be good enough.
You need to be really thorough when you go for the interview, the purist programmers who are trying to recruit you want to know exactly what happens to a program, how it compiles and how it gets executed on that OS. You need to be prepared with how the program is structured after compilation and exactly how the OS goes about executing it.

5. Do you have some idea about distributed programming

We talked about the good fortune that all the operating systems are trending in the same direction. Unfortunately there is another trend which makes the life of programmers difficult. That trend is distributed programming.
Earlier there was a single CPU and single threaded programs, now there are multiple cores on a single chip and multiple threads executing in parallel. There are now also clusters of servers and clouds of internet. Your program has to ensure that it can be broken into multiple threads and multiple servers elegantly and that it recombines to generate the final result well.
This opens a whole can of worms for synchronizing threads and programming well, so that no memory corruption takes place.
Debugging such multi threaded programs is a nightmare even for veteran programmers. Most of the last minute issues for a product release are related to bad timing in the synchronization of multiple threads. To make matters worse, some of the problems are difficult to reproduce since they occur intermittently.
The red eyes of your recruiter may indicate that s/he probably has just come back after fight with a naughty distributed program. When they ask you about threads, processes, synchronization, locking; you need to answer in a coherent way. You do not want to be the target of their pent up anger against the last locking/synchronization issue whose resolution kept them awake a few nights.

You are best prepared if there is atleast one multi threaded client server program you have written and ensured that 10 – 20 parallel sessions on the program do not crash the server.

If you have written the program above; it should be good enough, but if you need a book recommendation for writing that client server program and want to make you life interesting with some socket programming, here goes :

Unix Network Programming: The Sockets Networking Api – Volume 1 Paperback – 2005
by Stevens W. Richard (Author), Fenner Bill (Author), Rudoff M. Andrew (Author)

While we are on distributed programming, one of the concepts that is kind of linked to it, is the issue of security.
Many clients accessing servers remotely need to have a security infrastructure. Some knowledge of security, for example: What PKI really means; is always good.

6. Do you have any idea about the product/company for which you are being recruited

Finally; yes finally, if you have reached till here in the interview, your recruiters should be smiling.
But they still want to know your interest in the job you are being recruited for.
So a basic search on the internet can be done even while you are waiting for the interview.
If you are really serious then you would know atleast some details about the company
i.e. who founded it, why it is successful  etc.

Most product companies are working on cutting edge technologies.
For example with MySQL you need to know your databases.
What is a transaction? What is this whole buzz about SQL and NOSQL ?
Issues with multi tenancy for the internet ? What is multi master replication ? etc.
Similarly for the company you are aiming at, there must be technologies they care about.
Find out if there is a preso on slideshare about the implementation architecture of their software.
Also maybe google about the technologies that they use.

Reading a research paper related to the technology should be a feather in your cap. If you have read that research paper, make sure you mention it in your resume.

Remember; you have 3-4 years once you get into the college to prepare for 5 of the 6 points above.
Reading 2 books C & Unix and sections of the other books mentioned may mean a huge difference in your starting company and starting salary.
All the best; maybe we will see you around in our next campus interview.

Slides from the MySQL Session at Great Indian developer Summit 2015

Wanted to send a pointer to the slides from my session at #GIDS 2015.

Will followup with an impressions blog soon.