FullStack Labs is a leading team of Ruby on Rails developers, engineers, programmers, coders, and architects. Uber, Siemens, and hundreds of other companies have chosen us for their mission critical software development projects.
We start each engagement with a two week trial period to give you a chance to work with our team and make sure we’re a good fit. If you’re completely satisfied, we’ll bill you for our time and continue the engagement. If you’re not completely satisfied, you won’t be billed, and you will have the option to either cancel the engagement or request a new designer or developer for your project.
Bunk1 connects parents with their children while they're away at summer camp. We helped Bunk1 build iOS and Android apps that fully integrated with their existing web application. We also designed and developed a new UI for their Ruby on Rails web app, and helped them refactor and improve legacy code.
“My experience with FullStack is in direct contrast to the poor experiences I've had with other firms. They care a lot about their clients. They bring their ideas and concepts to the table. I felt like they were on my team. They added a lot of value in terms of ideas and continue to do so. No matter who's working on the project you feel like they care about the work that's being produced.“
Ruby on Rails allows us to quickly develop prototypes that can later be built out into full production apps, which reduces costs early on, and speeds up time to market.
Ruby on Rails has a huge following in the open source community, is supported by both large companies and individual contributors, and has a plethora of well maintained open source gems.
Ruby on Rails prioritizes convention over configuration, which makes Rails developers happy while keeping the system simple enough to maintain complex applications.
The experience I've had with other firms is in direct contrast to what FullStack did. I'm comparing them with two other firms I worked with in the past. They care a lot about what their clients are doing. They bring their ideas and concepts to the table. I felt like they were on my team. They added a lot of value in terms of ideas and continue to do so. No matter who's working on the project you feel like they care about the work that's being produced.
FullStack Labs' managers have been engaged throughout. The whole project management staffing, matching team to task has been fantastic. All their staff is very committed. I'm very aware of how much bureaucracy there is in the tech world, and we've gotten nothing but solutions. I am totally happy with their approach to everything, their integrity, honesty, the whole thing. It's great.
We were very happy with the way the whole process was facilitated. We started talking to FullStack Labs three months before we signed any contract with them. We met with them in person several times. We wanted to find out what their philosophy is. Both Brian and David are fathers with young children, so they understand the importance of the work we are doing. That shows through in their work. It was obvious they cared deeply.
Through user research, experimentation, prototyping, and testing, we eliminate guessing and personal bias and ensure what we build engages your users.View Our Playbook
Combining agile development methodology with impeccable code and an unrivaled level of client visibility, our team expertly delivers custom software projects on time and on budget.View Our Development Process
We offer a variety of maintenance agreements to support your custom software project long term, including DevOps, performance management, upgrades, feature development, etc.
We design and build greenfield apps of all shapes and sizes using Ruby on Rails.
Have a legacy Ruby on Rails app? We’re here to help. From debugging and maintenance to feature development and DevOps, we'll tailor a development plan to meet your needs.
Need to add a Ruby on Rails developer to your existing team? We'll seamlessly integrate as many Rails developers as needed, to help you go faster and level up your team's skills.
FullStack Labs is a leading team of Ruby on Rails developers, engineers, programmers, coders, and architects. Uber, Siemens, and hundreds of other companies have chosen us for their mission-critical software development projects. Ruby on Rails is a crucial tool to develop your project, here are a few Ruby on Rails Interview Questions you can use to screen your Ruby on Rails candidates:
Q: Please describe what polymorphic associations are in Rails and give an example of a scenario in which they should be used.
Polymorphic associations allow a model to connect to multiple other models, imagine a scenario where you have two models, Employee and Product and you need to allow each one of those to have a picture image, without using polymorphic associations, you may be using two different models (EmployeePicture and ProductPicture) and tables (employee_pictures and product_pictures), by using polymorphic associations, you only need a single table to store the pictures since they can belong to more than one other model.
Q: Describe what inheritance, encapsulation, and polymorphism are in Rails, and provide an example for each.
Inheritance allows the programmer to inherit the characteristics of one class into another class. Ruby supports only single class inheritance, it does not support multiple class inheritance but it supports mixins.
Encapsulation means that the internal representation of an object is hidden from the outside. Only the object can interact with its internal data. Public methods can be created to open a defined way to access the logic inside an object.
Polymorphism is the provision of a single interface to entities of different types.
Q: What is the difference between a module and a class in Ruby?
They may look similar, both can hold method definitions or constants, but there are some differences:
Q: What is the difference between 'include ModuleName' and 'extends ModuleName?' How can class methods and variables be used when 'extended' versus 'included'? Please provide an example(s).
include ModuleName is used to append methods from the module as instance methods of the class, while extend ModuleName is used to append methods as class methods. When using include the methods can be accessed directly from the instance
When using extends, the methods can be accessed from the class itself, like:
Q: What are the benefits of, or scenarios in which, you would use ActiveSupport::Concern in Rails?
ActiveSupport::Concern provides a simpler way to create modules that can be included/shared in other classes, it also handles constant dependencies automatically. One pretty common scenario for concerns is extracting pieces of code that can be shared between different models.
Q: What is the difference between a Block, Proc and Lambda?
Procs are objects, so we can create objects from a Proc and treat them as any other class instance. Lambdas are a kind of Proc that validates its parameters, procs do not validate them, however both can be used to create a block and store it in a variable to later pass it to a method. Blocks are like anonymous functions that can be passed into methods, they are called when using the yield keyword in a method definition.
Q: What is the purpose of HashWithIndifferentAccess class into ActiveSupport?
Implements a hash where keys :foo and "foo" are considered to be the same. Internally symbols are mapped to strings when used as keys in the entire writing interface (calling =, merge, etc).
Q: Describe at least two Ruby hook methods and explain when they are called.
Q: Describe what Rails does on the client, and the format of the url that gets called, when `remote: :true` is added to a link.
Rails using its UJS library listens for click events to links with the data-remote=true set, then it captures it preventing the default behaviour of the browser, then calling it via an AJAX request. The format of the URL usually ends in .js, ie, /users.js.
Q: What should be the response from the server for `remote: :true` call?
Q: What's the use of the db/seed.rb file? How do you handle multiple seed files?
Seeds file is used as a mechanism of populating the database with test or default data. Handling multiple seeds files requires them to be manually loaded in the db/seeds.rb file
Q: What's the relative path inside of the project directory to a controller called Admin::ManagersController?
Q: What is the difference between ActiveRecord and AREL?
ActiveRecord is a high-level interface to construct SQL queries using Ruby and associate the result from database to ActiveRecord models (when possible), ActiveRecord queries are translated to SQL when sending to the database, it is simple and easy to learn and use, but it has limitations when it comes to complex SQL queries. Arel on the other side is the library used under the hood by ActiveRecord to construct the SQL queries, both of them allow you to build SQL queries using Ruby, but Arel is more flexible, it allows to dynamically compose SQL queries using a Ruby interface, it is strong and well designed.
Q: What ORM or query interface would you most want to use other than Active Record?
Sequel, pretty powerful and flexible
Q: Who is your favorite Rubyist and why?
This answer is based on opinion, focus on the why. Example, Aaron Patterson, he is working hard on improving the performance of Ruby towards the Ruby 3x3 (version 3 will be 3 times faster) goal.
Q: What are your top three sources for Ruby / Rails news and content?
This answer is based on opinion. Official Rails Blog, the Slack Ruby Community, and the Ruby subreddit.
We’d love to learn more about your project. Contact us below for a free consultation with our CEO.
Projects start at $50,000.