Senior Software Developer
At Kartaca, our goal is to create the perfect solutions for our customers. With the business standards that we do not compromise and preferring free software, we work to develop products that make us proud.
We are looking for new teammates who share the same enthusiasm; are curious to learn, willing to add value to what they do, and have work ethics.
Requirements
- At least 4 years of professional software development experience
- A bachelor's degree in Computer Engineering, Software, Information Systems, or similar undergraduate programs at universities
- Proficient in either Java or Golang, preferably with PHP knowledge
- For those with more proficiency in Java: Proficient in Java programming language and experience in Hibernate, Spring, and Spring Boot application frameworks
- For those with more proficiency in Golang: Proficient in Go programming language and experience in application frameworks such as Fibre, Gin, and Echo, Good command of Go Routine and Channel models
- Able to work on developments regardless of full-stack or programming languages
- Worked with SQL (MSSQL, MySQL, PostgreSQL, Oracle, etc.) and NoSQL (Cassandra, Clickhouse, etc.) database technologies
- Has knowledge of sync-async system architectures
- Proficient in OOP concepts
- Worked with web services such as SOAP, XML, RPC, REST
- Knowledge of version control systems (SVN, CVS, GIT, etc.)
- Can work with Linux operating systems
- Preferably familiar with technologies such as Redis, Elasticsearch, RabbitMQ, Kafka
- Keen on developing themselves, learning new software languages, following open-source and free software related trends
- Able to demonstrate English proficiency of at least B2 level
Job Description
- Analyze, develop, and, when necessary, redesign existing or new applications
- Implement software testing processes to ensure software quality
- Develop high-quality and scalable software solutions using programming languages and best practice standards, focusing on performance, security, and usability
- Use tools and methodologies to automate and improve continuous integration and delivery processes
- Participate in code reviews, reviewing the written codes and following the processes
- Document code and systems comprehensively, creating documentation to facilitate the work of other developers and stakeholders
- Actively engage in different project management strategies such as Agile or Waterfall, communicating with internal teams or clients in testing, development, and analysis, and actively participating in the work progress
- Explore, learn, and implement different technologies and programming languages for specific needs