1p3a Question · Sep 2025 · USA

Fortinet Full Stack Developer Online Assessment Review - September 27, 2025

4 replies

Question Details

This post was last edited by ABAJ on 2025-9-27 19:13. I applied for the full stack exam, which has 4 questions as shown in the image, 135 minutes. Fortinet.png (97.3 KB, Downloads: 0) Download Attachm

Full Details

This post was last edited by ABAJ on 2025-9-27 19:13. I applied for the full stack exam, which has 4 questions as shown in the image, 135 minutes. Fortinet.png (97.3 KB, Downloads: 0) Download Attachment Save to Album Fortinet.png Uploaded 2025-9-28 09:51 The following content requires a score higher than 188. You can already view it. Q1: Your team is creating a new web application that will be accessible by multiple different users and groups of users. Each user within the system has a specific permission level, and different resources within the application require different permission levels. It is your responsibility to create a module that will determine which users and groups can access a resource of a specific permission level. You will be provided an array of users and groups (type UserOrGroup) which has the following structure: interface User { name: string; type: 'user': permissionLevel: number: } interface Member { name: string; type: 'user' | 'group' } interface UserGroup { name: string; type: "group'; members: Member |]; } type User0rGroup = User | UserGroup; type User0rGroup = User | UserGroup; Permission is granted according to the following rules: If the entry is a user, then the user's permission level must be greater than or equal to the required permission level. If the entry is a user group, then every user's permission level within group must be greater than or equal to the required permission level. It's possible for a user and a group to have the same name Function Description: Complete the function permittedUsersAndGroups in the editor below. The function must return an array of names, where eac name is either the name of a permitted user or group. The order of the returned names must match the input order.permittedUsersAndGroups has the following parameters: UserOrGroupll: usersGroups number: The requiredPermissionLevel recursion is troublesome because the test cases don't show the specific input. There are two edge cases: 1. User and group have the same name; 2. Member is empty. Q2: A scenario-based problem about Network Address Translation (NAT) traffic flowing through a FortiGate firewall. The goal is to track and identify the Source IP, Source Port, Destination IP, and Destination Port for both the Request packet (from the Workstation to the Web Server) and the Response packet (from the Web Server back to the Workstation) at two different points in the network: Point A: On the internal LAN, between the Workstation and the FortiGate firewall. Point B: On the internet, between the FortiGate firewall and the Web Server. A table was provided, followed by 14 fill-in-the-blank questions. Q3: An Angular question. The interface is very narrow and doesn't allow switching tabs, resulting in a poor user experience. The user should see a welcome page in the / path. It contains links to sections where the client can manage settings. Once logged in, the user should see a list of instances. they own in the / instances path. It should include the instance name, state, processor, memory, disk, and assigned IP address. If the user is not authenticated, they should be redirected to the path /login and see the login form. Initially, the user is not authenticated. The user should be able to fill out a login form with any (at this stage of prototyping) login/password combination, thus emulating a real back-end authentication process. The user should then be redirected back to the / instances path. Q4: Python: Event Reservation Implement a ShowBooking service for a theater with multiple auditoriums. Each auditorium has a fixed seating capacity and can host a single event per day. The service handles the following: Stores which event will take place in an auditorium of the theater Avoids conflicts when multiple customers are booking tickets for an event Implement two classes: 1. Complete the Repo class that implements the Repo interface, which stores booking information: registerEventinAuditorium(auditoriumNumber, eventid, capacity): Create and store an Auditorium object from the parameters. getAuditoriumDetailsFor Event(evenld):

Return the Auditorium object for the event. getNumberOfSeatsBookedOrUnderBookingForEvent(eventld):

Return the sum of tickets booked and tickets under booking for the event. addUnderBooking(event/d, userid): Store information that the user is booking an event. removeUnderBooking(eventid, userld): Remove information that the user is booking an event. addSuccessfulBooking(eventld, userid): Store information that the user has successfully booked an event. 2. Complete the BookingService class that implements the BookingService interface: startBookingProcess(eventld, userld): If the sum of booked and under-booking tickets is less than the auditorium capacity, start booking for the user and return true: otherwise,

return false. confirmBookingStatus(evenid, userid, bookingSuccessful): If the booking is successful, update its status and return a BookingConclusion object with the auditorium number and confirmation status. The driver code creates an object of the class Repo and passes it to the constructor of the class BookingService. The driver code uses this object to call registerEventinAuditorium(int auditoriumNumber, int eventid, int capacity) and register information regarding events and auditoriums. It also handles reading input from the console and calling appropriate functions. Angular needs to be written in ts Wish you good luck, rice and noodles

Free preview — 6 questions shown. Unlock all Fortinet questions →

About This Question

This is a reported interview question from a fortinet interview for a swe role during the oa round reported in 2025.

It covers the following topics: Array, Recursion, Strings, Stack, Backtracking, Recursion, Arrays, Stack .

About Fortinet Interview Reports

This question was reported by a candidate who interviewed at Fortinet. LeakCode aggregates interview reports from 10+ sources, including 1Point3Acres, Glassdoor, LeetCode Discuss, Blind, Reddit, Indeed, and Nowcoder. Each report is translated where necessary, deduplicated against existing entries, and tagged by company, role, round type, and reporting date.

Use this question as one calibration data point, not a memorization target. Companies typically rotate their question pools every 2-4 months; the exact wording of a 2024 question may differ from what you encounter today. The underlying pattern, difficulty level, and follow-up depth at Fortinet are the higher-signal extractions to take from this report.

For broader preparation context, the Fortinet interview process typically includes a recruiter screen, one or two technical phone screens, and a 4-5 round on-site loop covering coding, system design (at L4+ levels), and behavioral. Reports tagged on LeakCode show the round-by-round distribution and typical difficulty calibration. To browse questions filtered by round type and seniority, use the company hub linked above.

How To Practice This Type of Question

Solve similar problems on LeetCode under timed conditions (25-35 minutes per medium difficulty). The goal is pattern recognition: recognize the underlying technique (sliding window, two-pointer, BFS, memoized recursion, etc.) within 60-90 seconds of reading. Strong candidates verbalize their hypothesis out loud before coding, then iterate based on feedback. Weak candidates dive into implementation immediately, lose time on the wrong approach, and run out of time for follow-ups.

Companies update their question pools every 2-4 months. The exact wording of any given question may have been retired by the time you interview. Focus your prep on the pattern, not the specific problem. The patterns that appear in Fortinet reports consistently are the ones worth investing in; one-off niche problems are not.

During Your Fortinet Round

Apply the standard interview round template: clarify requirements (2-3 minutes), state your approach out loud and confirm direction with the interviewer (3-5 minutes), code with narration (15-25 minutes), test with concrete examples including edge cases (5 minutes), discuss optimization or trade-offs if time permits (5 minutes). This template is universally accepted across FAANG and adjacent companies; deviating from it produces weaker interviewer feedback signal.

The single most predictive failure mode in Fortinet reports tagged "no hire": not asking clarifying questions. Interviewers are explicitly trained to weight this. Strong candidates ask 3-5 clarifying questions even on problems that look obvious; weak candidates dive into code immediately. The clarifying-question check is often the first signal recorded in the interviewer's written notes.