Senior Software Engineer
Apply now-
5 or more years
Remote /Full time
United States/Mexico/LATAM
Description:
Will develop information systems by studying operations; designing, developing and installing software solutions; support and help develop the software team. The Senior Software Engineer will work closely with their team in completing software development projects and producing, testing, and debugging code to ensure the continuation of quality of products and services. They will work with the Technical Lead to define software requirements and take the lead on operational and technical projects. They will work vigorously in developing and maintaining high-quality software. The Senior Software Engineer will leverage the company’s enterprise resources and capabilities in creating and fulfilling value-based solutions, to meet both customers and company’s current requirements and expectations.
What will you do?
- Develops software solutions by studying information needs, conferring with users, studying systems flow, data usage, and work processes; investigating problem areas; and following the software development lifecycle .
- Design, develop and implement unit testing for existing code base and for new functionality under development.
- Determines operational feasibility by evaluating analysis, problem definition, requirements, solution development, and proposed solutions.
- Collaborate with internal and external teams to fix and improve products.
- Document development phases and monitor systems.
- Develops technical specifications to propose new development and guide its implementation.
- Develop and implement complex applications on one or more platforms.
- Collaborate with the team to ensure code specifications are executed on-time and as planned.
- Be a subject matter expert on our products, processes, and operations, and remain up-to-date on industry news and advances.
- Attend training to understand technical aspects of the industry and keep up with new technologies.
Requirements:
- Bachelor's Degree (Bsc/B.A.) or equivalent four-year degree in Computer Science or a related degree.
- 5 or more years of experience as a software engineer preferred.
- In-depth knowledge of software architecture and design patterns, and test/QA design principles is required.
- In-depth knowledge of one or more programming languages, such as Python, JavaScript, PHP, Java, Clojure or others.
- Strong experience designing and building backend systems with languages such as PHP, Python, Java, NodeJS.
- Working knowledge of open source databases and data stores. (e.g. MySQL, PostgreSQL, Memcache, Redis, ElasticSearch).
- In-depth understanding of security principles and best practices for handling sensitive data, and familiarity with OWASP security recommendations.
- Good understanding of queues, data structures and algorithms applicable for application development.
- Experience designing and integrating RESTful APIs.
- Experience designing and writing testable code (unit tests, integration tests).
- Understanding of cloud computing and familiarity with distributed computing concepts.
- Familiarity with AWS or other cloud providers.
- Hands-on experience with GNU/Linux based systems (SSH, scripting, etc).
- Proficiency with at least one scripting language such as bash, python, perl or similar.
- Experience using modern version control systems such as Git.
- Excellent oral and written communication skills, including ability to express highly technical information in the English language.
- Extensive experience in software development, scripting and project management.
- Experience using system monitoring tools and automated testing frameworks.
- Has mentored junior software developers on design patterns, development best practices and DevOps trade-offs.
- Fluency in the English language (speak, read, and write) required.
WHY WORK WITH US?
- Great team.
- Long-term projects.
- Remote work.
- Growth opportunities.