Born in Arceburgo, Minas Gerais,[1] he grew up in nearby Mococa, São Paulo, where he began his career going by the nickname Bill in the youth ranks of Radium, for whom he was the club's top scorer in the 2012 U-15 state league.
He made his league debut on 17 April 2015, playing the full 90 minutes and scoring the game-tying goal in a 1–1 home draw against local rivals Mauaense.
With his team already relegated, he made his senior debut on 10 April as a substitute for Vicente in a 2–1 defeat to Botafogo de Ribeirão Preto in the last round of the first stage of the Paulistão.
[15] The Paulistão A2 campaign ended in bittersweet fashion for Bill, as he was Capivarano's top goal scorer in the league but couldn't help his team escape relegation for the second straight season.
Since Capivariano's senior squad had no more games for the remainder of the year, Bill was loaned to Água Santa to play in the Copa Paulista.
[18] Bill scored Capivariano's first goal of the season, netting from the penalty spot ten minutes into their Campeonato Paulista Série A3 opening game against Grêmio Osasco, on 17 January 2018.
[20] He reached six goals in the season during February, scoring against Monte Azul, Taboão da Serra, Marília and Barretos.
[25] On 21 April, he scored in the second leg of the semifinals against Atibaia, a game Capivariano ended up losing 2–3 at Ítalo Mário Limongi and narrowly missing promotion to the state league second division.
On 30 April 2018, Série A side Atlético Paranaense announced it had signed Bill in a one-year loan deal from Capivariano.
He netted an injury time bicycle kick to cap a 3–0 win over Rio Branco for the Taça Dirceu Krüger semifinals.
[32][33] He was an unused substitute in both games of the Campeonato Paranaense finals, as Athletico were crowned champions after defeating Toledo in a penalty shoot-out.
[41] He made his first appearance for the new club on 22 January 2020, coming off the bench in the 62nd minute during a 0–4 home loss to Palmeiras in the opening match of the 2020 Campeonato Paulista.
[45] It was reported on 11 June that his loan deal with the Itu club was extended to until the end of the year because of the stoppage of the Paulistão due to the COVID-19 pandemic.