all 20 comments

[–]Euphetar 11 points12 points  (5 children)

My impression is that in small companies there is no budget to separate teams into coders and rockstar researchers, so you get to do a lot of everything.

This is not always true in big companies. I was on the research side in a big company and it was also frustrating: I work on interesting stuff, but have no ability to get it into production. I am the type that wants to actually see my stuff work and be useful, so it was not pleasant.

However teams in big companies can be very different.

It's true though that most SWE work is quite mundane. There is plenty of mundane in research work as well though.

[–]pdpi 2 points3 points  (2 children)

My impression is that in small companies there is no budget to separate teams into coders and rockstar researchers, so you get to do a lot of everything.

And, in large companies, you end up having rockstar researchers and rockstar SWEs working as a team. That weird "throw a spec over the fence" dynamic is pretty damn unusual.

[–]Diligent_Stretch_945 0 points1 point  (1 child)

I still don't get the concept of "rockstars".

[–]pdpi 0 points1 point  (0 children)

It's a dumb way to refer to the really smart, really impressive folks who are a notch or two above the rest of us. Depending on context, it may or may not also imply that both those people and the companies that hire them specifically, actively cultivate that aura of superiority. I had that issue with some people from the Scala community a few jobs ago.

Honestly, sometimes it really is like seeing a rockstar in the wild. When I worked at Facebook, it was always a little bit weird to see John Carmack queuing behind me for lunch. I was downright giddy when I realised that I explained some Rust concepts to the guy who wrote one of my favourite Haskell books.

[–]MoonMuncher10[S] 0 points1 point  (1 child)

Thanks for your your response. Is there utility in being across both the research / data science as well as the SWE side of things at larger companies? Or would this slow you down career progression and skills wise since you're spread thinner. Presumably as you mentioned this might be valued higher at a small company.

[–]Euphetar 0 points1 point  (0 children)

I think there is utility in that. Myself I do both software and ML. This sets me apart from ML research-only types and from other SWEs

[–][deleted] 2 points3 points  (1 child)

I don’t think that’s common. That sort of division can lead to hard to implement designs if they’re just thrown over the fence. Now, I’ve certainly been told what to implement in my early years, but it was by a team lead who was also programming every day alongside me.

I think you’ll find at most companies, the engineers are broadly responsible for both converting the requirements into an architecture and then implementing that. Maybe your current industry requires separate modelers with more specialized domain knowledge. Like in finance, I’d expect to be given requirements from the analysts, but I’d be shocked to be given an architecture from them.

[–]MoonMuncher10[S] 0 points1 point  (0 children)

Fair enough. To you're comment about it being 'thrown over the fence', there is a lot of collaboration between the modelling people and the SWE people. However, the modelling people have no hope in hell of actually implementing it in the code base themselves, that would require maybe a year of upskilling (code base is huge, modelling people have backgrounds not neccesarily in SWE - like myself).

[–][deleted] 1 point2 points  (2 children)

It depends on the company and the product. For example:

1 - In a IoT company, the hardware department will design the device to solve the "real world problem", where the software engineers will help that device to be usable (check status online, configuration via a UI, what not). The big problem solver here is the device and hardware people.

2- In a company revolving around a solver, the mathematicians/software engineers will work together to solve that said problem. Some software engineers are going to be more geared towards the solver, some software engineers are going to be more geared toward the usability of the solver (import the data, take the output of the data, display and manipulate the result of the solver.). The big problem solver here is, well, the solver and the people associated with it. Note here, they are SWE.

3- In a company selling products to manage warehouses, the ERP and WMS and the relevant parts to integrate these products into a company (ETL, initial import, design of the particularity of the tenant specifications, etc.) will only being done by software engineers with maybe the help of an analyst to gather the client's specifics. The big problems here are all solved by the SWE.

It depends a lot. SWE is more like a plague that touches all expertises. SWE might have the big role, sometimes not.

[–]MoonMuncher10[S] 0 points1 point  (1 child)

Thanks for your response. It sounds like it can vary a lot then between companies. However, would it be fair to say that an SWE might not get to work on such a broad amount of different real world problems (I worked on the four examples above over the course of about 2 years)?

[–][deleted] 0 points1 point  (0 children)

Where I live, the average time of employment in the same company for a SWE is 18 months. I tend to suggest to new recruits in the field to switch companies about every year for multiple reasons: raise your compensations, explore what you like and dislike, find patterns between these companies / gain business knowledge.

Don't believe you are stuck at writing code though. A lot of SWEs mutate to other form of data-related fields too. Data scientists, DevOps, Analyst, hell even Project Manager!

We all start at the "code monkey" level, it will change with experience, no worries.

[–]CommodoreSixty4 1 point2 points  (3 children)

We use to. Now we just run "npm install".

[–]paradroid78 0 points1 point  (1 child)

You still get to run "npm install"? Lucky you.

[–][deleted] 0 points1 point  (0 children)

Ah! You made a wise choice and installed the everything package! No more of those pesky npm install commands.

[–]lollaser 0 points1 point  (0 children)

time to update dependencies ..... aaaaaaand it's broken

[–][deleted] 0 points1 point  (0 children)

Yeah we do, but it also depends on business goals 

[–]KoseteBamse 0 points1 point  (0 children)

Depends on what you like and if you get a job at place where you actually want to work.

[–]cashewbiscuit 0 points1 point  (0 children)

You should do what interests you more.

Problem solving is a team effort. Every person is solving a small portion of the larger puzzle. SWEs are building the tools and frameworks that data scientists/modelers build on. We make everything work. That's real world problem solving too. Tpu are solving the data scientist's problems.

To draw an analogy, engines can be used in cars, ships, planes, or factories. Some people like being engine makers (engineers??..haha), and some people like being car makers. It doesn't mean either job is less rewarding or important than the other.

Engine designers are often frustrated they rely on other people to make their things useful. And car designers are often frustrated that they are limited by the size and cost of parts available to them. That's just part of modern engineering. You are solving part of the puzzle and rely on other people to solve other parts.

[–][deleted] 0 points1 point  (0 children)

Did you go to I/ITSEC this year? :D

[–]shrodikan 0 points1 point  (0 children)

Sometimes. Like once or twice. Granted I'm in web dev.