29

I joined a start-up recently as their first software developer. They want to build a mobile app in-house, but they have no infrastructure for development. - I wasn't told that before joining. They made out they had a small team already.

Usually when you join a company, they have procedures and tooling already setup.

This got me thinking, who is usually responsible for setting all this up, all the tooling, procedures, dev servers etc... is there a job title for this kind of thing?

I want to know so I can suggest my boss hire another person to handle this. Just saying "another dev" isn't good enough, as most devs haven't done this. I want to go back to my boss and tell him what position he needs to advertise for.

DJClayworth
  • 84,823
  • 25
  • 192
  • 283
flexi
  • 13,626
  • 4
  • 36
  • 62
  • 2
  • @musefan, I had the same thought. The person to set up all that is whomever is hired first or who gets to the task first. IE: "What's the job title...", IDK, what's your title? ... and that would be the title you're asking for, because it's you. – computercarguy Jul 22 '20 at 19:53
  • 2
    You cannot do this job or feel you are junior developer? – i486 Jul 24 '20 at 09:22
  • I'll second the point @FreeMan makes, just pick up the challenge. Even if you fail you will learn a lot. Even if you don't want your career to move in that direction it will make you a better developer as you will have a better understanding of the full life-cycle of the things you are building. – AVee Jul 25 '20 at 12:10

8 Answers8

111

It's called "DevOps". It's a mixture of development and systems admin blended in with security and site reliability. There is an enormous amount of stuff that the title of DevOps Engineer conveys, but setting up initial infrastructure, environments, security and the automation to maintain them primarily falls into that category.

Joel Etherton
  • 22,869
  • 8
  • 70
  • 88
  • I wasn't sure if DevOps covered the dev environment setup that future devs would use. I thought DevOps was more about automating the deployments, but I guess it could fall into DevOps. – flexi Jul 21 '20 at 22:17
  • 18
    @flexi In my experience it can differ significantly between different companies and what they're trying to achieve. A DevOps engineer might be just setting up deployment pipelines/git integrations/etc, they might be helping devs to define patterns (branching strategies etc.), they might be handling infrastructure/cloud/network architecture/provisioning. We had a DevOps guy build our SOEs for us. It'll be made clear in the job ads or at least the interviews what they're looking for exactly, but that title is generally the one they'll use. – Kayndarr Jul 22 '20 at 01:45
  • 11
    @Kayndarr at a start up a DevOps person is a catch-all. There really aren't a lot of separation for responsibilities. At a larger company that might be the case certainly. In the OP's example it doesn't really fit though. – Joel Etherton Jul 22 '20 at 02:56
  • I used to provide consulting services setting up dev environments and tooling, we typically found ourselves working under DevOps teams at clients and typically classified our services as DevOps while selling. Maybe it's not the perfect title, but I think it will find you the right people. – James Elderfield Jul 22 '20 at 07:28
  • When it comes to security specifically, I've seen the term SecOps. – Ben Jul 22 '20 at 15:41
  • 12
    This has become a meaningless buzzword, originally intended to convey the exact opposite idea of OP's description. – chrylis -cautiouslyoptimistic- Jul 22 '20 at 17:49
  • 4
    @chrylis-cautiouslyoptimistic- Please provide some references. I would love to read any articles you could provide to support your claim. – Joel Etherton Jul 22 '20 at 19:03
  • 7
    "DevOps" carries with it the idea of being both developer and operations--that's literally what the title says. Very often this is practice as much as it is a specific position, and it often implies things like "full stack devs are responsible for their own cloud architecture and deployments." If the company is big enough that someone's entire job is managing this sort of infrastructure, then it's just "Ops" (i.e. "Operations"). It's not totally clear to me which term the OP wants. – GrandOpener Jul 23 '20 at 00:12
  • 1
    Didn't realize devops was a specific role. I though it was more of a framework under which a team operates. – AffableAmbler Jul 23 '20 at 18:37
  • 1
    @AffableAmbler - It depends on the company. The concept of devops is often broken into sub components where you might have a sysadmin, security engineer, site reliability engineer and release engineer all working under a devops umbrella. At a smaller company (as described by OP) it becomes an umbrella role to cover system infrastructure and automation. – Joel Etherton Jul 23 '20 at 18:39
  • 1
    @AffableAmbler It's super fuzzy and up for debate; it's one of those things without a real correct answer so you can waste a lot of time arguing about it for no real benefit :D. That's why it's best to also lay out the role's expectations clearly, and just use the title to convey the general vibe. – Jason C Jul 23 '20 at 22:42
  • 1
    This does not answer the question. DevOps is an organizational setup (engineers doing both dev and ops), not a job title. – toolforger Jul 24 '20 at 06:43
  • 3
    @toolforger: You add the word "engineer" to it and suddenly it's a job title. It's even mentioned in the second sentence of my answer. the title of DevOps Engineer. I'm not sure how you get the to the idea that I haven't answered the question directly with that statement. – Joel Etherton Jul 24 '20 at 13:29
  • @JoelEtherton Ah, I read only the first sentence, because that seemed to be the answer and I was assuming the rest of the answer is just about further details. So the answer matches but could be improved by saying "it's DevOps engineer" first and explaining details later. – toolforger Jul 25 '20 at 17:02
46

I'm a little reluctant to use "buzz-words" such as DevOps ... which are "right-now in vogue" and therefore sometimes hard to anticipate.

If you're looking for someone to, for example, set up the computer hardware, troubleshoot the networks, take care of software updates, then I typically see terms like "IT Operations Manager." This person's responsibilities are usually fairly broad.

However – in the short run, at a startup, I daresay you need to be prepared to "get your hands dirty" for a little while.

Mike Robinson
  • 8,111
  • 1
  • 17
  • 27
  • 4
    Yeah, this isn't a full time role, it's pretty normal in small companies that haven't gotten everything worked out yet – Kilisi Jul 21 '20 at 23:53
  • 1
    Even in big companies. Mine has +5k people, but only few SW engineers. A small group of embedded engineers did >95% of the "DevOps" work needed specifically for embedded development. – Tim Jul 23 '20 at 07:55
  • 2
    Yes. We spread the 'DevOps' tasks around our small team of 5-10 devs as it's an interesting skill to pick up. – Olaf Jul 23 '20 at 14:13
  • Yeah it is kinda buzzwordy but the thing is it doesn't really matter what the title is at the end of the day as long as the role's responsibilities are clearly laid out. And for "DevOps", even when it doesn't completely hit the nail on the head, it at least does an ok job at communicating the gist of what's required. Add a little job description in job advertisements and it'll clear it right up. – Jason C Jul 23 '20 at 22:39
  • I agree it feels a little hokey to write "dev ops" on somebody's card in like a 3 person startup, though, haha. – Jason C Jul 23 '20 at 22:40
  • DevOps is not an en vogue buzzword and it wasn't when this comment was made in June of 2020. DevOps is a role. In a business that provides customers or clients with value using technology DevOps is responsible for working with Devs to create a release process for quickly, safely, and securely releasing new software for your clients and customers: What is DevOps and its Work. Depending on the web app a three person startup could still use a DevOps person – Peter Jirak Eldritch May 28 '21 at 18:09
  • IT operations and Information Technology Services (or just IT) is the group responsible for your businesses technology needs like computers, storage, networking and other physical devices, infrastructure, email, etc. – Peter Jirak Eldritch May 28 '21 at 18:13
  • An Infrastructure Manager is a type of Project Coordinator who specializes in computer network infrastructures. They are responsible for things like managing IT employees, making sure network costs are on budget and serving as a liaison between IT staff and project stakeholders. – Peter Jirak Eldritch May 28 '21 at 18:24
  • An IT Technician maintains computer systems, provides technical support to clients, and teaches clients the basic skills needed to operate newly installed programs. The responsibilities of an IT technician include diagnosing and performing hardware repairs on desktop and laptop computers, and generating and verifying physical security algorithms for software, firmware, and hardware. – Peter Jirak Eldritch May 28 '21 at 18:26
44

who is usually responsible for setting all this up

In a small startup, whoever can, does. There is no special title required.

This goes for any tasks that need doing - from cleaning the kitchen to setting up infrastructure. In a small startup, you usually don't have the luxury of over-specialization.

In one startup where I worked, I was hired to build the QA team. I spent part of my early time there setting up cubicles and running ethernet cables. I also cleaned the kitchen when it was my turn to do so.

Joe Strazzere
  • 382,456
  • 185
  • 1,077
  • 1,492
11

There are levels of specialization here.

A person who is completely dedicated to building and tending a CI pipeline is traditionally titled a build engineer. In most places, however, a more generalized DevOps engineer (what the system administrator job has largely morphed into in 2020) does a mix of setting up the CI/CD pipeline, automating infrastructure, monitoring and incident response, and other things. Usually once the pipeline is set up there's a modest amount of changes many of which are made by the developers, so only large places have an actual dedicated build engineer (or the business equivalent, a release manager).

Of course, since this is a "side gig" in many small/startup organizations, it'll be a developer, or QA engineer, or someone that does the initial setup, just taking on that role for a limited time. It's usually not a lot of work - for mobile apps, search around on what you want to do, and solutions like Ionic Framework that have a custom CI system for mobile apps will show up. In your case any engineer that's done it before should just do it.

You can also call in time-limited consulting help, though then you get to use a pipeline someone else made, which is suboptimal. Only do this if existing staff really just has no idea what to do.

mxyzplk
  • 35,863
  • 15
  • 105
  • 134
  • 5
    For me until now the other answers are all wrong to me since they state the position which you should be looking for is a "DevOps" role. Since DevOps incorporates both, but the OP explicitly asked for someone for the infrastructure, your mention of the "build engineer" is THE answer. Despite all other mentions of the "DevOps" role are also correct because 1-Dev-StartUp smells totally like "DevOps" – Chris Jul 22 '20 at 21:07
  • When you have a development team of one, that which is suboptimal for a larger team is often the optimal solution. If a shrink wrap solution takes just a few hours to set up but wastes a little bit of time each day and you compare that to a custom job that takes much longer to build, there is no spreading the cost in time saved by a better solution among many users. 1 Person having to make a few extra mouse clicks an hour is a lot cheaper than 50 people doing that. Also, small businesses often can't afford big one time investments, even when they are cheaper in the long run. – Nosajimiki Jul 23 '20 at 15:38
8

Typically such an environment grows naturally over time instead of one person setting everything up that you are used to from more mature companies. Assuming you know what infrastructure you need, in principle you could look for a system administrator who will take care of setting up server infrastructure (hardware or virtual servers or cloud solutions etc.), install standard tooling and the like. You might need separate roles to evaluate licenses from a business perspective, especially at the start this might fall into the role of existing managers that are responsible for other expenses already.

If you don't know what tooling you need you might need a senior developer or architect too.

Note that especially at a startup, it is often common to take on some tasks outside your core role. It's in the nature of the startup to not have people of every speciality and to get your hands dirty in areas you're not so familiar with. So it might be your boss expects you to take care of setting up at least a minimal tooling infrastructure for the time being. At least don't be surprised if your boss assumes you can do that.

Frank Hopkins
  • 7,416
  • 18
  • 37
6

If your company is that small I would suggest you don't hire a new employee to fill this role at all. It generally takes a lot less work to build and maintain an infrastructure than it does for developers to utilize it; so, you will just have a guy sitting around on his hands most days costing your company a paycheck (or stealing your job outright).

Instead you want to find an IT consulting firm. These are companies that specialize in doing IT work for small businesses; so, they can afford to hire experienced and specialized labor then spread the cost of those employees out to all the small businesses they do work for. The IT firm (if it is a good one) should actually have multiple specialists. First you will have a Project Manager evaluate your needs, then based on his recommendation you might have a Network Engineer come in and set up your server room, then you might have an IT Technician setup standard systems like backup routines, anti-virus software, virtualization, etc., then you might have a Build Engineer, Backend Engineer, or Full Stack Developer come in and set up your tech stack.

Unlike hiring a single DevOps person for the job who is probably not going to know everything, you are actually hiring a team of very experienced people who together can do the same quality work you would expect out of a very large and well established company's IT team. When you do need support, it typically costs more per hour to use an IT consulting firm than do it in house, but in all likelihood you are probably looking at a job that will take less than 20 hours to set up and just a couple of hours a month to support; so, even if they charge you $100-200 per hour, you are still looking at a smaller cost than a full time guy at $25-50 per hour.

Nosajimiki
  • 1,789
  • 1
  • 8
  • 12
  • A build engineer per ca. 5 developers is pretty normal, actually. The workload tends to slow down a bit after the initial setup is fully automated, but whenever anything changes - new workflows, new release processes, new tools integrated - the build engineer is back into full gear. – toolforger Jul 24 '20 at 06:50
  • Exact ratios will vary a lot based on what and how you are developing, but yes, I agree that there will still be work to be done post initial setup. The numbers I suggest are based on what I see consulting firms normally put into small businesses so my numbers probably seem a bit deflated since there will be a lot less time spent on RnD and more time spent on shrink-wrapped solutions. In many cases though, consulting firms have ready environments they can install & update with a script or iso that can turn what is normally a one off several hour process into a simple install procedure. – Nosajimiki Jul 24 '20 at 13:50
2

In the game development industry, I have often heard and used the term Build Engineer or Build Engineering Team to identify this kind of role. In other areas this may not be as common.

Nico Orrù
  • 21
  • 1
1

The role is called DevOps and requires both complete developer background and lots of additional expertise in build tools being used (also scripting, etc). DevOps is not an architect of course but not a junior role either and you should not feel disrespected for getting this assignment.

eee
  • 4,784
  • 4
  • 27
  • 44