Introduction

My name is Sam Richards, and I'm a Software Engineer at AdeptID, an API-first startup in Boston that works on matching and skill-based hiring AI in the HR tech space. I grew up on the south coast of England, where I studied Physics, Computer Science, and Math for A levels (the final 2 years of high school). From a young age, I was fascinated by technology, especially the satisfaction that came from fixing things. This early interest evolved into a passion for computer science, as I discovered the joy in unraveling complex problems and finding elegant solutions. I decided to study abroad in the US for my undergraduate degree, accepting a place at Northeastern University to study Computer Science. The field's emphasis on problem-solving resonated deeply with me, offering a blend of creativity and logic that I found uniquely rewarding. During my studies, I went on two 6-month work placements through Northeastern's CO-OP program, at two different startups of different sizes. My first placement was at a very small startup that worked in import/export and online media. Then, at AdeptID, also a small startup, where I worked on their new API. After school, I accepted an offer to stay on at AdeptID, where I still work today. At work, I mainly focus on infrastructure, DevOps, and MLOps. This role continues to feed my passion for problem-solving, as I'm constantly faced with new challenges that require thoughtful solutions.

Software Engineer

career options

1
Software Engineer
2
Cybersecurity Engineer
3
Data Scientist
4
Cloud Engineer
5
DevOps Engineer
6
Web Developer

Software Engineer

 skills

What are the main hard skills you use on a daily basis in your current job?

1
Git

Such a fundamental skill for any software engineer, yet it's often something computer science students don't have a good grasp of when entering the job market. A basic understanding of how it works and how to use it is essential when starting a job. Getting more comfortable with Git and understanding how to perform more complex tasks with it will dramatically improve your productivity. On a daily basis, I use Git for version control in all our projects at AdeptID, ensuring that our codebase is well-managed and collaboration with my team is seamless. I learned Git initially through online tutorials and further honed my skills during my CO-OP placements, where real-world application and mentor guidance were invaluable.

2
Bash

Whether it's developing build scripts or working on and debugging infrastructure, a strong understanding of Bash and Unix-based systems is invaluable. Every day, I rely on Bash for automating tasks, managing servers, and scripting deployment processes. My foundational knowledge came from my Computer Science coursework, and I expanded my expertise through hands-on experience during my work placements, especially when tasked with optimizing our deployment pipeline.

3
Debuggers

Being comfortable with debuggers and developer tooling in general is a super powerful tool to have in your arsenal. In my role, I frequently use debuggers to diagnose and fix issues in our software. This skill was initially developed in my university labs, where learning to debug effectively was emphasized as critical for any software developer. Real-world practice, particularly during my CO-OP placements, taught me the nuances of using debuggers in complex environments, greatly enhancing my problem-solving efficiency.

4

5

What are the main soft skills you use on a daily basis in your current job?

1
Collaboration

When working on large problems that businesses have to tackle, they will be split up into subtasks that will be worked on in groups. Being able to communicate technical concepts clearly with our engineers is a very important skill to master.

2
Detachment from your work

Leading on from that last point, it's crucial to be able to separate yourself from the code you have written. Coming from academic environments where you are judged on the quality of your code and its ability to solve the ad hoc problem, it can be hard to understand that criticism of your code is not an attack on you.


3

4

5

Sam

’s personal path

Tell us about your personal journey in

Software Engineer

:

The first step in my job search was to identify the type of company that I wanted to work for. I knew from early work experience and my career goals that I wanted to work for a startup company and wanted to stay in the Boston area. This was done using the Northeastern job board, called NUWORKS, which is a internal job board designed to be used for Students looking for COOPs. Using the sites filters, I filtered down the opportunities to those matching my criteria; I started applying to most of them (one click apply through the site). I think I put in between 40 – 80 applications before I heard back from AdeptID. After hearing back from AdeptID, I embarked on a comprehensive interview process that spanned several stages, each designed to evaluate different facets of my capabilities as a software engineer. The first round of interviews was behavioral, conducted by another engineer on the team. This session focused on understanding my approach to teamwork, problem-solving, and navigating the challenges that arise in a collaborative engineering environment. It was an opportunity to showcase my interpersonal skills and how they complement my technical abilities. Following the behavioral interview, I was presented with a take-home assignment. The task was to implement a basic API for some wage data using Flask, a micro web framework written in Python. This exercise was not only a test of my coding skills but also my ability to design practical, scalable solutions. It allowed me to demonstrate my proficiency with Flask, my understanding of RESTful principles, and how I approach software development projects from conception to code. The final round of interviews was more technically intensive, involving two engineers from the team. It was divided into two parts: the first half was a review session of the code I submitted as part of the take-home challenge. This discussion was pivotal, as it allowed me to explain my design choices, optimizations, and how I tackled the project's requirements. The second half delved into general coding and algorithm questions, assessing my technical knowledge and problem-solving skills in a broader context. The culmination of the interview process was a 15-minute call with the CEO. This conversation was less about technical prowess and more focused on cultural fit, vision for the company, and mutual expectations. It was an insightful exchange that highlighted the importance of alignment between personal values and the company’s ethos. After successfully navigating through these rounds, an offer was extended to me to join AdeptID as a Software Engineer. Reflecting on the entire process, it was a comprehensive evaluation that not only tested my technical skills but also gauged my fit within the team and the company culture.

What would you tell your younger you regarding building your current career?

Keep working on problems that you find interesting and learning about things that excite you.

Final thoughts & tips

In wrapping up this article, remember that the journey into software engineering is as much about persistence and curiosity as it is about the skills you acquire. Stay adaptable, keep learning, and don't shy away from challenges. Networking and mentorship are invaluable, as they open doors and provide guidance. Embrace failure as a stepping stone to mastery and maintain a healthy balance between work and life. Always seek out resources to boost your knowledge and skills. Above all, remember the passion that drew you to this field and let it guide your path forward. Success in software engineering comes not just from what you know, but how you apply it and grow along the way.

Sam Richards

Sam Richards

Software Engineer
Build Fellow
Open Avenues Foundation
Open Avenues Foundation

My name is Sam Richards, and I'm a Software Engineer at AdeptID, an API-first startup in Boston that works on matching and skill-based hiring AI in the HR tech space. I grew up on the south coast of England, where I studied Physics, Computer Science, and Math for A levels (the final 2 years of high school).

From a young age, I was fascinated by technology, especially the satisfaction that came from fixing things. This early interest evolved into a passion for computer science, as I discovered the joy in unraveling complex problems and finding elegant solutions.

More like this