Carriera Club Hoff ha giocato nelle giovanili dello Spjelkavik, per cui ha poi avuto modo di giocare in 4. divisjon, quinto livello del campionato norvegese. È stato successivamente ingaggiato dall'Aalesund, che lo ha aggregato alle proprie giovanili.
È stato promosso in prima squadra nel corso del campionato 2013, in cui non ha però disputato incontri ufficiali. Il 6 luglio 2014 ha avuto l'opportunità di esordire in Eliteserien, quando ha sostituito Peter Orry Larsen nella vittoria per 0-2 sul campo dello Stabæk.
Il 24 aprile 2016 ha trovato la prima rete nella massima divisione norvegese, nel 6-0 inflitto al Tromsø.
Al termine del campionato 2017, l'Aalesund è retrocesso in 1. divisjon.
Il 29 marzo 2018, Hoff è passato ufficialmente all'Odd, compagine a cui si è legato con un contratto quadriennale: ha scelto di vestire la maglia numero 6.
Il 15 marzo 2021, il Rosenborg ha comunicato l'ingaggio di Hoff, che ha firmato un contratto quadriennale con il nuovo club.
L'8 agosto 2022 ha fatto ritorno all'Odd, con la formula del prestito. Ha scelto la maglia numero 16.
Il 22 marzo 2023 si è trasferito al Lillestrøm: ha scelto la maglia numero 6.
Il 2 marzo 2026 ha firmato un contratto annuale con il .
Nazionale Hoff ha rappresentato la Norvegia a livello Under-17, Under-18, Under-19 e Under-21. Per quanto concerne quest'ultima selezione, il 3 novembre 2016 ha ricevuto la prima convocazione dal commissario tecnico Leif Gunnar Smerud in vista delle partite amichevoli da disputarsi contro e Repubblica Ceca, rispettivamente in data 12 e 15 novembre. I test, disputatisi a La Manga del Mar Menor, non sono stati validi ai fini del conteggio delle presenze in Nazionale.
Hoff ha debuttato quindi il 24 marzo 2017, in un'amichevole contro il , in cui è stato è subentrato ad Iver Fossum: l'incontro è terminato con una sconfitta per 3-1. Il 12 giugno è stato impiegato nella sfida contro il , valida per le qualificazioni al campionato europeo 2019, gara dove ha sostituito nuovamente Fossum. Il risultato è stato poi rovesciato in una sconfitta a tavolino dall'UEFA, poiché Kristoffer Ajer è stato utilizzato in questa partita mentre doveva scontare una giornata di squalifica rimediata precedentemente in Under-19.
Statistiche Presenze e reti nei club Statistiche aggiornate al 2 marzo 2026. StagioneClubCampionatoCoppe nazionaliCoppe continentaliSupercoppeTotaleCompPresRetiCompPresRetiCompPresRetiCompPresRetiPresReti 2011 Spjelkavik 4D ? ? CN ? ? - - - - - - ? ? 2013 Aalesund ES 0 0 CN 0 0 - - - - - - 0 0 2014 ES 2 0 CN 0 0 - - - - - - 2 0 2015 ES 25 0 CN 1 0 - - - - - - 26 0 2016 ES 27 1 CN 2 0 - - - - - - 29 1 2017 ES 28 2 CN 4 0 - - - - - - 32 2 Totale Aalesund 82 3 7 0 - - - - 89 3 2018 Odd ES 27 0 CN 3 0 - - - - - - 30 0 2019 ES 29 2 CN 5 2 - - - - - - 34 4 2020 ES 27 2 - - - - - - - - - 27 2 2021 Rosenborg ES 16 0 CN 2 0 UECL 5Presenze nei turni preliminari. 0 - - - 23 0 gen.-ago. 2022 ES 10 0 CN 3 1 - - - - - - 13 1 ago.-dic. 2022 Odd ES 11 3 CN 1 0 - - - - - - 12 3 Totale Odd 94 7 9 2 - - - - 103 9 gen.-mar. 2023 Rosenborg ES 0 0 CN 1 0 UECL 0 0 - - - 1 0 Totale Rosenborg 26 0 6 1 5 0 - - 37 1 mar.-dic. 2023 Lillestrøm ES 29 0 CN 2 0 - - - - - - 31 0 2024 ES 19 0 CN 3 0 - - - - - - 22 0 2025 1D 28 1 CN+CN 5+2 0 - - - - - - 35 1 Totale Lillestrøm 76 1 12 0 - - - - 88 1 2026 Molde ES 0 0 CN 0 0 - - - - - - 0 0 Totale 278+ 11+ 34+ 3+ 5 0 - - 317+ 14+
Palmarès Club Competizioni nazionali
Lillestrøm: 2025
Lillestrøm: 2025
Note
Collegamenti esterni