Position: Team Lead
Category: Python
English level: fluent
Years of experience: 11

I've joined a team of ten engineers with a significant attrition rate and biweekly customer escalations due to poor delivery. In 3 months the sprint completion rate was 100%, attrition dropped to zero on the scope of 1.5 years; the team started consistently meeting its sprint and quarterly goals, and was generally regarded as "the good and reliable team" on the account. I've mentored a team member for a potential promotion; they've been promoted to team leader after my departure, and have been leading the team for at least two years since.

I was tasked with delivering a vaguely defined PoC project for a prospective customer. The team on the customer side that was supposed to provide us with details was outright hostile and had a stake in our failure. The team consisted of several reluctant engineers. I have designed the architecture of the project, set up the team's workflow, and started coding. In 3 months we've delivered the project, identifying the risky/unknown areas and isolating them architecturally; the prospective customer signed a contract with our company.

I was tasked with owning a piece of functionality in a microservice-oriented product for a new customer. I've designed the solution, built a team, set up the team workflow, and delivered most of the code. The project was originally beyond the engineering and design standards at the customer's company. A year later, months after my departure, we've discovered that the project was ultimately overcomplicated and over-engineered; most of the "just in case" architecture I have built into it never turned out to be useful. I have learned a lot from that one.

I was tasked with developing an existing PoC machine learning project and pushing it into production. Having had little knowledge of proper architecture and development practices back then, I've developed a messy system without clear interfaces and little automated testing. I have learned a lot from that one, too.
For the past 8 years I've been leading teams of various sizes in various circumstances; the rest of my experience is somewhat less representative.

I've led teams sized 2 through 12 engineers; depending on the external managerial load, I can still be a contributing engineer in a team of up to 5.

Engineering-wise, I've been building web applications and microservices in Python and Golang, including greenfield projects and the development and maintenance of legacy applications. My typical duties include architecture and design on all levels and the actual implementation. I tend to practice TDD whenever possible and end-to-end functional testing in all cases. I've participated in products in active production, and I'm familiar with support operations, monitoring, and error reporting.

In terms of leadership, I've built teams around myself and joined pre-existing teams, established engineering practices, implemented, enforced, and maintained Kanban and Scrum. I typically conduct a full stack of HR processes expected from a team leader: performance reviews, 1:1s, goal setting and facilitation, mentorship, etc.

In external interactions, I generally build solid, predictable, and lasting relationships with the customers, owning timelines and commitments, going that extra mile to provide just one more bit of transparency and accountability. I take responsibility for the team's actions while firmly delimiting external factors I couldn't have impacted.
I can receive a vague task, build a team, and set up the delivery of the product - design to production.

I can join an existing team at any phase of the cycle mentioned above in any role (backend engineer, team lead, tech lead, architect, etc).

I can develop PoCs of new products or ideas using new tech (including full-stack web development), though I do prefer to delegate the front-end work to a specialist.

I am fairly strict in maintaining my work/life balance; I probably won't be able to maintain 60hr work weeks.