Apply for internships at Lunar Logic

Adventure awaits

Become a part of Lunar Logic's internship program

Apply for internships

We're hiring Ruby and Android interns!

It’s that time of the year, again. We’re organizing software development internships in Kraków. We’re looking for a couple of aspiring software developers who want to join us for a four month long journey.

We’re looking for people who care about their teammates. We think that being kind and humble are precious qualities of a software developer and a base for a fruitful collaboration. Striving for effective communication, we value one's ability to express thoughts and ideas clearly (also in English). We build a respectful environment, putting an effort into understanding our colleagues and giving them space to speak.

What are the tech requirements?

Ruby internship
Basic programming skills You know the basics of Ruby. You can work with different data types and programming constructs. Nice To Have: You know the basics of OOP concepts.
Problem solving skills When presented with a task: you are able to identify problems and propose different possible solutions, you can implement a solution in Ruby.
Databases You are familiar with basic database concepts. You are familiar with terms like table, column, row, primary and foreign key, constraints, relationship between tables. You can design a simple database. You understand how queries are used to access data from database. Nice To Have: You know the basics of SQL.
Web development concepts You are familiar with web development concepts, things like request-response cycle, client/server communication, HTTP protocol. Nice To Have: You know the basics of Ruby on Rails framework.
Familiarity with tools You know the basics of git, you can work with a terminal and a code editor.
Android internship
Basic programming skills You know the basics of Kotlin/Java. You know the basics of OOP concepts. You are aware of and can work with different data structures. You know the basics of Android SDK (a general understanding of what Activity, Fragment and other parts of Android app are). You have a general understanding of layouts used in Android.
Problem solving skills When presented with a task: you are able to identify problems and propose different possible solutions, you can implement a solution in Kotlin/Java.
Familiarity with tools You know the basics of git, you can work with Android Studio
Nice To Have: You are aware of some programming design patterns (e.g. Singleton, Adapter…). You are aware about different application design patterns in Android (e.g. MVVM, MVP, MVC). You know the basics of SQL.

How does the internship look like?

It lasts 4 months. We will strive for all our new comers to start together and have a warm up as one team. Later, after around a month, you will work with one or a couple of our developers, where you'll be a part of our regular project for a client. You will get everyday support and mentoring from us. You will work on actual products but without pressure to deliver outcomes instantaneously. The main focus of the internships is your learning, therefore we will also prepare different workshops and lectures, outside of your client project work, to cover concepts or skills we want you to learn here.

Is the internship paid?

Yes, we always reward the good work. There is a monthly salary of 3000 PLN net.

How does the recruitment process look like?

We’ll pick a group of people based on their applications and organize quick remote sessions in order to go through their solutions. As the last phase, we will invite the best-suited candidates for what we call Happy Hours. During Happy Hours you'll spend a few hours (around 4 in total) with Lunar folks doing different things with you: coding, chatting, brainstorming, joking, etc.

Am I going to work from the office or remotely?

You will work from the office mostly, we believe it is a great start, especially for interns. There are more opportunities to interact with experienced developers, brainstorm the solutions, learn some of the Lunars' stories, and have fun! Of course, it doesn't mean you will need to be at the office everyday. If it's needed, working remotely from time to time is also fine.

🦄 We welcome people with disabilities, people of any race, color, age, sex, origin, religion, sexual orientation, gender identity or expression. Let us know how we might make our environment more welcoming for you and we will help you thrive.

Apply

Registration closes on October 8th

Programming task

Description

Write Ruby (Ruby candidate) or Java/Kotlin (Android candidate) code that as an input accepts an array consisting of three numbers (integers). The code should change these numbers to meet the following requirements: 1. Each number should be divisible by three. 2. Sum of all three numbers should be as large as possible. Changing a number means increasing (decreasing is not allowed) any of its digits. Increasing a digit by one means one change, that is increasing a digit by five would mean five changes. You can perform up to six changes in total for all three numbers. For example: 1. [110, 222, 3333] can be changed to [111, 222, 3333] - this is one change 2. [111, 222, 33] can be changed to [114, 333, 33] - here we have six changes You can distribute changes among numbers as you wish. Digit 9 cannot be changed.

Examplary solution

INPUT: [784, 4765, 5291] OUTPUT: [984, 6765, 6291]
For some input numbers there is more than one solution possible. In such cases it’s enough to return one of them. However, if you’d like to do something extra, you can return all of the possible solutions. Also, it’s okay to submit a partially working solution.