Pros
1) Flexible working hours 2) Not forced to come into office (can work remote) 3) CEO is a good person and will treat you very well 4) Snacks, sodas, coffee available 5) Good working equipment provided - good and new laptop, assigned desk (standing), any keyboard/mouse of choice, free stationary 6) People are nice and friendly
Cons
1) Very less salary compared to the market average 2) Very small bonuses (if any) each year 3) Performance reviews are conducted very late and less frequently (only twice in more than 2 years in my case. However, I heard this has changed) 4) You will get assigned to a project that uses technologies you have no experience in. You need to learn them asap and still manage to stick to the deadline which is basically - AS SOON AS POSSIBLE. The time you spend is billed to the client and you will be punished if you take too much time to do a task. 5) Provided no training at the start of the project (I heard they have changed this now and are providing udemy courses) 6) You can be on multiple projects at the same time, which is why you will have to be good in all areas to make sure you don't get stuck and finish the tasks on time. 7) Project management is very much dependent on the type of manager and project you get. Some projects have a very small budget and they need to be completed in as little as 3 weeks. You are supposed to develop code from unclear requirements, do the design stuff yourself (UI/UX), do the testing yourself. 8) No senior engineers to help you if you get stuck. Basically you have to solve your own problems, that too as fast as possible (time is precious as it is billed to the client). No one cares why you are stuck. 9) Company's policy is to hire 3 college grads who will work for $60k/yr rather than hiring 2 engineers with 2-3 years of experience who will work for $90k/yr.