Overview
Skills
Job Details
We're seeking an experienced Lead Software Engineer. Someone who thrives in dynamic startup environments and brings a hands-on approach to both software development and leadership. This role combines technical expertise with the ability to architect best-practice solutions for ambiguous challenges. You'll play a key role in designing, building, and scaling the backend of our SaaS platform. If you've ever wished you could clone yourself to manage competing priorities, this role is your chance to step into a position designed for someone like you.
Hands-On Development:
Design and develop robust, scalable, and maintainable backend solutions using Python (FastAPI).
Contribute to frontend architecture and implementation (Next.js) as needed.
Architecture & Design:
Collaborate with internal teams to understand requirements, define architecture, and deliver best-practice SaaS solutions.
implement architectural patterns such as Domain-Driven Design (DDD), Hexagonal
Architecture, Event-Driven Architecture, Microservices, Clean Architecture, and Layered
Architecture to ensure system flexibility, scalability, and maintainability.
Utilize design patterns including Creational (Factory, Builder, Singleton), Structural (Adapter, Bridge, Decorator), Behavioral (Strategy, Observer, Command), Enterprise Integration, and Concurrency Patterns to build flexible and reusable code.
Apply SOLID principles to ensure modular, extensible, and maintainable codebases.
Embrace various programming paradigms such as Object-Oriented Programming (OOP), Functional Programming (FP), Event-Driven Programming, and Protocol-Oriented Programming to develop efficient and clean code.
Leadership & Collaboration:
Work closely with contractors and LLMs, ensuring alignment with company goals and quality standards.
Guide projects from ideation through delivery, focusing on scalability and maintainability.
Mentor and support team members, fostering a collaborative and growth-oriented environment
Database Expertise:
Designed and managed data storage solutions using both SQL (PostgreSQL)and NoSQL (DynamoDB) databases.
Optimize database performance and ensure data integrity
Self-Management:
Operate with autonomy, prioritizing and delivering on objectives within challenging timelines.
Manage multiple tasks, balancing deep focus with agility in responding to shifting priorities.
Problem Solving:
Embrace loosely defined tasks, driving clarity through collaboration and critical thinking
Address complex challenges with a mix of technical acumen, creativity, and pragmatism
Implement Python-specific idioms such as Duck Typing, EAFP (Easier to Ask for Forgiveness than Permission), Context Managers, Generators and Iterators, Descriptors and Properties, and Meta classes to write efficient and idiomatic Python code.
Leadership & Collaboration:
Work closely with contractors and LLMs, ensuring alignment with company goals and quality standards.
Guide projects from ideation through delivery, focusing on scalability and maintainability.
Mentor and support team members, fostering a collaborative and growth-oriented environment.
Technical Skills:
Python Expertise:
Deep understanding of Python and hands-on experience with FastAPI.
Proficiency in implementing architectural patterns like Domain-Driven Design, Hexagonal Architecture, Event-Driven Architecture, Microservices, Clean Architecture, and Layered Architecture.
Firm grasp of design patterns, including Creational, Structural, Behavioral, Enterprise Integration, and Concurrency Patterns.
Mastery of programming paradigms such as Object-Oriented Programming, Functional Programming, Event-Driven Programming, and Protocol-Oriented Programming.
Adherence to SOLID principles for creating modular and maintainable code.
Expertise in Python-specific idioms: Duck Typing, EAFP, Context Managers, Generators and Iterators, Descriptors and Properties, and Metaclasses.
Experience with application patterns like Repository Pattern, Unit of Work, Service Layer Pattern, Data Mapper Pattern, and Active Record Pattern.
Familiarity with system design concepts, including scalability patterns, resilience patterns, caching strategies, eventual consistency, CQRS, and event sourcing.
Proficiency in development methodologies such as Test-Driven Development (TDD), Behavior-Driven Development (BDD), Domain-Driven Development, and Contract-First Development.
Best practices in dependency and configuration management, error handling, logging and monitoring, security patterns, and performance optimization.