\documentclass[12pt,border=1pt,crop,multi=false,tikz,class=scrartcl]{standalone}
\usepackage{setspace}
\usepackage{circuitikz}
\usetikzlibrary{arrows,shapes,calc,positioning,fit,decorations.markings,intersections}
\def\CalcC#1{%
\coordinate (base) at (#1.B);
\coordinate (collector) at (#1.C);
\coordinate (emitter) at (#1.E);
\draw (barycentric cs:base=0.32,collector=0.5,emitter=0.5) circle [radius=18pt];
}
\begin{document}
\begin{circuitikz}[scale=.75]
\draw
(0,0) coordinate (o) to [short,*-*] ++(1.5,0) coordinate (o2) to ++(1,0)
node[npn, anchor=B] (q1) {} ++(1.75,.5) node [] {\scriptsize npn}
(q1.C) to [short,*-] ++(1.5,0) node [pnp, anchor=B] (q2) {} ++(.5,.8) node [] {\scriptsize pnp}
(q1.C) to [R] ++(0,2.5) coordinate(v0) -| (q2.E)
(v0) to [short,*-o] ++(0,1) node[above] {$V_0$}
(o) to [R] (o |- v0) to [short] (v0)
(q1.E) to [short,-*] ++(0,-2.5) coordinate (g)
(o) to [R] (o |- g) -- (g) node [ground]{}
(q2.C) to [short,-*] ++(0,-1.5) coordinate (b) to [bulb] (q2.C |- g) -- (g)
(o2) -- (o2 |- b) -- ++(1,0) to [cC] (b)
;
\CalcC{q1}
\CalcC{q2}
\end{circuitikz}
\end{document}