Scheffer werd op zijn veertiende lid van de Amsterdamse zwemvereniging "De Jonge Kampioen" (DJK). In 1933 werd hij in 1.02,8 minuten Nederlands kampioen op de 100 meter vrije slag. Een jaar later nam hij deel aan de EK zwemmen, waar hij zevende werd op diezelfde afstand. Scheffer schakelde over op de rugslag en behaalde in 1934 en 1937 het Nederlands kampioenschap op de 100 meter rugslag. Hij nam in 1936 deel aan de Olympische Zomerspelen in Berlijn, maar werd in de series uitgeschakeld. Bij de EK van 1938 werd hij, samen met de Hongaar Árpád Lengyel, gedeeld derde op de 100 meter rugslag met een tijd van 1.12,0 minuten.