First Factory

  • About Us
    • History
    • Values
    • Nearshore Development
      • Why Costa Rica
    • Team
      • About Jason
    • Why First Factory
    • FAQs
  • Our Work
    • Technologies
    • Guarantee
  • Careers
    • Open Positions
    • Referral process
    • Working at First Factory
  • Blog
  • Contact Us

  • About Us
    • History
    • Values
    • Nearshore Development
      • Why Costa Rica
    • Team
      • About Jason
    • Why First Factory
    • FAQs
  • Our Work
    • Technologies
    • Guarantee
  • Careers
    • Open Positions
    • Referral process
    • Working at First Factory
  • Blog
  • Contact Us

The First Factory Candidate Experience

March 24, 2023

Employee Net Promoter Score (eNPS)

At First Factory, it is important that every applicant have a quality candidate experience, one where you feel respected, listened to, and informed. In every hiring, there are two decisions being made: the company making a decision to hire the applicant, and the applicant making the decision to join the company.

We don’t see engineers, designers, analysts, and other software creators as interchangeable resources, nor do we hire simply to fill an open client position. We value what you do. We care about your career development goals and the unique experiences and perspectives you can bring to the team. As a company, we are strengthened with each new team member that brings a commitment to quality, a passion for learning, and a great sense of teamwork.

We value and respect your time and effort. We know you have a lot of opportunities, and it is important for us to be respectful of your time and ensure that our company values are reflected throughout your application process.  We have streamlined the application process, so you are not spending unnecessary time filling out long forms or participating in countless interviews. You will be welcomed and accompanied by a recruiter during each step of the process, from the initial HR screening to the technical interview and through the client interview, if applicable. You will always receive feedback, insights about the position and the people you will meet, and guidance each step of the way.

Listening to what you need.  During the interview process with recruiters, we will, of course, discuss who we are as a company, what we believe in, and the benefits we offer. It is very important that we learn what you are looking for, too: your career goals, technology stacks, role expectations, work-life balance, and more. We invite you to use this time to ask us questions about anything that you are interested in. Recruiters are advisors, too, and have plenty of tips to offer.

Transparency and communication are key. Our primary goal during the application process is for us to get to know each other. We view the process less as a test, where you need to score at a certain level to proceed to the next step, but rather as learning if we are a good match for each other given the current open positions. We will be transparent on what skills we are looking for, and if at any point during the process, we do not believe the current opportunity is the right fit, we will tell you. We look for a solid understanding of the fundamentals in the technology you have experience and interest in, how you have approached learning those skills, and how you approach problems. We will not close the door to future opportunities should the current open position not be the right fit.

Should you have an interview with a client (something that is not always necessary), we will provide you with as much information about their business, the team you may be working with, and the technologies they will be using. We suggest that you do a little research on them (review their website and their specific job description, if applicable) so that you can be prepared to ask them questions and demonstrate your appetite for this opportunity.

We never stop learning. Technology is constantly changing, and our clients are looking for contributors who demonstrate solid problem-solving and communication skills. Each day, we will be faced with new challenges, and it is our never-ending curiosity that will allow us to solve those problems and grow professionally. No applicant or employee is going to have the exact skills for every role. What is important is that with the right foundation and capacity for learning, we support each other in these shared experiences. We teach each other, and we learn from each other so that we can grow together.

We aim to make your application experience easy and informative. We will treat every applicant with the same thoughtfulness and kindness that we would expect because, after all, we hope that we will soon be colleagues.

Employee Net Promoter Score (eNPS)

February 20, 2023

Employee Net Promoter Score (eNPS)

First Factory has adopted the quarterly Employee Net Promoter Score (eNPS), a tool used by Human Resource departments to gain insights into employee satisfaction and loyalty. Taking its cue from the Net Promoter survey used for nearly two decades to measure customer sentiment, survey scores range from -100 to 100. Through our HR Info System provider, BambooHR, we have conducted these anonymous quarterly eNPS surveys starting in early 2022. Our current eNPS is 82 and we have yet to fall below 80, with upwards of 77% of our team responding.

Leading organizations deem that an eNPS score above zero is good or acceptable, while scores above fifty are considered excellent. In their 2022 blog post, “Employee Net Promoter Score: A Brief Guide” Vantage Circle indicates that, “a score of over 70 is deemed to be groundbreaking” and represents the top five percent of companies worldwide. We are incredibly proud of what our eNPS score of 82 represents and are fully committed to making First Factory one of the best places to work.

We recognize that the strength of our company lies in the dedication and generosity of our employees. As such, we provide open communication channels, incredible tools to perform their jobs, and managers that are very hands-on. We invest in employee development, including but not limited to: education reimbursement, English courses, monthly tech talks, whitepapers, training housed in our custom LMS, and more. We work hard to create and maintain a culture antithetical to the transactional hire/fire of so many software development vendors. Here at First Factory everyone is treated with respect, all input is welcome, and every employee has the opportunity to learn, share and advance along a career path they are excited about.

We will not stop listening to our employee’s feedback and working to improve the quality of our work environment and the opportunities they have as software creators, all while ensuring that this translates to client satisfaction and business impact.

First Factory Makes the Inc. 5000 List for the Third Consecutive Year

August 26, 2022

First Factory Makes the Inc. 5000 List for the Third Consecutive Year

GROWTH, DIVERSITY, AND RECOGNITION

For the third year in a row, First Factory has been inducted into the Inc. 5000 list of fastest-growing private companies in the U.S. This honor and achievement is wholly the result of a dynamic and passionate team that works in unison to deliver outstanding results to our growing clientele. From every level of the organization, each team member proves how skilled and trustworthy they are and never loses focus on the business goals of our customers. Together we are stronger because we support each other, we challenge each other, and we elevate each other.

We are proud not only of our growth but also other metrics that highlight how every team member continues to make First Factory a great place to work. Despite growing from thirty employees to two-hundred and seventy plus in the last five years, our employee turnover rate has stayed the same and is half that of the industry average. The results of our first Employee Net Promoter Score, of 80%, with more than two-thirds of our employees responding, put us among the top five percent of companies.

The key is not about how much we can grow or how quickly; it is about how we can diversify and provide new developmental opportunities for our employees while remaining flexible in responding to an ever-changing landscape. Growth spurts are relatively easy to achieve. Sustained growth and maintaining high standards for service and employee satisfaction are hard — very hard. It is this pursuit that makes us roll up our sleeves every day and work a little harder.

We have had great opportunities this year to work with new clients in the machine learning space, from clients that focus entirely on providing better tools for those with hearing and visual impairments to clients that are building a suite of offerings to capture entire verticals in their industry. While these times may be unpredictable, the innovation and ambition of our customers are inspiring, and the work to achieve those ambitious goals is tough but highly rewarding.

In thanking all of our customers for their business and their confidence, we celebrate our team for the commitment to excellence and for understanding the value of building lasting relationships. Both customers and employees have put their trust in us, and we will do everything in our power to never cause that trust to wane.

First Factory Academy – Update

May 19, 2022

Back in February, we shared some exciting news about our intensive, bootcamp-style training program which we call the Academy. Today, we would like to share an update on the first cohort of graduates.

As a recap, we selected six applicants for our three-month Academy program starting in February and six more for the second class starting in March. Candidates went through a fairly rigorous application process, submitting videos to questions spanning personal development, technical knowledge, and decision making. The six Academy members in each group were hired as full-time employees, not interns or temporary hires. When we hire, we make the decision on candidates that we believe will not only be successful in the Academy but anywhere in the First Factory organization. 

The Academy members were challenged throughout the program, learning and refreshing knowledge in both Java and React, BackEnd learning modules covered Object-Oriented Programming, Java concepts, Spring Framework and PostgreSQL, while the FrontEnd curriculum focused on JavaScript, React, and TypeScript. As this program was in partnership with one of our clients, during the second month Academy members began integrating with the client development team. This included setting up environments, attending Daily Stand-Ups, and shadowing engineers working in the codebase. The exercises and tickets assigned during this time provided them with ample opportunity to investigate and review the code’s mechanisms and architecture as well as experience many of the most common problems encountered by team members. As you might imagine, the integration with the client deepened in month three. Overall, everyone felt challenged and well supported, found the curriculum and instruction to be comprehensive yet concise, and learned the necessity of demonstrating both technical knowledge and teamwork in order to be successful working on a project.  Subsequently, all six graduates of our first cohort were hired by the client. A job well done by all involved.  

What’s next for the First Factory Academy? As the second cohort enters its third and final month, we are incorporating participant feedback into the curriculum, training additional instructors, and mapping out the curriculum for other technologies, such as NodeJS. We expect to start another Academy class in a couple of months, so stay tuned for updates.

It is an exciting time to be in software development as the demand for engineers continues to increase, the technologies are evolving rapidly, and most importantly, so many passionate and talented people are starting their careers in the space.  We are grateful to those Academy members that made the decision to join our team, put their trust in us, and worked diligently to make the most of the opportunity. 

Maybe you or someone you know will join us in the next class.

Client Experience: Committed to the Extra Mile

April 21, 2022

Any way you look at it, we have you covered, whether one is a client or an employee. 

The pride we take in our work and our investment in the success of our partners is a reflection of everyone at First Factory. Our management structure, and the tailored responsibilities of those roles, are one example of how we value relationships above all and ensure the highest code quality while exceeding client expectations. We fundamentally believe in the role of a Manager as a Service, whereby managers support and address the needs of the employee as they recognize their potential and acquire the skills needed to succeed on the discrete tasks at hand and develop professionally. 

Here’s a look at two of our key positions: the Client Experience Manager and the Engineering Manager:

Client Experience Manager

Client Experience Managers (CEM) are proven managers who are quality-driven, highly hands-on, and skilled in empathy-based mentoring for software development teams. In most cases, the CEM is the manager to whom the employee directly reports, and under their purview, employees receive HR Ops support, ongoing 360-degree feedback, and mentoring – mainly focused on soft skills and career development. 

The CEM is the primary point of contact for our clients, whether the engagement is a Staff Augmentation or a Milestone-based Project model. They meet with client stakeholders (bi-weekly or monthly) without the development team to garner honest and critical feedback, to gain awareness of key milestones and the business impact of the work being done, and to understand the company roadmap and evolving development resource needs. Much of this feedback will be synthesized and shared with the Engineering Managers and the Executive group. Requirements for new positions will be shared with our Talent Staffing team. 

The CEM will also ensure a smooth on-ramp for new resources joining our client teams, with particular focus being paid in the first few weeks to ensure we exceed expectations from the start and meet all compliance requirements, such as time-tracking and reporting. For in-depth knowledge of the clients and individuals employees assigned, Client Experience Managers will only be responsible for approximately 12 clients and/or 35 employees. There is never a charge to the client for the ongoing support from one of our Client Experience Managers.

Engineering Manager

Engineering Managers (EM) are technical leads for the engineers they support… and so much more. Each EM possesses a deep understanding of Software Development patterns and architectures, has demonstrated experience working with Scrum, is fully comfortable with Full Stack development, and has experience with cloud platforms, such as Azure or AWS. They mentor team members through task estimations, code reviews, pair programming, and regularly scheduled one-on-one meetings. EMs also assist in the hiring and development of new First Factory employees by conducting technical interviews with candidates and supporting their ongoing learnings through tech talks, mentoring, and internally written or curated courses.

For Staff Augmentation engagements, if the client permits, our EMs will be introduced to the client team, gain access to code repositories, and be invited as optional to sprint planning, backlog grooming, retrospectives, and even DSUs. They will dedicate up to 5 hrs per week to the team, if needed, at no charge to the client. This is to ensure that we always understand the requirements, dependencies, internal coding standards, and challenges prior to implementing complex tasks. With this access, our EM’s can do code reviews and help triage issues in order to reduce the dependency on the technical leads of the client. If the EM is not permitted access to the code repositories and is not introduced to the client’s development team, they will still provide outstanding support to the First Factory engineers assigned. Of course, our EM’s can always be reached to help clients identify technical solutions. Any feedback the Client Experience Manager receives about the developers will be shared with the EM, and it is the EMs responsibility to put the feedback into action, providing tangible results for employees and clients alike.

For client projects, EMs participate in the gathering of project requirements and then complete research to help create technical project plans. They write, review and revise product requirements and specifications, provide estimates, commit to a roadmap and oversee every step of the build. They are true professionals when it comes to software development and project delivery. 

Since the demands of the Engineering Managers can be high and in an effort to not rush the quality interactions with the developers, each EM will only be responsible for approximately 7 clients and/or 18 employees.

Values

We are here to support each other, challenge each other, and grow personally and professionally together.  There is always more to learn. There is always room to improve. Our commitment to the success of our partners demonstrated each day through the passion and dedication of our employees is what we believe makes the experience uniquely First Factory.

Software Development Trends Beyond the Pandemic

February 7, 2022

Software Development Trends Beyond the Pandemic Blog HeaderBob Dylan poignantly wrote, “Times, they are-a-changin’.”  In a world upended by a global pandemic and the business, supply chain and consumer behaviors that followed, this statement seems to ring truer than ever. An evergreen anthem to the varying societal and economic turbulence we face has proven this song’s impact through varying obstacles. We’re becoming more familiar with cryptocurrency and staying in awe of the self-driving cars we’ve been anticipating for years, all while hosting virtual meetings wearing AI headsets and, perhaps, pajama pants. Yet, business owners and consumers alike wonder how the world can adjust to this sudden shift to a “new normal” and how we can continue to gain momentum when much of what we knew has slowed to a halt. Even though the Jetsons made it seem like we’d be flying our automobiles by now, the point is that technology has continued to be the critical component in allowing us to meet the new challenges we face head-on with speed and agility. 

Accepting the Demand for Software Developers in a Remote Workforce

While the global pandemic has changed so much of what we can safely do and how we implement it, the need for technology services and filling new roles proves to be an exception. Shelter-in-place and flattening curves aside, the demand for software development has risen to an all-time high. An employment estimate calculated by the Bureau of Labor Statistics predicts that there will be more than a 22% increase in the number of software developers in the US by 2030, compared to the overall employment rise of 7.7% across all job sectors.

Brick and mortar business may have taken some hits with less in-house traffic, which meant online sales had to step up their game. The tech stack for these services varies, but user expectations insist that web pages load quickly and front end JavaScript frameworks dominate the landscape, led by React, Angular and VueJS. Tried and true backend programming languages for eCommerce success are still Java, PHP, Python and Ruby on Rails. Programmers with knowledge of these languages could implement or build upon platforms to increase online purchases. E-commerce sales rocketed in 2020, up 33.6%, with a New York Times article attributing a remarkable 220% growth rate to Amazon during the height of the pandemic. Other industries that utilized software development to connect with customers virtually were medical practices, hospital systems, educational institutions, grocery delivery services – the list goes on. 

During the worldwide shift and surge in technology needs, development teams had to adapt to remote workforces for the foreseeable future, which proved longer-lasting than anticipated. Many companies have gone back to an in-office or hybrid work option, but the software engineering community started pushing back – with good reason. As cloud-first infrastructure trends upward in popularity, the remote workforce sees the advantage of taking things virtually. Why require five-day in-office work weeks for jobs that have proven to be successful remotely, when the competition for key talent continues to climb? Software engineering professionals have a wide variety of opportunities in this climate, which means remote is not just an option anymore – it has become a requirement to acquire and retain key talent. 

Managing Rising Salaries and Increased Employee Demands

According to the Bureau of Labor Statistics report, 2021 saw a turnover rate for software developers at 57.3%, as well as increased confidence in the job market across most industries. Web developers saw the most significant pay increase, shooting up 21.3%, more than a fifth of their previous salaries. A Senior Director at LinkedIn was quoted via InfoWorld saying technology roles have proven to remain pandemic-proof. She noted that roles like backend developers and software engineering roles, in particular, have significantly increased in demand. The 2022 Tech Salary Report by jobs marketplace Dice found that the average salary for technologists rose by nearly 7% between 2020 and 2021, reaching $104,566. Dice reported that this marked the highest salary recorded in the 17 years it conducted the survey. Now seven plus percent seems reasonable considering inflation and the pandemic-related forces, but this is an industry average and pales in comparison to the 21.3% increase in pay for web developers mentioned previously. In a similar report by Dice, salary increases were well above averages for security and cloud developers: 16.6% for cybersecurity and 12.2% for DevOps roles. And if that wasn’t bad enough for budgets and turnover rates, 47.8% of tech workers surveyed still feel underpaid. 

One software development job market study found close to half a million software industry jobs on the market in 2019, with a similar amount of people leaving the field for retirement in the next several years. Another report estimated that the US could be at risk of losing billions of dollars and eventually having a shortage of over 80 million software developers by 2030. The increase in talent demand paired with a significant shortage could mean – you guessed it – even higher salaries for software developers persisting for years to come. 

The need for software engineering professionals exists and continues to grow while the world adjusts and prepares for a post-pandemic economic climate. While this predicament feels sudden, the data shows that this is not going away anytime soon. What does that mean for software development agencies or companies hoping to fill new technology roles? In order to retain talent, businesses must adjust to the new needs of engineering professionals and continue to scale teams using team extension solutions like nearshore software providers. A survey by Statista showed that 64% of technology outsourcing was dedicated to software application development, allowing teams the opportunity to scale faster and provide cost savings for the rising US-based engineering salaries.

Even with the state-of-the-art office your company may be providing, the fact remains; other companies will continue to provide fully remote positions that will be filled by developers not wanting to return to in-person workspaces. The companies staying ahead of, and potentially offering more than, industry standards for salaries will also attract and retain that talent. As the times are changing, so is the software development industry. Whether you choose a staff augmentation partner or plan to navigate this on your own, be sure to stay ahead of the hiring trends, build a solid foundation and keep focused on the technologies your business needs right now. Make sure to remain on the course of your technology roadmap as well. While this may seem like uncharted territory, it doesn’t have to be.

The Factory Wall: News and Updates from First Factory

December 3, 2021

The Factory Wall: News and Updates from First Factory

Welcome to another installment of “The Factory Wall,” where we share news and updates about company growth, employee strengths, our technologies and other news. 

As we continued to see increased digital adoption and even more demand for software engineers, our team was able to stay almost fully remote during the entirety of the year while still providing high-quality results for our clients. Our office in Costa Rica was available for limited-capacity workspaces for employees to work outside of the home, and for our human resources, operations and recruitment teams to utilize, as needed. With a growing recruitment team and through ongoing virtual interviewing and networking efforts, First Factory officially reached over 200 employees. This was an especially rewarding milestone as we, like everyone else, had to navigate pandemic uncertainty. Our leadership team remained open-minded and flexible, putting the health, safety and comfort of our employees at the heart of all decisions. 

The tremendous growth that we experienced led to multiple new positions and promotions within the company including a Director of Client Experience, Director of Engineering, Associate Director of Talent Acquisition & Development, People Operations Manager and several new Engineering Manager roles. Each newly created role and promotion within the company provided our employees with even more resources for mentorship, leadership and career coaching. We were also able to consistently provide internal and public First Factory “Tech Talks,” which allowed employees to educate each other on emerging technologies, career best practices, challenges and lessons and more. 

Several changes and implementations helped us have another incredible year, and we’d like to share a breakdown of the current software engineering roles and specialties at First Factory.

 

12 Month First Factory Employee Growth

First Factory Headcount Report 2021

Summary of our Employees’ Skill Sets

First Factory Employee Skill Sets

Our Employees’ Current Specialities

First Factory Employee Current Specialities

First Factory Employee Experience Levels

First Factory Employee Experience Levels

We are excited for more opportunities to provide continuing quality craftsmanship from our talented software engineers and support team members. If there is an upcoming software project or staff augmentation need, please contact us today. 

Mono to Micro: Challenges and Lessons Learned in a Transformation Journey

November 5, 2021

Mono to Micro: Challenges and Lessons Learned in a Transformation Journey blog header

When implementing changes to a monolithic architecture, you can uncover unexpected behaviors. For instance, modifying a portion of code in one class can cause another to fail. The number and intensity of these unexpected behaviors will depend on how well the monolith was created in the first place.

While maintaining a monolithic architecture you should not only be concerned with performance but you should also be concerned with the monolith’s ability to scale up or down. In addition, training staff on how a monolith is architected and where to make changes properly takes time, slowing down the team’s velocity in order to build new features. Even if the team understands the complete application and can implement a minor fix without affecting anything else, an entire deployment is required and can delay deployment times.

Approaches for Moving to Microservices

Moving to microservices provides faster scalability, as having more minor, smaller services means they will be quicker to start. Team productivity will increase as a result of limiting the context of each service to a more narrow set of business rules. There could be an improvement in performance; however, this also relies on how well the services are implemented (if you have poor code, you will have poor performance). Finally, a hidden advantage is that you are not limited in the languages or technologies that you can use. For example, let’s say you have a service in .NET and another in Python. If both use JSON to return information, then they can communicate with each other or with the front ends.

There are a number of approaches that can be used to transform a monolith to microservices:

The big bang release – Getting rid of the monolith and starting from scratch. 

Splitting the development – This means that there will be new microservices living together with the existing monolith. The idea is to work on actively developed applications so everything that is a new feature, as long as it can be accomplished technically and move the required dependencies, will be extracted to a new microservice.

API proxy or substitute layer – Creating a middle layer that will receive all the calls. This layer can aggregate information from multiple services before responding, or even just pass through the request but log some details.

Divide and conquer approach – Used when combining “macroservices” with “miniservices.” Conceptually, they are two different services; macroservices can be as big as a monolith, while miniservices are focused on a single feature or goal. 

Strategies to Handle the Challenges Along the Way

There are some challenges that may be encountered during the transformation process, but there are strategies that can help to overcome these obstacles. 

Lack of Training

The first issue that can come up occurs when there is not enough proper training, either because the business did not provide a properly analyzed business model or the developers did not follow the proper rules when working with a decoupled approach. If, in the end, you maintain the same database (and perhaps add additional Docker containers), you will still have the same bottleneck. In this scenario, splitting the work and moving new functionality to new services will allow you to slowly move the monolith to a new architecture. While this is a solid approach, it comes with a possible drawback. The team may begin creating several small services without the proper documentation instructing others on where to find functionality that they need in the sea of services that have been created.

Lack of Tests

Another one of the challenges can be interesting and exhausting at the same time; there are no unit tests, no integration tests or any performance metrics. In this situation, you would have a difficult time measuring whether any improvements are being made or if you are getting the same results. A solution to this problem is to create the substitute layer (or Proxy). The main purpose of this Proxy layer is to log results and performance metrics. Once there is enough information, you can start moving the microservices and replacing the calls within the substitute layer from the monolith to the new microservices. This also works as aggregator services, where information that is retrieved from multiple services can be combined, whereas there was only one call before.

No Business Commitment

An additional challenge is when there is no business commitment. This can be obvious when there is resistance to change, and the most important thing is to prove that there is progress as fast as possible. In these scenarios, you will be evaluated on how quickly you can provide something of value to the business. You can again split the development and apply the “divide and conquer” approach. Whenever there are minor fixes like sending an email or creating a PDF based on a template, these are ideal scenarios where the strategy will show its results since there are key functionalities that are easy to start separating. Dealing with resistance to change also requires a few more steps: scoping out the required work as accurately as possible, making the services as self-contained as they can be and juggling with the number of resources you have available, as allocating time to the developers can be difficult. 

Big Bangs

The last category of challenges is when you are working with a complete rewrite (which could be seen instead as an opportunity) and working with scheduled releases on critical operations. Oftentimes, the “big bang releases” can be prevalent. This happens when there is a dedicated team and no new features are included in the application, as the main objective is to prepare for a future where change may occur and the work will start to increase.

Techniques for Success

Below is an outline of solutions and implementations to create new services in a more productive way.

Creating miniservices – These are used to accomplish generic tasks such as sending emails, uploading files to a file repository like S3, generating PDFs based on a template or validating XML with XSLT files. 

Creating shared libraries – This is also important because it will allow you to reuse logic that almost never changes, regardless of the client. Examples include creating TSLint configurations or logger configurations, and hooks to run after every commit (like using Husky – if we are talking about a JavaScript environment). Those are the types of shared libraries that will save time later.

Creating NPM packages for your organization to generate a bootstrap of code – For example, create-react-app is something used a lot in the industry, but at First Factory we have created a CLI that starts a new project with create-react-app but also configures the React Router, installs some of the shared libraries and configurations and integrates with a Cognito layer that we use for internal authentication. Every time we need to create a new application that relies on the infrastructure that we have defined, it removes all the repetitive work. In other organizations, similar projects can be created where the stack and the installed libraries may vary, but overall the process is to reduce the time needed to create a new service.

Create a process to migrate data automatically – Our Director of Engineering created a base ETL that relies on code handlers, so whenever we need to do a data migration we analyze the data sources and, for each data source, a handler is generated that extracts the information in a particular order, transforms it and then loads that into a database. Then, the only objective of the team is to create the handlers that will deal with the custom logic for each project, but this base template manages the overall wrapper.

A microservices architecture provides the greatest flexibility and resiliency for modern applications, allowing for high scalability and quicker delivery of new functionality. The key to success when migrating from a monolithic to microservice-based architecture comes down to the traditional core foundations of software development: due diligence in planning, risk mitigation and having the focus and patience to follow a comprehensive plan closely.

First Factory Makes the Inc. 5000 List for the Second Consecutive Year

September 9, 2021

First Factory Makes the Inc. 5000 List for the Second Consecutive Year - 2021 Inductee

First Factory has been named one of Inc. Magazine’s fastest-growing private companies in America for 2021. This is our second year in a row of making the list, and we have risen in ranking to 1,740 overall. This incredible achievement is due to our clients’ ongoing trust in our abilities to assist them in capitalizing on opportunities and overcoming challenges. It has been an unpredictable few years and our team’s compassion, dedication and flexibility have allowed us to thrive, realizing 263 percent employment and total revenue growth over the last three years.

Since 2000, First Factory has grown our nearshore software development team from a small shop in Costa Rica to building a multinational team of almost 200, with the core of development operations-driven from our Heredia, Costa Rica office. We also employ a remote team of US-based employees who manage client relations, human resources, sales, marketing and other business operations.

“Placing everyone’s best interest at the forefront of our decisions has led us here,” Jason Roff, CEO, said. “We adjust according to our clients’ needs, listen to what our employees provide as feedback and build trust through the quality of work we provide,” he added.

While 2020 was a challenging year in many industries, our team adapted to each new trial. We continue to help clients in the healthcare space provide more seamless online experiences for doctors and patients, and manage inventory procurement and tracking for instruments such as ventilators across hospitals. Digital trends accelerated in the real estate sector, and we were privileged enough to work with companies building platforms that streamline the purchasing of property, allowing nearly all transactions to be executed in one unified online experience. The stock market continued to reach new records and we worked with numerous clients to bring more educational resources, real-time reporting and intuitive tools to investors. As all of our employees have been supplied with work-from-home equipment for years, working remotely continued to be a seamless and productive experience for all involved. We further leveraged online platforms to enrich the interview experience and provide tech education seminars and workshops to the broader development community.

“I continue to be amazed at what an impact our nearshore development team has made, and I’m excited to see what the future has for First Factory,” Roff said.

Our 2020 Inc. 5000 placement was the first time First Factory was honored to be on the list. The 2021 ranking, higher in both the overall and industry ranking, at 1,740 and 241 respectively, is a humbling accomplishment. Our continued mission of achieving the professional success of our partners and team members remains. As nearshore software development continues to be a key component of meeting the accelerated digital needs for North American companies and their customers, we are confident in our ability to scale in stride with the rising demand.

Don’t Go Chasing Waterfall Methodologies

April 22, 2021

Text that reads, "Don't Go Chasing Waterfall Methodologies" with an image of a waterfall on the rightThe right development methodology will completely transform your team. When you find the right one, you’ll likely notice that your employees are more motivated, working well together, and are getting things done faster than ever before.

Reaping these rewards does take time, whether ramping up a new development team or changing methodologies within an existing group. Before you pick an approach, you’ll have to reconsider the way that your development team operates.

One thing is for certain, though: You should avoid chasing waterfall software development methodologies, as they have fallen out of favor in recent years and may no longer be the most efficient option for your team.

Today, we’re going to look at why the waterfall methodology is rather outdated and explore other methodologies to replace it with.

Waterfall Methodologies Might Not Be Right for You

The waterfall approach to software development has been the default method for building digital products for decades. However, new technologies and capabilities have created other options that are challenging the traditional waterfall model.

What is the waterfall methodology? Let’s take a quick look at the steps involved.

Requirements

Obtain all of the requirements from the client or from the internal team requesting the software. The goal of this approach is to acquire every piece of information upfront so that the client doesn’t have to be spoken with until the product is completed.

Design

Although it is sometimes broken up into two stages, the design stage is the time in which the UI is completed and tested.

Implementation

This is the phase where the programmers take the design and other requirements and turn it into a working product.

Verification

The complete product is released to the customer, who then verifies that it is up to their specifications.

Maintenance

During this phase, the team fixes bugs as necessary with small updates.

It is easy to see why this holistic approach to software development, similar to that of traditional product development such as automobiles, was dominant for decades. Computer software was often shipped on disks or CDs and needed to be complete, with all bells and whistles, prior to a consumer being able to use it. Technology also moved at a slower pace and there were fewer programming languages and developer tools that contributed to a software build. The pace of change is only accelerating and the web has changed the way software is distributed and consumed. Software as a Service and cloud-based applications are the current models and everyone is deploying new features rapidly.

Other Software Development Methodologies to Explore

While the waterfall methodology is sensible, several notable software development methodologies have emerged in recent years that are worthy challengers. Let’s go through them.

Agile

The agile development methodology has been around for over two decades, yet it’s still being treated as a radical new way to develop software. In 2001, 17 different technology experts released the “Agile Manifesto.” Among other things, the manifesto was focused on four major principles for developing software:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

As we can see, these four principles are an intentional challenge to the waterfall methodology. During its two decades of growth and adoption, it’s become the standard methodology for anyone who wants to release software quickly and then continue to develop it over time.

Just like JavaScript has several different frameworks that are used in various situations, many different frameworks have evolved around the agile methodology. The following methodologies are frameworks built upon the above four principles.

SAFe

Short for “Scaled Agile Framework,” SAFe is an enterprise-level framework based on the agile methodology. This framework is designed to empower large-scale businesses to continuously deliver new software or updates to existing software. With a “top-down” approach, this methodology starts with an organization that must first identify the type of value stream needed, as well as any Agile Release Trains, also known as ARTs. The Agile Core Values are then approached – alignment, built-in quality, transparency and then program execution. 

The entire goal of this framework is to create a faster time-to-market and catalyze productivity from teams. With the average teams consisting of 5-9 employees, and a program increment duration of 8-12 weeks, SAFe is a common choice for many fast-paced industries. 

This framework was created by Scaled Agile, Inc., which sells software that aims to help enterprises adopt their specific version of agile development. This is one of the key software development methodologies preferred by large-scale businesses.

Scrum

Scrum is a new take on the agile methodology that focuses on “sprints.” A sprint is a predetermined amount of time for completing a designated goal. 

Scrum generally observes the ceremonies of sprint planning, daily Scrum, sprint review, and sprint retrospective. Each sprint starts off with a planning session for all team members where the work of the sprint is defined, agreed upon and estimated. The team works on their tasks throughout the sprint, perhaps checking in for quick daily stand-ups to ensure blockers and unplanned priority tasks are addressed. Key stakeholders are brought in for a sprint review to see the work done and after all is complete, the team may conduct a retrospective to evaluate efficacy. 

It is best practice for a sprint to last less than one month (typically 3-4 weeks), if not much shorter. There are to be no changes made during a sprint that could adversely affect the overall goal, and the time to plan a sprint should only take less than a couple of hours (up to a full work-day, if necessary). 

Adherents of the Scrum methodology say that it’s great for complex projects, as it unites the entire workforce under one specific goal per sprint.

Kanban

Kanban is another take on the agile methodology that aims to make the most of what’s available. The actual practice of Kanban dates back to the 1950s when Toyota pioneered a method of having workers track what new materials were needed on a card, which was then passed to the warehouse.

The older Kanban methodology has merged with the modern agile approach to create a new take on software development. The goal of this methodology is to match the number of works in progress to the team’s total capacity.

At the core of the Kanban methodology is the Kanban board. It’s a board that contains a simple three-step workflow:  To Do, In Progress, and Done. The entire team can see the board, so they know what needs to be done or what needs to be reviewed. This is a great approach for production support channels or when juggling multiple smaller projects at once

How to Adopt a New Methodology

Changing your software development methodology will not happen overnight, and it might not even happen quickly. It requires an intentional adoption of the core principles of an approach by your entire team. It will most likely call for using new collaborative tools, as well.

The most important aspect of changing methodologies is ongoing training for your development team. You might discover that some developers are so entrenched in the waterfall methodology that they need regular reminders about new workflows. Eventually, though, the new methodology will be internalized and you’ll start to thoroughly enjoy the perks of your new methodology.  

The First Factory team is a leader in software development. When you want to take your business to the next level, let us help. With a proven combination of technologies and software development methodologies, we can bring your vision to life. Contact us today!

Drive the bus: How to use the event bus pattern for your ETLs

March 25, 2021

Text that reads, "Drive the bus: Use the event pattern for your ETLs"There are many benefits that AWS services have to offer, including solutions that simplify the process of extracting data from different sources and injecting them into a new destination. The event bus architectural pattern, one of many architectural patterns, can be divided into three major components: The event source, the event listener and the bus channel. 

The event source is where the information will come from, and this will normally trigger any process that should start. The event listener is tightly integrated with the event source and is going to be in charge of processing whatever information comes from the event source. Lastly, the bus channel is in charge of transferring information between multiple parties, where there can be various implementations adopting different data structures. 

An ETL, or “extract transform and load,” is a procedure of copying data from one or more sources into a destination system that represents the data differently from the source. Extracting information could involve multiple steps like encoding, sorting, doing aggregations, changing formats and combining information. The information could also come from different sources, which means we can combine different options like microservices, text files, databases and much more.  This can be done using tools like SQL Server integration services or C-data sync. 

As an example, let’s imagine working on a complete project rewrite of an existing system with multiple data sources like web services, XML feeds or text files. It’s important that the data being used for development is as close to the original type as possible, as it will provide a better picture of how the application is functioning in comparison to the original.

As is the industry standard, this project would be a phased-approach release, and an agile methodology like scrum would be implemented in the development process. This would allow for a better process of pulling information from the source, as needed, and means that the first couple of sprints would let the team focus on only a couple of modules at a time.

An advantage of creating a process like the one described above is that this structure helps to manipulate data for many different purposes. One of the main core concepts of an ETL is to transform information, so if there is a limitation on what information the developers can see, you can use this process to change some values for testing purposes.

Now that you know what kind of environment you will work in, it’s time to design the ETL to pull information. This can be accomplished by selecting the trigger that will execute the entire process, which could be an action done by a user or cron expression. Next, you will define what is going to be the route and which stops this route will have.  A stop can be a new data source from which to pull information, that means new passengers in the bus, or a destination data source, where the information will be dropped. You will then need to define what will be the “passengers,”  meaning which data points will be fetched at the starting point, which ones will be dropped at a specific stop, or if new passengers will be picked up along the way.

The final step is more oriented toward the design of the system, and important considerations that should be taken care of in this process. These include:

  • Data integrity: It’s important to map what data points will need to be processed first in order to maintain a sequence of events. The whole process can be understood as a database transaction. With each step/stop, we assume that the previous ones have been executed successfully, but then if a difficult problem occurs, we get an exception and need to be able to handle that gracefully. There are multiple strategies, ranging from a complex rollback to a simple retry policy.
  • Detailed logging:  Since you are moving to a serverless architecture with microservices, it’s important to have logging information that can provide as many meaningful details that will help developers to debug any problem in the future. And here is where Cloudwatch steps into since that’s the service that will become one of your allies to solve any problem.
  • Concurrency problems: This is possibly the most difficult part of the whole process because you will need to think ahead of which scenarios can happen where the same resource can be accessed by multiple data points or multiple stops within the execution. For instance, if we have a microservice that uploads images to S3 and serves them to a CDN-like cloud front, it might be possible that invalidations will be required where there are special limits.
  • Access restrictions: This is a general consideration in every software development process, but it is important to validate that the system has the right permissions to access all of the information that is needed.

Now that the ETL process has been defined, here is what AWS provides for us through three popular services:

  • The first service that we will highlight is SQS, which is a message queuing service that enables you to decouple and scale microservices, distributed systems and serverless applications.
  • The second service is AWS Lambda,  which lets you run code without provisioning or managing servers. This means that you pay only for the compute time you consume.
  • The third and final service is Cloudwatch, which provides you with data and actionable insights to monitor your applications, optimize resources and get a unified view of the overall health of your systems.

Now, combining the concept of a stop that we described before with the services above, this will be the composition of a stop.

To recap, you will have the data coming from the event message queue, then the code handler that will be in charge of processing the data and finally, you will have all the outside resources that there will be interaction with. These could be the databases where we put information, or the different sources from where we pull information, including microservices.

This entire process helps to facilitate the interaction of the data between all of the microservices by having a mapped route of how the information is managed, and then there is a clear understanding of how to interact with the services between them. 

AWS provides a variety of services that can help to satisfy various requirements, in this case, leveraging their flexibility and scalability with their services to create a system that speeds up the process to extract information for your projects. 

Why Choose Costa Rica for Nearshore Development?

February 19, 2021

Red and gray blog banner that reads, "Why Choose Costa Rica for Nearshore Development?"

Nearshore software development is becoming a preferred way to provide outsourcing for tech companies that need quality services. Partnering with nearshore entities allows tech companies to strike a favorable balance between offshoring and onshoring.

Costa Rica has emerged as a favored nation for nearshore development for a number of reasons, including lowered costs, their highly educated and skilled developers and professional level of English proficiency, to name a few. Let us show you why this Central American nation is such a popular option for companies interested in nearshoring.

Costa Rican Software Developers Operate in a Similar Time Zone

Time is everything in the world of software development. Last-minute changes or problem-solving can be the difference between a successful delivery and a bungled job. Fortunately, Costa Rica operates in Central Standard Time, which aligns closely with the time zones in the United States.

Having the opportunity to hire people that are awake and working during the same hours as one’s business is a major reason that tech companies are so happy to work with developers in Costa Rica.

High-Quality Standards of Education

The Costa Rican software developers’ high level of education is another significant benefit of a partnership with their teams. The country is known for having the best education system in all of Latin America. As a result, the software developers are often highly capable within their areas of expertise, which may include:

  • UI/UX
  • Backend development
  • Web development
  • Mobile platforms
  • DevOps

The schools and universities in Costa Rica provide a powerful foundation for technological learning. High literacy rates along with the significant percentage of post-secondary graduates ensure that software developers are fully prepared for the tasks required.

A fair number of people in Costa Rica speak and write in English. According to a bilingual jobs fair report, 75% of test-takers spoke enough English to secure a job in a bilingual setting.

The ability to communicate effectively with people from Costa Rica makes it a highly desirable source of nearshore software developers. When communication barriers are eliminated, projects can run more smoothly, even when they deal with complex topics.

A Booming Tech Infrastructure

Costa Rica is a country on the rise. Its tech infrastructure is far superior to that of other countries in Central America, as well as many other offshore nations.

When we talk about tech infrastructure and the relationship that it has with nearshore tech operations, the real conversation is about reliability. A CTO needs to know whether their partners will have access to high-speed Internet, power and other infrastructure elements that are necessary to maintain the project timeline.

Costa Rica’s technological infrastructure is constantly modernizing. There is reliable, fast Internet available in their cities. Working with developers from this country lowers the risk of missed deadlines due to Internet outages, a common problem in less-developed, offshore countries.   

Nearshore Staff Augmentation with a Similar Work Culture

The adaptability of the business culture in Costa Rica makes it perfect for working with all sorts of clients. Costa Rica’s business culture is unique, but it shares enough similarities with U.S. cultural standards to provide a solid compatibility. Here are some of the common features between the two work cultures:

  • Respect for the chain of command and titles
  • Certifications, such as Microsoft Certified Solutions Developer (MCSD) and AWS Certified Developer are highly respected
  • Flexibility on projects fosters an agile environment
  • Professional communication and appearances are valued

Having a similar work culture can lead to better collaboration between teams. When nearshoring teams mingle with in-house teams, it might be difficult to tell the two apart.

Software developers from Costa Rica are known for being professional, knowledgeable and willing to contribute unique ideas and solutions in business environments. 

Costa Rica Has Robust IP Laws

Perhaps the greatest challenge that comes with outsourcing is IP protection. Nothing is worse for a software developer than to have their intellectual property stolen and then to discover that they have no recourse.

On one hand, offshore companies tend to struggle in this area, even though it may happen for reasons that are outside of the control of the outsourced software developers. Their countries simply have weak IP laws that do not protect those who do business in their areas.

On the other hand, Costa Rica has robust IP laws that share a number of qualities with those found in the U.S. In fact, Costa Rica was removed from the U.S. Intellectual Property Watch List in 2020. Not only does that show an increase in trust between the two countries, but it also demonstrates the ongoing development of the nation.

Nearshore Software Development Occurs in a Stable Setting

When considering options for the nearshore staff augmentation, companies must consider the country that staff members work within. For better or worse, some places around the world are not politically or economically stable enough to work with.

Costa Rica is a peaceful nation that has recently emphasized its economic development. The country does not have the internal or external strife that is common in some offshore nations. As such, sourcing workers from this country is a very safe bet in terms of ongoing stability.

Using Costa Rica as a source for nearshore development is an attractive option for many tech companies. Whether your business wants to diversify its staff or needs to bring in nearshore staff members to complete a project, Costa Rica is a safe and effective choice. 

The highly educated, hard-working, professional Costa Ricans that operate in this industry are valuable assets to any business. Best of all, they work close by, so they can always fly directly to the U.S. to handle in-person business, as needed.

When it comes to nearshore sources for software development, First Factory is a market leader. With a number of specializations and years of experience as software engineers, our team members are poised to handle any challenge that comes our way. Contact us today to start the process and get the team members that you need.

Choosing the Right Nearshore Development Partner

January 22, 2021

Image with software developers at a long work station with computer screens and laptopsNot all software development partner options are the same and not all vendors are created equal. For years, expanding in-house software development capabilities was relegated to offshore software development agencies. Offshore refers to services rendered out of countries not landlocked to the United States, the predominant offshore software development regions being India and Ukraine.

In the pre-Agile development model using what was known as the waterfall approach, where all requirements were known and defined in advance, this model was effective. But in a world where iteration is the key to gaining and maintaining a competitive advantage and improving efficacy, Agile development (breaking deliverables down into smaller time frames known as sprints) offshoring can struggle to meet the clients’ needs. And in a faster-paced development cycle waiting until morning for a delivery from a vendor can cause delays when garnering requirement clarifications and addressing blockers. Vulnerable infrastructures, unstable governments and geopolitical sensitivities are also driving companies away from certain offshore options.

Why is nearshoring software development often a better option?

Nearshore software development refers to countries with engineering talent pools closer to North America – typically not separated by an ocean and with time zones matching those of the United States. These proximities allow for distributed teams to meet via video calls daily for daily stand-ups (quick updates on progress and the opportunity to highlight escalations quickly), progress demos, pair programming sessions, live code reviews and other stakeholder meetings.
Political stability, more reliable infrastructure and a wealthier working class than many offshore options, mean that nearshoring provides more security and predictability. This means fewer business disruptions and power outages plus a greater ability for team members to work from home when little events like quarantines are imposed.

As you can imagine these benefits of nearshore software development do come at a higher price point than resources in India or the Philippines. While we all have budgets, we must weigh the cost versus benefit. Collaborating with nearshore resources feels very much like a natural extension of your team, speeding the development process and minimizing the need for more administrative efforts and costs. The education and the experience of the resources are on par with those in the United States increasing the quality and velocity output as compared to other options. The key to better outcomes from a team is finding the right fit. Nearshore software development is still extremely cost-effective compared to the high cost and scarcity of developers in the US, especially in cities like New York, San Francisco, Chicago, Austin and Atlanta. Three main components that make up a pricing model for your outsourced development needs are location, communication and experience, and your vendor or partner of choice should be able to explain the value in these thoroughly.

There are additional benefits to location than time zone. Having your outsourced resources close in proximity to your company’s team means you can quickly fly to their site to work, and vice versa. Not every country can easily provide work visas and not every country is a place you’d feel comfortable visiting. These may be instrumental factors in your decision of where your extending team resides. Closer proximity also often translates into greater cultural similarities that improve communication, team bonds and a higher understanding of your product’s business logic and user’s needs.

What else should be considered when comparing nearshore development options?

It’s wise to research different partner options and understand their hiring practices. Find out if a particular English language level is required, and find a team that understands how you best communicate. Some of the less expensive options will have you in direct contact with a project manager and not the individual software engineers, which may be an issue for your needs. Avoid the bait and switch by ensuring that you meet with the developers that will be working for your account and that you have direct access to them regularly. Finally, consider the experience levels, not just of your software engineers but also of the company you are vetting.

First Factory has grown to be a highly trusted nearshore development partner, with our primary developer resources located in Heredia, Costa Rica. With over 20 years and dozens of partners ranging from start-ups to multinational corporations, our fully English speaking team has the experience needed to round out your team or handle any sized development project. Our First Factory client reviews speak volumes about our dedication to excellence in software development, as well as highlight why we are a top choice when it comes to choosing the right nearshore development partner.

The Factory Wall: Company Growth and Developer Skills

November 5, 2020

First Factory company updates header image with, "The Factory Wall" series text written in white lettering over a red block. First Factory Warhol-like soup cans in a variety of colors placed on the right side of image.

We’d like to introduce you to our ongoing series, “The Factory Wall,” where we will share First Factory updates and news. In case you haven’t read about our company history, the First Factory name came from Andy Warhol’s famous creative space, “The Factory,” in NYC – a place where artists gathered to cultivate new ideas, art and innovation. Hence, our company update series and its fitting new title. 

This year marked the 20th anniversary of First Factory, which led us to some obstacles we hadn’t anticipated. Thanks to our incredible employees and operations staff, we were able to shift to a fully-remote workforce with ease.  Our tech stack evolves and the number of software developers increases with our clients’ needs, which is why we have continued to experience consistent growth throughout this year. We do our best to showcase our current numbers to prospective clients to understand our available services. However, we do continue to fill different job openings based on any upcoming needs. Along with other exciting news that we’ve previously shared on our blog, here is a look at our developer roles breakdown as we enter into the end of the year:

12 Month First Factory Employee Growth

12 month bar graph showing total employee numbers

Summary of our Employees’ Skillsets

Software developer roles breakdown

 

Our Employees’ Current Specialities 

A pie chart showing software development categories and percentages

If your team is in need of talented software developers who can help you reach your company goals or product development timelines, or if you’re wanting to establish a relationship with a trusted software development firm for upcoming project needs, check out what our clients are saying, then reach out to us for more information on how we can partner with you. 

The Benefits of Staff Augmentation

September 17, 2020

If you’ve ever felt like it’s time to either change around or scale up your development team, you’ve probably considered staff augmentation as an option. It can seem like a daunting task at first, but we’re here to walk you through how to find the right fit for your needs as there is no one-size-fits-all approach. 

Step 1: Forecast Your Needs

We can’t say this enough; timing is everything in this field. We understand that because we’ve been in this a long time. Technologies change, demands arise and staffing is a variable you can’t always control. This is why we recommend mapping out your technology and development needs for the year and having a team you can trust to fill-in when needed. Since timing is so poignant, it may even work for your business to also have quarterly strategy sessions to discuss the shorter-term technology fulfillment needs. When scoping out upcoming needs, it is beneficial to determine if this is a short-term project that is best managed separately from current commitments or is a longer-term engagement where a specific skill set and experience can be integrated into your team and leveraged beyond an initial milestone. If the latter, then staff augmentation is the better model for your needs.

Step 2: Determine Your Budget

In the increasingly competitive software development market, hiring engineers in-house on a full-time basis can be expensive and time-consuming, not to mention the overhead that comes with managing employees. If it is unclear if the development support or budget will be needed or available in perpetuity, hiring outside of the organization may be a good choice. Contractors can be highly expensive but effective for a specificity they may bring to the decision making and implementation approach, especially in areas such as security and compliance. The benefits of contractors for long-term product development can be leveraged, at a more budget-friendly cost, through a nearshore agency. This will often mean that you can have more than one new developer working on the project at hand, or helping in the long-term with your development needs. Regardless of what type of additional help you may need for the year, having a predetermined budget readily available will make the process much smoother. 

Step 3: Consider the Quality

Having a developer or team of software engineers that you trust is one way to ensure a more successful outcome of your needs. The offshore (European and Indian companies) versus nearshore (developers based in Latin America) debate will continue on in this industry, but a lot of your decision-making may come down to quality versus price, or weighing out a combination of the two components. Quality developers can take a jumbled mess of previous code and craftily cook up something incredible that you can use for years to come. They can recommend and follow coding standards and best practices, deliver clean code and be cognizant of the scalability of the product as well as the maintenance costs. Cheaper models often utilize less experienced developers who may have challenges integrating with your teams due to time zone differential and communication to name just a couple. Often the depth of knowledge, the breadth of understanding of the software development lifecycle and the cultural fit can be determined in a brief assessment interview.

Step 4: Interview

While you aren’t hiring a new member of your permanent staff, you are making a decision on someone (or multiple people) that you and your team will be engaging with daily for an indefinite amount of time. It is important that they not only have the requisite skills to complete the technical tasks of the job but that they are able to effectively communicate and assimilate into the team. Nearshore staff augmentation candidates, like those of ours in Costa Rica, have strong cultural ties to the United States which makes it easier to comprehend idioms and expectations during collaboration. Consider asking questions about process and escalation, how the engineer escalates issues or responds to changing requirements. Share with them your team’s preference for engagement, such as daily stand-up as part of Scrum ceremonies and Slack chats. Begin with interviewing the engineer that will serve as either the full-time team lead or part-time technical lead in order to get some confidence in the leadership that will serve to drive the project forward and support the engineers daily so that the burden doesn’t always fall to you.

Keep in mind that it is normal to ask a lot of questions, as these developers are potentially going to be an extension of your team. 

Step 5: Implement Your New Staff Augmentation Plan

Once you have chosen the development company and the particular staff augmentation team members with whom you’ll be working, it’s time to implement your overall plan. Make sure to have clearly outlined goals and timelines readily available for all members of your team, and to be confident in checking in regularly with your outsourced team members. A great development company will outsource talented developers who are confident in bringing you updates, and who are proactive in their approach to working with your team. It is important before engaging with a vendor to understand the onboarding process and get clarity on how the team will ramp up, as well as knowing what resources are available to ensure that access, integration and early deliverables overcome any blockers and meet or, better yet, exceed expectations. You should never have to question where your team is at with your timelines. 

If you’d like more information on staff augmentation services from First Factory, contact us to have a conversation. 

First Factory Makes the Inc. 5000 List

August 18, 2020

Text that reads, "We made the list, 2020 inductee" next to the Inc. 5000 logo

We are happy to announce that our growing company has been placed on the Inc. 5000 list, a prestigious placement of the fastest-growing private companies in America. A company that started with a New York City-based CEO and four software developers (plus one office manager) in Costa Rica has evolved into over 135 full-time employees at First Factory. Since 2000, we have been providing staff augmentation and project-based custom software development services to dozens of US businesses in a variety of industries.

CEO Jason T. Roff started First Factory after working as a software developer, managing numerous development teams and even writing several books on different technologies. He has been a key player in the nearshore development model thriving in Costa Rica and has continued to employ top-notch multi-national talent.

“First Factory’s growth has been fueled by the collective honesty, integrity and quality of all of our employees,” Roff said. “Our clients recognize the value of our engineers. Our employees recognize the value of our company culture.”

Inclusion on this list meant that all revenue and company growth information from the last three years was compared to that of other companies across the country. First Factory saw a 170% growth during that time period and ranked 2,425 out of 5,000 companies featured and number 307 on the industry-specific software category list.

As our team continues to grow, we are specializing in React, Angular, .NET, Java, Ruby, Python, PHP, React Native, Xamarin, Amazon Web Services and Microsoft Azure. We champion the use of functional and automated testing as well as continuous integration, build and deployment. We have clients in the finance, commerce, education, healthcare and other industries, and have worked to expand our growing portfolio each year.

“When you think Nearshore, we want First Factory to be top of mind. Our clients stay with us for years because they appreciate our engagement model and we don’t stop delivering,” Roff added.

Our commitment to quality and excellence in all that we do has been an integral part of our company’s growth, and the inclusion on the Inc. 5000 list has been a timely celebration during our 20th year in business.

How to Adopt Inclusive Hiring in Software Development

July 23, 2020

First Factory logo, two female employees looking at two laptops on a table in a conference room, 20 Years Developing Success banner

Hiring best practices often refer to the importance of diversity in the process. At First Factory, we prefer to focus on inclusive hiring instead. The first step in this process is to admit that we cannot be comfortable with hiring carbon copies of ourselves and recognize that everyone brings some bias to the hiring process. The more people from different backgrounds that we bring into our organization the better we function as a team, the more representative we are of our customers and the more didactic of an experience each of us will have. We seek to include people with different educational experiences, personal interests, social backgrounds, experience levels, genders and ethnicities. We identify where the imbalance is in our organization and the market, and keep the spotlight on those areas as we make our hiring decisions. We ensure that as managers and executives leave insecurity at the door and insist that we seek candidates who are more skilled than we are in their area of expertise.  We do this and more to improve ourselves, not to meet artificial quotas.

With promoting the opportunities externally we scrutinize the language we use in job posts and job descriptions, removing terms that may suggest gender or age bias in order to promote inclusive hiring strategies. We seek new avenues for posting positions, seeking social groups and job boards that serve disparate communities. When applications come in, we analyze each candidate against the same metrics, we do not disqualify if a profile is inconsistent with that of “typical” applicants. There are no automatic cuts for differences in education; there are no positives or negatives for a university degree versus bootcamp completion or being self-taught. Any decisions made based on those could suggest an economic bias, for example. We want to look at a candidate’s whole story and find the why behind the choices they have made, not the opportunities they were previously given. We do not want our hiring decision to be the continuation of negative biases from the candidate’s previous employers. We look for potential, not just what they have already accomplished, even for candidates with impressive employment histories. Technology changes daily, clients and product development will ensure that tomorrow’s challenges will be different than today’s. It is the passion and ability, for a candidate interested in a technical role, to learn that is what is most important. If we fail in finding candidates from different backgrounds for a role, we pause on the quick hire and identify where we can cast the wider net.

Our interviews for example are conducted by multiple colleagues, from different teams and different experience levels. If three people are in the interview, one will be a junior developer, one likely a mid-level and another a senior. The team decides which candidates have the best technical problem-solving skills and attitude to both add value to a team and help make their imprint on the company. Peer employees make the recommendation, not management, which adds an added layer of accountability to the inclusive hiring process. This helps avoid the overconfidence bias that recruiters and managers can bring to the table, where we are so confident in our experience and therefore our abilities to pick great candidates that we can justify almost any hiring recommendation we make. It also works to reduce the influence of the halo and horn effects where a candidate attribute influences our decisions positively or negatively. This may include attractiveness, education, previous places of employment, and more. Once again we need to listen and be ready to adapt.  We also ask what they would need from colleagues and management to be successful in their new job and what is most valuable to them from an employer. We take those answers and reevaluate our current policies and processes to further weed out any diversity biases.

It seems very common nowadays to rail against hiring for a cultural fit, indicating that the approach feeds into cultural bias. We would argue that if it is true for one’s organization then the culture is what needs to change; that the culture itself is not values-based and is inflexible. Culture is a great word, often misused. It requires a defined environment with the right ingredients to flourish. This constantly needs to be tended to. It doesn’t just happen and if not cared for overtime can become toxic. We need to coach our teams so that we can adapt and that our language and actions support inclusion. And we view changing our habits as growth. We look at microaggressions and work together to stamp them out. The word “guys” for example is so common when referencing a group of people. We call out the use of terms like these, in public, at the time it is said. We chose to use the term “team” instead, for example. We take the shame out of saying the exclusive term so that we all become more comfortable and accountable to change. 

What we measure we can affect. Putting metrics behind hiring to identify areas where we are not attracting or retaining the diversity of talent we desire with our inclusive hiring practices is part of identifying the root cause. We also must recognize that we are fallible, that we do not have all of the answers and that the best intent may not go as planned. We must be willing to hear feedback from candidates and employees alike, listen empathetically and take suggestions from others as to how to improve.

Fostering an inclusive culture and listening to our current and future employees is what will allow us to remain competitive and to continue to attract the best talent.

The Making of Your Nearshore Development Team

June 8, 2020

Several nearshore development team members stand around a large desk and computer

BAND TOGETHER

The best teams work as a cohesive unit. While every developer on our nearshore development team may be a rock star in their area of expertise, there are no solo performances. We are most successful when our developers are a natural extension of your in-house team and put your company goals above all else. To us, that means no useless overhead positions and no imposed processes. Direct access to your product stakeholders is the best way to ensure we understand your technology plans, coding practices, dependencies, project milestones, business logic, user profiles and your business goals. We work best when we are as invested in your outcomes as you are. 

You always have backstage access to the developers who share similar time zones, are fluent in written and spoken English, and you will always have full control over what systems and tools we will be using on your projects. The team is highly comfortable with Agile practices, meeting daily for stand-ups, committing to task estimates in sprints, participating in retrospectives and more. We are all equipped with the latest technologies, both in-office and work from home, and are expected to be on video for calls, respond quickly via Slack, email or any other channels your team uses to maximize productivity. No matter the challenge, we won’t miss a beat. Working in harmony increases velocity and quality, and lets us all enjoy the sweet sounds of success.

BACK UP PLAYERS

Our nearshore development team is approachable, respectful and has an insatiable thirst for learning. There are no lead singer egos here. We are not afraid to ask questions about implementation decisions and objectives. We never sit idle waiting for work and if anything, you’ll have to slow us down. While we do not force communication through a project manager and work hard to keep any non-development-related roles from slowing down any velocity and adding to your costs, our Development Managers, COO and CEO are accessible when needed. These resources will be intimately involved in the early phases to ensure that onboarding is smooth. We are highly focused on making sure environments and access are set-up quickly so that our developers are in tune and can be productive from day one. Our management team will hold weekly or bi-weekly meetings with key stakeholders at your company to ensure that the team is performing above expectations, marching toward key milestones and aware of any possible changes in your resourcing needs. 

AUDITIONS

We hand-pick the developers that we think will work with your technologies and your team. Personalities and working styles are as key to a successful relationship as the skill to get the job done. Whether your needs are ReactJS, Java, .NET, ReactNative or a host of other technologies, these are just some of the many tools our developers keep at the ready. The real talent is in problem-solving. We train our team to focus on building you a quality product efficiently, with an eye toward keeping long-term maintenance and refactors to an absolute minimum. Time is spent upfront ensuring that requirements, use cases and acceptance criteria are clear. The bulk of the work happens before fingers hit the keyboard; coding the solution should be the easy part. Our developers understand that the decisions they make today will impact users and business down the road. Unit testing is becoming a standard practice across teams at First Factory, and if we have the opportunity we would like to build this into the plan. Most importantly is that we guarantee your satisfaction within the first thirty days: if you are not happy with a new team member’s performance, we won’t charge you.

CONSUMMATE PROFESSIONALS

What you will come to understand immediately is that we at First Factory value the relationship above all else. While your nearshore development team needs over time may change, we want to be a partner throughout. We are honest, transparent and operate with the highest level of integrity. If something doesn’t go as planned, we’re committed to making it right. We will show up on time to every gig and will always be prepared to play. If we can’t fill a need or accomplish what you set out to achieve, we will absolutely be upfront about it. We don’t pull the bait and switch on development resources; we don’t hide our developers from you, and we certainly do not farm our work out to other agencies. We do our best to remove the barrier between client and vendor, and we facilitate seamless collaboration. 

ON TOUR

Whoever said, “Don’t go chasing waterfalls,” hasn’t fallen in love with some of the best Costa Rica has to offer. If you are interested in checking out our offices, we welcome the visit. We can be your personal roadie, set you up with RFID ID badges for building entry and get you fingerprinted to have access to our secure workspace where inside the amazing energy of the team is palpable. Our clients feel at home in our large office in Heredia, with some clients sending their team down numerous times per year to work side-by-side with our developers. It isn’t necessary for success that the teams have co-location time, but no one has ever regretted the trip down. We’d also love to show you around if you have yet to experience the beautiful landscape and warmhearted people. It is less than a five-hour flight from both NY & LA area airports to the Juan Santamaria International Airport (SJO), which makes it hard to find an excuse not to visit. To us, our team is your team and you are welcome anytime.

ENCORE

The right people, the right priorities and the right collaborations. These are just a few of the things that make us uniquely First Factory.

Would you like to learn more about how First Factory pieces together the ultimate ensembles in order to build long-lasting relationships with our clients? Don Gregori, Chief Operating Officer, mused on the topic during a Devchat.tv podcast, Outsourcing Oasis, which focused on building long-term relationships with clients. 

Education in Costa Rica

November 29, 2018

 Education in Costa Rica Infographic

After a civil war in Costa Rica, the army was abolished in 1948. This event became one of the foundations of Costa Rican culture. A year later, work began for the establishment of a new model of State, including social and labor guarantees, solidarity health plans coverage, human rights and education.

In 1957, these efforts proved to be extremely effective through the issuance of the Fundamental Law of Education. The idea was to build a new “army” of Costa Rica, made up of teachers, armed with books and blackboards. The most important goal was to make Costa Rican society the Central American example of solidarity, education and welfare. Through universal and required primary education, Costa Rican society has been able to achieve this goal.

Costa Rican leaders understood that education was the first step in the advancement of society and that the improved education model needed to be extended to higher education. Advances in the creation, consolidation and diversification of state higher education in the 1960s and 1970s were accompanied by the expansion of private universities in the 1990s. This expansion provided a wide range of opportunities for the development of different academic profiles, economic and social research and more development of the country.

As of 2018, advances in the quality of education allowed Costa Rica to have two state universities and one private university considered among the best universities in Central America and Mexico. Many other Costa Rican universities, both state and private, hold privileged places within the world rankings.

The Premier Nearshore Destination

On top of the stable political and economic environment, a central location and an oasis of natural beauty, Costa Rica also has incredible human talent to offer.

With an annual 4,000 new graduates going on to engineering and technology careers, Costa Rica is beginning to position itself as an attractive technological development destination for clients from around the world.

A Leader in Technology and Science

How can Costa Rica, a country of only 5 million inhabitants, be able to produce so many world-renowned professionals in the areas of technology, medicine and science? The education in Costa Rica explains it:

The promotion of free and universal education and the commitment to create training and education programs have allowed Costa Ricans to develop their full potential in these areas. Quality standards have been established to accredit graduates of state and private universities, ensuring a comprehensive professional profile, which is both attractive and competitive in the current global market. The commitment to education has paid off through the attraction of medical and technological companies looking to Costa Rica as a destination with a skilled and eager talent selection.

Another essential characteristic of Costa Rican education is the study of several languages.  Bilingual, trilingual and technical studies programs have been implemented since the 1990s that give added value to the Costa Rican workforce.

Universities play a central role in the development of the country. Out of 141 higher education centers that exist in the country, more than half are located outside of the Central region, which guarantees all Costa Ricans access to quality education programs.

The following is an overview of the main universities in Costa Rica, listed in order, according to international quality rankings:

Universidad de Costa Rica (UCR) Public University

  • National Ranking: 1
  • Latin American Ranking: 18
  • Global Ranking: 411

Universidad Nacional (UNA) Public University

  • National Ranking: 2
  • Latin American Ranking: 50
  • Global Ranking: 801

Instituto Tecnológico de Costa Rica (TEC) Public University

  • National Ranking: 3

Universidad Latina de Costa Rica (ULatina) Private University

  • National Ranking: 6
  • Latin American Ranking: 201

Universidad Latinoamericana de Ciencia y Tecnología (ULACIT) Private University

  • National Ranking: 8
  • Latin American Ranking:122

Centro de Formación en Tecnologías de la Información y Comunicación (Cenfotec) Private University 

  • National Ranking: 23

Costa Rican Higher Education in numbers

  • The five state universities enroll more than 102,000 students annually, while the 54 private universities in the country absorb 105,000 students per year.
  • More than 15,000 new professionals graduate from state universities each year and enter the labor market.
  • Private universities graduate around 45,000 people per year. This difference is due to the length of state university programs being longer than the private institutions.
  • 94% of the graduates of state universities manage to place themselves in jobs related to their profession.
  • Every year in Costa Rica, about 4,000 people from the universities graduate from an engineering program.
  • The lowest percentage of unemployment in graduates is presented in the areas of Engineering and Health Sciences.
  • This year Texas Tech University will be open in Costa Rica, expanding the academic offerings of the country.

University overall stats

  • Gender distribution: 55% of university students are women and they graduate relatively more often than men. Nonetheless only 7% of women choose a career path related to Engineering and Technology. Historically, most women chose Education, Social Sciences or Business Administration as majors. 22% of the total of graduates in technology and engineering are women.
  • Age distribution: Most students enroll at age 18 in public universities and graduate between ages 23-26, while 42% of private university students are 25 years or older. By 2017 48.5% of Costa Ricans between ages 18 and 25 were enrolled in Higher Education Program. Overall 25% of the adult population in Costa Rica has a University degree.
  • Enrollment rates: Most public universities offer financial aid, scholarships and lower enrollment fees. A year in a public university will cost, at the most, $600. Private universities have higher enrollment fees and fewer financial aid or scholarship options. The tuition of a year of private education can cost up to $2,000.
  • Academic Offer: By 2017 the estimated amount of careers offered was 1300,  mostly in Education, Social Sciences and Economic Sciences. 19% of the academic offer is focused in Technology related areas (Software engineering and the like). 94% of postgraduate programs for Technology fields are offered in public institutions.
  • Demographics: 75% of university students come from urban areas.

Software Development Talent Pool of Costa Rica

October 15, 2018

First Factory is uniquely designed to foster a culture of continuous learning with its talented developers in Costa Rica. The market may not be as tough as Silicon Valley in San Francisco or Silicon Alley in New York, but it is competitive, nonetheless.  There are dozens of outsourcing software development companies with bases in Costa Rica, and many major companies have large footprints here.

So, why is Costa Rica such a hub for software development?

A Bit of History

Good education, stable government and a great trade partner.  In 1948, Costa Rica disbanded their military and redirected its funds toward education. With an education-first philosophy, the younger generation of Costa Rica began learning English very early on and have been using it for most of their lives.

Costa Rica has enjoyed strong and stable economic growth. Costa Rica and The United States have a long, formal diplomatic relationship, and trade between both countries is strong. High-quality agriculture exports such as coffee, bananas and sugar make Costa Rica a strong trading partner, and the country’s political stability and relatively high education levels make foreign investment in Costa Rica very attractive. Costa Rica secures one of the highest levels of foreign direct investment per capita in Latin America.

The combination of outside investment, strong education systems, and high levels of English proficiency yields an environment that produces a talented workforce and provides an excellent source of recent graduates that are looking for work.

Recruitment

First Factory is well connected in the development community and is able to attract and retain great talent.  In addition to targeted recruitment ads on job sites, we leverage a growing social and professional network of over 20 thousand people. This community follows our team through our Facebook posts, and other channels, celebrating our culture and highlighting our developers. We work directly with developers and recruiters on a regular basis to identify candidates with whom we can directly communicate when the right role becomes available, thus reducing the time to hire. Once our network is energized about our open positions, we begin a thorough screening process to ensure that only the best candidates make it through.

Hiring Process

After an initial resume screening, applicants must pass a recorded spoken English assessment that places them at or above a professionally-acceptable level of proficiency.  The second assessment is a coding challenge on the HackerRank platform which times, records and assesses basic conceptual understanding and working skills specific to the role and language for which we are hiring. Everything about their assessment is evaluated and the entire session can be played back to review even the smallest details, including the edits the applicant made to their own code.  Candidates that successfully pass the English and Skills-based screening process are invited to a technical assessment video call with two of our senior developers. Only those candidates who show strong skills or great promise (depending on the level we are hiring for) are invited to an in-person interview which seeks to further evaluate technical skill (sometimes including a paired programming session), evaluate a cultural fit, and establish expectations for internal and client relations. It is a tough process, but a necessary one. Only those with the right chemistry and the unique combination of skill, will, and a strong desire for self-improvement will make the team.

Onboarding

Our efforts to provide our clients with the best developers don’t stop at the point of hire. We actively coach and support our developers through their entire careers at First Factory. Perhaps this is why we have significantly lower turnover rates than others in the industry. We are hands-on with each developer and establish training programs for each based on their current skill level, from entry-level to senior developer.

Entry-Level Developers are placed into a customized training program to reinforce foundational knowledge of object-oriented programming, test-driven development, and to refine soft skills needed for successful client relations. Training programs last up to six months, with the first half of our Academy focused on technical skill building and the soft skills required to effectively communicate with our clients and within the team. The second half of our Academy is spent building actual internal products using the latest technologies and design patterns.

Junior Developers are indoctrinated to the common Agile practices, internal standards, and tasks geared toward exceeding client expectations. Junior Developers are assigned mentors (senior developers with an average of 5 years experience) who provide ongoing coaching, review code and help identify options for impediment resolution. Junior Developers are never on a client solo, as a senior developer is assigned a few hours per week to help with code reviews, architectural decisions, impediments, and communication, if necessary.

Feedback and Coaching

All employees receive feedback and additional coaching. All Entry Level and Junior Developers are formally evaluated every six months for their first two years where we provide 360-degree feedback, including input from clients.  Mid and Senior Level Developers are reviewed annually with the same 360-degree feedback. All Senior Developers meet weekly in one-on-one sessions with the COO to discuss team performance, client satisfaction, professional development and more. Our Senior Developers and our in-house computer science professor conduct workshops for the company during lunch and learn sessions and are available to all for problem-solving and guidance. We have open office space and rotate seats regularly to foster communication, ensure that growing teams stay together and that Senior Developers are embedded throughout.

We keep all developers active, whether working for clients or skill-building. Developers that are not assigned to clients, as part of a staff augmentation model, lead our project-based work. When developers are between clients or client-based projects, they balance their time between learning new technologies and supporting internally developed products, thus always refining their skills. There is never downtime that leaves developers idle or without direction.

First Factory is known in Costa Rica as a great place to work. It is known that to be hired here, you must be very good at what you do. We hold ourselves to high standards so that we exceed our clients’ expectations and preserve a truly unique and remarkable culture.

BASED IN:

NYC, NEW YORK, USA

NEARSHORE IN:

HEREDIA, COSTA RICA

PHONE:

+1.646.688.5070

HAVE A QUESTION?:

Send us a message

  • Home
  • Work with us
  • Team
  • Guarantee
  • Careers
  • FAQ
  • Contact

First Factory © 2023 · Privacy Policy