[guided]We begin by naming the set and maps being constructed. The pullback set is
\begin{align*}
f^*E:=\{(x,e)\in M\times E: f(x)=\pi(e)\}.
\end{align*}
Its projection to $M$ is the map $p:f^*E\to M$ defined by $p(x,e)=x$, and the canonical map to $E$ is the map $\tilde f:f^*E\to E$ defined by $\tilde f(x,e)=e$. We now take the ordinary bundle charts of $E$ and pull them back along $f$. Let $\tau_i:\pi^{-1}(V_i)\to V_i\times F$ be a local trivialization of $E$. Let $\operatorname{pr}_{V_i}:V_i\times F\to V_i$ denote the projection onto the first factor. The defining condition for a fibre-bundle chart is
\begin{align*}
\operatorname{pr}_{V_i}\circ \tau_i=\pi|_{\pi^{-1}(V_i)}.
\end{align*}
This means that if $\tau_i(e)=(y,a)$, then the base point of $e$ is exactly $y=\pi(e)$.
The pullback bundle should sit over $M$, so the corresponding base open set is
\begin{align*}
U_i:=f^{-1}(V_i).
\end{align*}
This set is open because $f:M\to N$ is continuous. It covers $M$ because the sets $V_i$ cover $N$.
Now define $\sigma_i:p^{-1}(U_i)\to U_i\times F$ by
\begin{align*}
\sigma_i(x,e)=\left(x,\operatorname{pr}_F(\tau_i(e))\right).
\end{align*}
The formula keeps the new base point $x$ and keeps the old fibre coordinate of $e$. The map is well-defined because $(x,e)\in f^*E$ means $f(x)=\pi(e)$. If $x\in U_i$, then $f(x)\in V_i$, hence $\pi(e)\in V_i$, so $e\in \pi^{-1}(V_i)$ and $\tau_i(e)$ is defined.
To see that this is a product chart, we explicitly write its inverse. Define $\rho_i:U_i\times F\to p^{-1}(U_i)$ by
\begin{align*}
\rho_i(x,a)=\left(x,\tau_i^{-1}(f(x),a)\right).
\end{align*}
The point $\tau_i^{-1}(f(x),a)$ lies over $f(x)$ because $\tau_i$ is a bundle trivialization. Therefore
\begin{align*}
\pi\left(\tau_i^{-1}(f(x),a)\right)=f(x),
\end{align*}
so $\left(x,\tau_i^{-1}(f(x),a)\right)$ satisfies the defining equation of $f^*E$. Hence $\rho_i$ maps into $p^{-1}(U_i)$.
Finally, if we start with $(x,a)\in U_i\times F$, then applying $\rho_i$ and then $\sigma_i$ gives back $(x,a)$ because $\tau_i(\tau_i^{-1}(f(x),a))=(f(x),a)$. If we start with $(x,e)\in p^{-1}(U_i)$, then $\tau_i(e)=(f(x),a)$ for $a=\operatorname{pr}_F(\tau_i(e))$, so $\rho_i(\sigma_i(x,e))=(x,e)$. Thus $\sigma_i$ is a bijective local product chart.[/guided]