- Backgroud Experience (CV)
- Tech Skills (Tech interview)
- Making Questions (Applicant's Interest in the Company)
- coderpad.io (Sharing dev environment)
-
Talk about your experience and past projects. When they ask about past projects that you’ve worked on, make sure to emphasize why you are proud of what you accomplished. Were you passionate about the topic? Did you make difficult design decisions? Did you learn a new language and use it for the first time? This is your chance to brag about what you’ve done!
-
When they ask you to do a coding question, they are looking for your ability to solve and analyze problems.
-
Ask for clarifications before you begin coding. Faulty assumptions may lead you in the wrong direction. As you code, state and check assumptions with us to ensure they are reasonable.
-
Think out loud as you code. We want to see that you are able to communicate your design choices. Engineers need to discuss and make decisions with their teammates daily. Bonus: If you let they know what you’re thinking, they can also give you hints to guide you in the right direction.
-
Know your language. Although you will be able to search up syntax (not all companies, their minority actually) , it’s good to be comfortable with libraries for your language of choice in advance.
-
Show us that you’re comfortable testing your code! For example, think about edge cases (important), or write unit tests to prove that your solution is working (not important).
-
It’s not mandatory to reach the most efficient solution (but at least a good one).
-
Knowledge about space and time complexity is essential.
-
Leetcode (I use this for coding)
Pramp (I use this for praticing video interviews)
Cracking Coding Interview Programming Questions
I'm a undergraduated Computer Science student at University of Brasília. I started at the middle of 2016 and I'm will graduate in the end of next year
First of all I was introduced in C language, where I learned how to code my first lines of code, using some algorithms like binary search, then I moved to C++ to start in competitive programming area where I leard a lot of data structures and solving problems using eficient algorithms. Last Year I started learning more about developing softwares, my first project I used Javascript and SQL database, then learned Python to the Health News Search Software, C# was to a company challenge, Go Lang was to Programming Course Platform and Java/Docker/Kubernetes for IBM project.
- Health News Search Software
This was my second software that was actually used by a real client (Medical School of University of Brasília). This Medical School have a process called “Clipping Method” that consist in searching into the internet news about some subject, for example they want to find out what is going on with HIV in some region here in Brasil, they were looking manually each news and reading all of them and picking some pieces of the news that was considerated “interesting” and then putting all of them in a report.
Our job was to automate that process, so me and a friend created a web software that you chose what subject do you want to search and the region of that news, then they need to add keywords and chose the main web sites that they wan to search, then our software calls an API that returns all the news that have in common with that title, then we run our algorithm to score that news based on the keywords written before, then raking all the news so that the client can chose what news are going to the report and then the algorithm build automatically the report.
Since the number of clients was so small (2 or 3 people using 2 times in a week) that we didn't need to care about amount of requests and that complex problems.
I'm proud of this project because we reduced from 2 to 3 weeks of work to 2 to 3 hours of searching and reading, they really enjoyed our work and for that reason my teacher, responsible for us in that project, invited us to publish a paper related to that project, we submitted that paper this week and waiting for a response
- Programming Course Platform
This project is the biggest project that I have participated in my entire life. This project was divided into 2 parts, each of them needed 1 year to be done (the second part is still in production). The first part I was invited to rewrite all the material of a subject, because they were used to have class using Power Point and that stuff, so I moved that content to a website where the students can follow what is going on in that subject (called APC), then I was responsible for changing every content was not good or interesting to have in that subject, like removing merge sort implementation without any help in the exam or adding some ASCII information. Then the second part I suggested creating a new platform that the students can access information about the class, news, consult grades and send projects, so that the professor can follow the class evolution.
Now I'm working into analyzing the class data to plot some automatic graphs about the class over the years, to check, for example, if in some year some class have more problem with string than another, or if we have some difference from the class in the beginning or in the middle of the year and stuff like that.
I'm really proud of that project because I can help to track the class improvement and help the university to see what they are missing, and other point is that my Professor invited me to use this project into my undergraduate thesis because that project have a lot of impact in a real life.
First of all, I was introduced to Cognite in a training video interview, where a guy told me “I live here in Norway and have an awesome company that you should apply to work, it's called Cognite ”, so he gave me the website URL and I started searching about this company.
For what I understood, Cognite is a company that works with industrial data. Their core product is CDF (Cognite Data Fusion) that basically get all the industrial data and connect together to try mirror the real world as good as you can. They use Google Cloud technology to enable machine learning on industrial data.
And I'm here because I found really awesome what that company work, your office and for me that love have other experiences, applying to another country it's great even more trying to work in Cognite.
-
Is a paradigm that allow on demand network access to shared computing resources, now we don't need to maintain a lot of servers inside a company, because that's not cheap and have a lot of time-consuming to maintain that servers, other thing is that is really hard to scale and stuff like that.
-
Is a model for managing, storing and processing data online via the internet.
-
It is an “on demand” service, so that means that you use it when you need it.
-
Uses internet as a medium.
-
Resources are pooled together and used by multiple clients
-
Are good for scalability, to scale the resources
-
3 Delivery models of Cloud Computing :
- SAAS (Software as a Service) :
- On-Demand Service (Pay per use of application software
- Independent Platform (don't need to install the software on your pc)
- Runs a single instance of the software (make available for multiple end users)
- CLoud Computing cheap
- Accessible via a Web Browser or Lightweight Client Applications
- Examples (End costumers)
- Gmail, HelpDesk ...
- PROS :
- Universally accessible from any platform
- No need to commute, you can work from anyplace
- Excellent for collaborative working
- CONS :
- Browser Issues
- Internet Performance may dictate overall performance
- PAAS (Platform as a Service) :
- This service is made up of a programming language execution environment, an operating system, a web server and a database (encapsulate the environment where users can build, compile and run their programs without worrying of the underlying infrastructure
- You only mange data and the application resources all other resources are managed by the vendor
- Examples (Developers)
- Heroku, Windows Azure ...
- PROS:
- Cost effective rapid development (It's scalable)
- Faster market for developers
- Easy deployment of web applications
- Private or public deployment is possible
- CONS :
- Developers are limited to the providers languages and tools
- Migration issues (such as the risk of vendor lock-in)
- IAAS (Infrastructure as a Service)
- This services offers the computing architecture and infrastructure, all computing resources but in a virtual environment so that multiple users can access them
- Examples (System admins)
- AWS ECS, Go Grid ...
- PROS:
- The Cloud provides the infrastructure
- Enhanced scalability (dynamic workloads are supported)
- Flexible
- CONS :
- Security issues
- Network and services delays
- SAAS (Software as a Service) :
-
Functional Testing :
- Testing the core (variables methods and variables classes)
-
Non functional testing:
- Performance
- Scalability
- Load Balance
-
2 Types of tests :
- Black box
- You give the input and check the output, you don't see what is going on inside
- White box
- The difference is that now you know what is going on inside
- Black box
-
Levels of testing :
- Unit Test (Testing each class, individual component)
- Integration Test (Combine the component, classes and test this as a software)
- System Test (Test overall software, about deployment, data ...)
- Acceptance Test (Match software with user requirement)