Technical Leader

Remote Position
Engineering – Full-Stack /
Employee or FT Contractor (Remote) /
Remote

Requirements

    • Bachelor's Degree (B.A.) or equivalent in Computer Science, Software Engineering, or related field.
    • 5-7 years of proven experience in a similar role.
    • Full-stack experience with hands-on expertise in both backend and frontend development.
    • Strong knowledge of Clojure, Java, or JavaScript.
    • Familiarity with AWS cloud services (e.g., Lambdas, S3, RabbitMQ).
    • Experience developing microservices; Serverless framework experience is a plus.
    • Proficiency in at least two programming languages, with experience in functional programming (Clojure, Elixir, etc.) being a huge plus.
    • Strong understanding of modern web frameworks (VueJs, React) and ES6/JavaScript.
    • Working knowledge of open-source databases and data stores (MySQL, PostgreSQL, Redis, ElasticSearch).
    • Good understanding of security principles and OWASP recommendations.
    • Experience designing and integrating RESTful APIs.
    • Proficiency with scripting languages (bash, Python, Perl).
    • Knowledge of version control systems (Git).
    • Excellent collaboration and communication skills.
    • Ability to design and write testable code (unit tests, integration tests).
    • Experience with GNU/Linux-based systems (SSH, scripting).
    • Desire to grow in development with functional programming languages.
    • Ability to learn new languages and technologies.

Responsibilities:

    • Develop new features and fix bugs on existing features.
    • Provide input and make decisions on development solutions and software architecture.
    • Follow agile development processes and collaborate closely with other developers and colleagues.
    • Mentor and guide other engineers through peer reviews, reviewing pull requests and code challenge submissions, participating in technical interviews, defining or reviewing architecture, assisting with the selection of tools, programming languages, stacks, etc., and creating proof of concept implementations.
    • Enhance the team's work throughput through various activities.
    • Take ownership of an entire system, product, subsystem, project, or requirement.
    • Familiarize yourself with the complete codebase, not just the pieces you worked on previously.
    • Understand the technical debt and know why, when, and how it must be addressed.
    • Know the infrastructure, including how it is put into production, how all pieces work together to provide a service, and the complete flow of information including all use cases.
    • Design complex systems and understand the overall architecture.
    • Translate business requirements into concrete tasks.
    • Familiarize yourself with systems designed by others and understand them thoroughly.
    • Define projects in a way that utilizes the team's availability and skills.
    • Break up complex tasks into manageable pieces and decouple requirements for parallel implementation.
    • Help Technical Managers negotiate with business by providing accurate estimates and evidence.
    • Code when necessary but prioritize delegation and problem-solving within the team.
    • Communicate clearly to the team, product, and business stakeholders about the importance of particular tasks and ensure they are attended to in a timely manner.
    • Influence other Tech Leads and Technical Managers to support changes that are part of a bigger system, focusing on sustainability and technical debt management.