Guidance related to working at OpenCraft without prior Full-time Job experience but only with Internship/Part-time experience

Hey!

About Me :
I am HARSH PRATAP SINGH, a Freshman (1st Year Student) at the Indian Institute of Technology, Kanpur, pursuing my Bachelor’s in Earth Science/Geological Informatics (I took some Computer Science courses out of interest).
I am currently interested in Full Stack Development and Infrastructure (DevOps/SRE/Platform Engineering), so in pursuit of my interest (and employment), I have already started working on my skills. Currently, I am doing Google Summer of Code 2023 under the Jenkins organization. In future, I plan to get myself involved in other Open Source programs as well to be as skilled a professional as possible.

How I came to know about the organization?
While I was browsing through different remote-first (because I want to travel the world ) companies which embrace Open Source (as I am an absolute lover of communities and will try to become a maintainer of Jenkins plugin after Google Summer of Code soon) so that I can apply in them for Internship or Full time, I came across OpenCraft.
I found the philosophy and values of OpenCraft very appealing, and thus I read more about the company through its comprehensive HandBook. I looked at the company’s codebase and tech talks at edX a bit and was intrigued.

Why approaching you guys?
As I want to travel, a remote-first Open Source company is my first choice as an employer. Now I have three options available to me for jobs :

  1. Get a typical job at a top tech giant. - Last option if nothing works out. It’s not that difficult as they filter candidates only based on Whiteboard questions and behavioural rounds, which I should be able to ace after working hard on them, not focusing significantly on real-world skills and experience, which is not what I want. I want my approach to be like 35% theoretical Computer Science and 65% real-world experience. No travel and, most important problem, no Open Source is a big con here for me :(
  2. Get a job at a niche, non-remote Open Source startup - a good enough option for me! I can be good at a niche in technology that companies are hiring for and get hired. The problem is the sacrifice of travel, but at least I get Open Source.
  3. Get a job at a fully remote distributed Open Source company like GitLab, Automattic or OpenCraft - most lucrative opportunity for me personally! As these companies are already established, I will learn a lot in the company and broaden my horizon of knowledge. I will be able to learn something about everything and everything about something. As mostly senior developers join in these companies, it will provide me with accelerated learning and even improve my Leadership skills!

Now it was mentioned in the Handbook that Junior Developers are not hired in the organization as they may not be able to cope with Remote environments, and their Quality and efficiency of working may not be sufficient. But it was also mentioned that We sometimes make an exception for a prolific open source contributor who has demonstrated great technical and social skills in his contributions, and thus already shows a senior profile.. I am on a journey to become that prolific developer in my College life (by contributing to different Open Source communities in a Remote environment), and of course, I am working hard on it! I am also assured that I won’t be discriminated against based on my Degree if I possess robust Computer Science fundamentals.

Also, being an Open Source Developer is everyone’s dream job, right?!

How I plan to make myself capable of joining OpenCraft?
I know it sounds overconfident/too aggressive to get into a Senior Developer position right after college, but I think if I work hard enough, I can pull it off! (or maybe at least become a Mid-level engineer so that I can join after a year or two of work experience)
With reference to this JobAd I am already contributing to Open Source (learning JAVA, Docker, GitLab unit functional testing and more currently in Google Summer of Code), I have worked with Python but to gain real world experience will contribute to Python Open Source codebase with Django. I will sharpen my full-stack skills too by contributing to Open Source Projects involving React, TypeScript and Go with SQL databases. All the additional skills that are mentioned in the JobAd related to DevOps, I will try contributing to some of them and to gain confidence on them I will also try to make a project showing my skills required for the job. If I get the opportunity to visit/speak at conferences like KubeCon, cDFcon+GitOpsCon, Open eDx confrence and other international conferences I will try that too as OpenCraft employees have to give technical talks every year. Maybe will even try to contribute to OpenCraft codebase to judge myself before applying! By the way I am not talking about silly contributions here, actual useful code contributions!

I plan to apply to OpenCraft during my Final Year (4th year) because it will provide me freedom in terms of Salary as well as serves society positively by improving the EdTech sector.

So finally, the main question after reading all this - How can I ensure my employment in OpenCraft upon graduation? Does the interview process include WhiteBoard problems (Data Structure and Algorithms, System Design and other CS-based questions like other organisations) other than Trial Project (fantastic interview strategy, I must say!)?
To travel, I need an international salary. Can an Indian (who wants to travel internationally) get paid according to international standards (not necessarily San-Franciso level salaries as they are inflated)? As its mentioned in the Handbook, if two people produce the same thing, it shouldn’t matter which country they live in?.

What are some cons of working in the company, if any? Any suggestion/advice you have for me? Of course I will apply to other companies as well as I will be highly skilled developer till my graduation if everything goes as planned.

Thank you for reading this. Appreciate it!
Warm Regards

3 Likes

The interview has some pretty basic code questions that are used to verify you can think your way through coding and know your way around the libraries we use. At least, it did when I was brought on board. It’s not a big algorithm showcase.

Probably the most important parts of your application are going to be demonstrable skill via open source contributions and knowledge of the ecosystem we work with. If you pass that hurdle, you get the trial project, which is best challenge we have for verifying you’re up for joining the team.

Specifics of compensation are under wraps but I can tell you that there are digital nomads on the team who hop from place to place, and their compensation is not based on where they’re from. It’s based on the rate that they set, so long as it’s within a range we’re willing to pay. The compensation section of the handbook is truthful.

As the company is very flat in its structure compared to most, there is a lot more responsibility in the hands of individual team members. This means you will have more strategic involvement in the planning and execution of projects. You’ll draft estimates, you’ll attend meetings, you’ll do things that are typically reserved for managers in other companies (though not at the same degree since these responsibilities are more distributed.)

During some periods, the amount of work in this category is disproportionate, and this results in us huddling together to figure out how to refactor our processes to reduce this overhead work or automate more-- but there’s not a way to eliminate the need for this overhead work on individual team members without restricting some of the core freedoms of the team in terms of self-directed work. So, if you’re expecting someone else to pick your tasks for you and only ever code, you will be disappointed. You will need to do these overhead tasks at least some of the time.

To those that stay with the company, this tradeoff is worth it-- I very much enjoy the freedom and flexibility this allows as a result. But we have lost team members in periods where the overhead has gotten overwhelming, and newcomers who aren’t able to adapt to these processes don’t stay.

That’s the main con. The second con is also a pro depending on how you look at it-- you’re not working on the same thing each day and most team members end up hopping projects fairly frequently. That’s great for broadening your experience but can be disorienting from day-to-day.

Keep contributing to Open Source projects. If you want to work here in particular, find a project using Django and something using React, and learn the basics of DB design-- at least what data types are best, and when to index columns, for instance.

Good luck with your education, and your future application!

4 Likes

Thanks for the guidance @Fox I will be a future applicant if everything goes well!
Thanks for your time! Appreciate it.

1 Like