Senior Backend Engineer
Description
Company Overview
Lean Tech is a dynamic and growing organization headquartered in MedellĂn,
Colombia, specializing in software development and IT services across the
entertainment, financial, and logistics sectors. We are committed to driving
technological transformation and foster a culture centered on collaboration,
innovation, and excellence. Our supportive and inclusive environment promotes
substantial career growth. By partnering with distinguished engineering teams in
Latin America and the United States, Lean Tech delivers cross-industry solutions,
maintaining a significant presence in both regional and international markets.
Position Overview
As a Backend Integration Engineer at Lean Tech, you will play a crucial role in
developing and maintaining scalable, event-driven backend services that power
mission-critical systems. This is a backend-focused engineering position with a
strong emphasis on building robust integration services using F# and Kafka within
a cloud-native architecture, primarily on AWS. You will contribute to architectural
decisions, drive best practices for reliability and observability, and collaborate with
cross-functional teams to ensure seamless integration workflows. The role involves
hands-on development, participation in code reviews, design documentation, and
an on-call rotation to ensure the continuous availability and responsiveness of
production systems. We are seeking individuals with a solid understanding of
functional programming and distributed systems concepts, who are adept at
working with relational databases and event-driven architectures. This position
requires hands-on experience with F# and functional programming. Familiarity with
containerization using Docker is expected, and knowledge of CI/CD practices,
GitHub Actions, and Terraform for deployment templates is beneficial. You will be
part of a dynamic team focused on reliability-first development, aiming to minimize
off-hours incidents through thoughtful design and proactive monitoring.
Key Responsibilities
- Design and implement scalable, event-driven backend integration services
using Kafka, with a focus on message passing, stream processing, and robust
delivery semantics. - Contribute to architectural decisions and drive best practices for integration
reliability, observability, and maintainability within a cloud-native environment. - Develop and maintain robust backend services using F#
- Design and evolve RESTful and gRPC APIs with a focus on versioning, clear
contracts, and comprehensive documentation. - Utilize Kafka as the primary messaging system for event-driven
communication. - Design and operate distributed systems for real-time event processing,
addressing performance and reliability through techniques like partitioning,
batching, backpressure handling, windowing, and stateful stream processing. - Collaborate with cross-functional teams to align integration services with
business workflows and ensure seamless data flow.
Implement comprehensive unit and integration testing strategies to ensure
code quality and system stability. - Maintain operational awareness across infrastructure, CI/CD pipelines, and
application layers, including participation in an on-call rotation for production
systems. - Continuously improve system design and performance, focusing on reducing
technical debt and enhancing user experience. - Participate in code reviews, contribute to design documentation, and engage
in peer mentoring. - Manage and debug data interactions with relational databases such as
PostgreSQL and SQL Server, and potentially NoSQL databases like Mongo. - Support the transition to AWS cloud infrastructure, leveraging services like S3,
SQS, and Lambda where applicable. - Contribute to the development and maintenance of CI/CD pipelines, with
familiarity in tools like GitHub Actions and Terraform being beneficial. - Collaborate with front-end engineers to deliver end-to-end solutions,
occasionally contributing to front-end development as needed. - Participation in an on-call rotation will be required in the near future as the
team grows.
Required Skills & Experience - Professional experience with F# for backend service development.
- Solid understanding of functional programming principles, which are
considered a core requirement. - Strong grasp of distributed systems fundamentals including messaging
semantics, consistency models, backpressure strategies, windowing, and
eventual consistency. - Practical experience with event-driven architectures and message passing
concepts, including idempotency and eventual consistency. - Hands-on experience with Apache Kafka: designing topics, partitions,
consumer groups, and applying delivery semantics such as at-least-once and
exactly-once.
Hands-on experience developing and operating cloud-hosted applications,
preferably on AWS, due to an ongoing migration from Azure. - Strong understanding of relational databases, including SQL querying,
indexing, and debugging. Experience with PostgreSQL and SQL Server is
utilized. - Proficiency in unit and integration testing practices.
- Experience with Docker for containerization is required.
- Familiarity with CI/CD practices is necessary for maintaining a strong working
knowledge of the stack. - Ability to work collaboratively in high-impact teams, supported by strong
documentation and communication practices.
Nice to Have Skills - Familiarity with container orchestration tools like Kubernetes.
- Familiarity with gRPC or similar RPC frameworks for inter-service
communication, including defining service contracts and versioning schemas. - Knowledge of infrastructure and networking within cloud environments.
- Familiarity with stream processing concepts such as partitioning, parallelism,
low-latency processing, backpressure, batching, windowing, and stateful
stream processing (e.g., using Kafka Streams or equivalent frameworks). - Experience with CI/CD tools and practices, including GitHub Actions and
Terraform for deployment templates. - Familiarity with NoSQL databases, such as MongoDB.
- Experience with front-end technologies like React and TypeScript.
- Familiarity with observability tools and practices for production systems.
- Experience with SQL Server and PostgreSQL databases.
Soft Skills - Clear and Concise Communication: Ability to articulate complex technical
designs, decisions, and intent effectively through documentation and
discussions, ensuring alignment with cross-functional teams and stakeholders. - Strong Sense of Ownership and Initiative: Demonstrates a proactive and selfmotivated
approach to problem-solving and continuous improvement, taking
responsibility for the reliability and maintainability of integration services. - Adaptability and Collaboration in Distributed Teams: Thrives in a dynamic,
fast-paced, and distributed work environment, valuing feedback and
contributing to team growth through empathetic collaboration. - Problem-Solving and Continuous Improvement Mindset: Possesses strong
analytical skills to identify and resolve technical challenges, coupled with a
proactive drive to enhance system design, performance, and reduce technical
debt. - Reliability-First Development Focus: Committed to building highly reliable and
observable systems, actively contributing to minimizing critical incidents
through thoughtful design and operational readiness.
Why You Will Love Working with Us
Join a powerful tech workforce and help us change the world through technology
Professional development opportunities with international customers Collaborative
work environment Career path and mentorship programs that will lead to new
levels. Join Lean Tech and contribute to shaping the data landscape within a
dynamic and growing organization. Your skills will be honed, and your contributions
will play a vital role in our continued success. Lean Tech is an equal opportunity
employer. We celebrate diversity and are committed to creating an inclusive
environment for all employees.