High Quality Code Base
The software development team takes great pride in the quality of our code and in the way we build our products.
Making the right decisions in terms of ensuring our code is modular, well-tested, and reusable enables the code to adapt to future needs. We emphasize quality code because it makes everyone’s life easier: Engineers have an easier time reusing code, and customers using a bug-free product.
We periodically review our code organization and data structures, and devote time to DevOps and refactoring projects. We don’t like getting bogged down by technical debt. Is this class a service or a repository? Should this method be a in a trait or in a parent class? You’ll have team members who care about answering those questions.
It is awesome to hear and see student-athletes get committed to the school of their dreams because they used the product we built.
Club directors would not be able to keep track of helping all their players through the recruiting process without SportsRecruits. These stories make everyone at the company care about the product. We have a place for anyone to suggest product features or changes. We have a roadmap visible to everyone at the company, an environment where team members can play with the projects that are currently in development, and a test sport which everyone at the company has an athlete account for.
We are constantly adding new technologies to our stack to make our software development process faster and more efficient.
We are fans of open source projects and believe in not reinventing the wheel. We use a new PHP framework called Laravel to power our API layer. It gives PHP super-powers like command line tools, dependency injection, ORM, queues and schedules, event listeners, and so forth. We also use Ember.js to power our front-end application and we are soon refactoring to Ember Engines. This is in addition to other technologies like Redis, MongoDB, MySQL, Jenkins, Express and node.js.
We have a really cool deployment process. Hear us out.
We use Jenkins in a way that is deeply integrated with Jira and Bitbucket. We deploy to our non-production environments by simply changing the status of a ticket in Jira. From there, Jenkins gets the branch name from Jira and generates the build on the appropriate server. We do review pull requests before they go in product QA and from there QA can merge to release through a corresponding Jira status. Everyone loves this system!!
Engineers are always included during the ideation stages of a project.
Everyone starts on the same page if everyone is involved in identifying a project’s objectives and scope. As an engineer, you’ll have a seat at the table and have a voice in how problems are solved, what features to build to solve those problems, and how those features are built. Some projects are large and require a team effort, while others are small and a single engineer can prove that being full-stack is not just a myth.
One large project that our team took on was rebuilding the user activity feed from the ground up. We had a meeting to discuss the objectives of the project for the company and review wireframes with design team. Our conversations within the engineering team led us to add a huge feature: a global version of the activity feed showing players’ commits and videos within their whole sport. The team organized into backend and frontend teams, and communicated closely to produce a product that was rolled out in a controlled and bug-free way.
Engineers sometimes take on smaller projects, too. Carlos single-handedly made it possible for users to indicate when they had committed to a college program. Previously, student athletes would have to email us when they committed, and we would manually update our database. Carlos worked with our designer to make a view for how this should look, implemented autocomplete search, included college logos, and adapted the feature to our newest way of writing code using an Ember.js app and a Laravel API endpoint.
It doesn’t matter if you’re working independently or on a team, you’ll always be involved from beginning to end.
Eats Lunch Together
Who doesn’t like eating lunch together?
The MetroTech Commons is right outside our building and is surrounded by eateries which are almost all on MealPal. Team members will usually find a table and congregate there to talk about anything from the latest Laravel LTS version to how they feel about the new iPhoneX.
We also have regularly scheduled lunch events called Lunch and Learns where someone in the company will present insights from their department or teach a skill they are a master of. Some notable topics are playing guitar, SQL, closing deals, and video editing.
Has Good Beer
We have two kegerators in the office.
One serving nitrogen-infused cold brew coffee and one serving cold beers to be consumed along with an optional game of foosball or ping-pong. While we definitely like to keep it light and have fun with one another, we do have a lot of former college athletes at SportsRecruits. As you can imagine, people can get a little competitive.
We move quickly both in both what work we take on and how we work.
We strive to be adaptable. We adjust quickly to new problems and make changes to the roadmap when we find projects that we think will have a big impact in meeting our goals. We’ve also switched to a continuous deployment workflow which enables us to push code every day. One thing’s for sure: we’re focused on removing barriers and inefficiencies to increase everyone’s velocity and productivity. The competitive spirit is alive and well at SportsRecruits.