Young hacker smiling

Zero false positives

Expert intelligence + effective automation


At this stage of the process, we are just a few steps from finishing. This next step, for which you have been selected among more than 6000 candidates, seeks to make you a part of an intensive self-training in programming and hacking funded by Fluid Attacks, called Immersion.

1. Philosophy

The goal of this stage is for you to reach the highest levels of technical strength prior to the execution of real pentests on financial and telecommunications systems. This stage also aims to validate your human and teamwork skills.

Due to the extent of the process, Fluid Attacks, regardless of your progress in points and ranking, looks to give monetary compensation for the time invested.

2. Objectives

  1. Solve 30 unique programming challenges.

  2. Solve 30 unique ctf-hacking challenges.

  3. Solve 30 unique vbd-hacking challenges.

  4. Publish 3 blog articles.

  5. Finish 3 training projects.

3. Terms

  1. All terms from the technical challenge stage apply.

  2. You must report all the time spent using the assigned tool in automatic mode.

  3. Training must begin at 7:00 AM in Fluid Attacks office.

  4. You must send at least one MR accepted into master or a standard progress report (when the MR is rejected) before 6:00 PM of the current day.

  5. You can continue training and reporting time outside of the office in a place of your preference, as long as you comply with the 2 previous rules.

  6. If for some exceptional reason you can not complete the training in person, a weekly training schedule to do it remotely, must be established.

  7. Training must be done using your own personal laptop.

  8. Your daily dedication will be evaluated using a reference time of 48 hours/week.

  9. It is expected that you can dedicate every business day of the week in person at the company’s facilities.

  10. If for some personal or health issue it is not possible for you to go to the office to complete the challenges, that day no challenges are to be completed nor is training time reported with the assigned tool.

  11. On the third business day of each week, you must train at your maximum capacity and dedication possible.

4. Criteria

  1. For the challenges, the same criteria from the challenge stage.

  2. For the articles, the criteria defined in the style guide

5. Cycles

  1. Training is done in weekly cycles or iterations.

  2. Initially, you are offered one cycle of training.

  3. At the end of each cycle any of the following can happen:

    1. Nothing is notified, which implies the cycle is renewed one more week.

    2. Notify that we do not want to continue with another cycle and, therefore, terminate the process.

    3. Formally notify that we don’t want to continue with another cycle Because we want to advance to the next stage.

  4. Usually 12 to 36 cycles are required to finish this stage.

    1. This is merely an estimate, It depends entirely on your dedication and performance.

6. Training sequence

Hacking/Programming challenges and blog entries must be presented in the following order:

  1. Complete five (5) challenge cycles.

    1. A challenge cycle consists of the following steps, that you must complete in strict order:

      1. one (1) approved MR solving a programming challenge in the training repository,

      2. one (1) approved MR solving a ctf-hacking challenge in the training repository, and

      3. one (1) approved MR solving a vbd-hacking challenge in the writeups repository. A MR is considered approved when it’s merged to the master branch of each repository.

    2. Please consider the following restrictions:

      • Do NOT send consecutive MR solving challenges of the same type.

      • Do NOT change the cycle order in any way.

      • Do NOT skip any challenge type in the cycle.

  2. Once you have completed five (5) challenge cycles, write one (1) article for the blog, by sending a MR to the web repository.

  3. Repeat the previous steps until you complete the objectives

  4. For programming challenges you should take into account:

    1. Each programming challenge completed must be one (1) score point greater than the previous one.

    2. If no challenges with greater score exist, start again solving a challenge of lower score.

    3. If you reach a point where the difficulty makes it hard to advance:

      1. Read about the topics you don’t master yet, (graphs, trees, modular arithmetic, etc).

      2. Try different approaches, (Recursion, Heuristics, Dynamic Programming, Greedy, Divide and Conquer, etc).

      3. Persevere! We are interested in disciplined programmers.

    4. If you reach a point where you definitely cannot advance:

      1. Remember that the process is more important than the goal.

      2. Start again solving a different challenge, the new difficulty is up to you.

7. Payment

  1. The time reported to training will be paid at $9,468 COP an hour.

  2. We expect a minimum dedication of 80% (based on the reference time).

  3. If the total dedication is greater or lower than what is expected, that time will be paid accordingly.

  4. The first 96 hours of training time reported will not be compensated and If you continue in the training stage, we will guarantee the payment of the next 96 hours.

  5. The contract is a contract for services with monthly payments.

  6. You must pay your social security corresponding to these services as an independent worker.

  7. You must present, in the 1st business day of the following month, the documents that allow us to make payments to your account:

    1. A bill for the hours worked in the previous month.

    2. Payment stub of your social security for the previous period.

If you live in the outskirts of Bogotá or Medellín, you can initially perform the immersion process remotely with all the other unalterable terms, if and only if:

  1. When we ask you to continue the immersion process in person you accept to come to our facilities in maximum 7 calendar days after the request.

  2. When you start the immersion process in person, the hourly pay rate will be twice as much as indicated (so you can cover transportation and accommodation costs).

  3. We guarantee minimum 4 immersion cycles in this stage.

  4. We clarify that, in case of hiring, the job will be performed in person in our facilities located in Medellín or Bogotá. The immersion is still a stage of the selection process, where we seek to improve the interaction with our team and deepen other training topics.

If you are currently working somewhere else, you can perform the immersion under the following conditions:

  1. Indicate the weekly dedication that you are willing to train (minimum 8 hours).

  2. Perform it remotely without moving to our facilities.

8. Get Started

This stage begins when:

  1. You finish the technical challenge stage

  2. You register as a third party in this form following these instructions:

    1. Business name: Enter your full name.

    2. ITIN/SSN: Follow the instructions in IRS website and attach the PDF document.

    3. Concept: Enter your first name and initial of your last name.

    4. Relation: Supplier.

    5. Bank letter: Attach the corresponding PDF of the financial entity of your choice.

    6. Payment deadline: 5 business days.

    7. Payment methods: Ordinary.

    8. Reception of invoice and Reception days: First day of every month.

    9. Fill out: Enter your personal email account (The same one with which you have been completing the selection process).

    10. Fields that are not specified here are not mandatory and do not need to be filled out.

  3. Send us an email ( with the following: .

I have read and understood all the documentation and terms of the immersion stage. I accept the offer and confirm that I can start on AAAA/MM/DD.


  • ProfessionalCard.pdf (If it applies in your country and are an undergraduate)

  • PaymentReceiptProfessionalCard.pdf (If it applies in your country and are an undergraduate but don’t yet have it)

  • Neither (If you have not graduated yet).

Important Other procedural details of how the every day training will be carried out, the programming languages, the documentation format and the required tools, among others, will be revealed on the first day of Immersion and when you have finished all the items mentioned in this section.

9. End

The immersion stage ends under any of the following circumstances:

  1. You have successfully completed the objectives

  2. You are not meeting all terms and criteria defined in this stage.

If you have any doubts, don’t hesitate to contact us at

Service status - Terms of Use