Heh, you describe me exactly. I'm "junior"-ish and the second to last place I worked at was microservice, a ton of Docker, and MongoDB. Definitely wished we had a simple monolith with Postgres instead.
Honestly someone who understands the environment they are developing in. I don't care about the language as much as I care about understanding the choice they make.
But ultimately we are using SQL, queue, concurrency, single tenancy and monolith (few to none micro services).
I worked at a place that had a few dozen services and one DB, worked on by dozens of developers. It was amazing. Oh and one repo, that made a huge difference.
Not really a myth. I do full-stack development. Anything from Ops (will happily configure and deploy to AWS with various CM tools, will set up centralized logging, will set up and configure alerting and monitoring), to DB (been a postgres user for half a decade, dbs with hundreds of gigs of data) to backend (single-handedly built my own Rails-like framework that we used to service millions of users) to frontend (can sling together anything from raw DOM to Backbone to React). The downside is that I'm not really a hardcore expert at any of these things, so any good specialist from any of these areas will be better than me. My role is best for smaller teams spinning up new projects, not as much where you'd need the top 1% professional in a certain area. Definitely wouldn't hire myself if I needed a specialist in a specific area.
I am in charge of every single thing from devops to data modelling to backend web services to frontend apps to design and testing to responding to inquiries from users of a dozen web services. Does that boggle your mind too? That is the reality of my job. I don't have the time to be an expert in every single area when I am the one who has to do everything.
I'm sure you're great at setting up servers. That is probably the part of my job I dislike the most, but it's something I have to do, so I do it.
I wish. My recent task has been writing scripts to set up Postgres on a bare-bones linux server (including all security, software, users, nfs, hot backup servers, etc) and port an Oracle database over to the postgres database and update 1000s of oracle queries to work on postgres.
In my spare time I also had to create some new admin screens and do a bunch of back end work. I also created a bunch of new svg images for the admin screens.
Basically I'm expected to do everything from setting up and managing linux servers, security, install and configure software, set up oracle and postgres databases, do DDL and DML work, write server-side code, write web services, create images and do layout work, write test cases, write html, js, css, and know a bunch of JS libraries like vue, vuex, vue-router, webpack, jest, bluebird, lodash, async, tailwind, scss, etc. ad naseum.
I’m a DBA at a small university. I’ve found that as we move more stuff to “the cloud” on various platforms, my job is much less performance and administration, and much more development. I spend most of my time writing data exchange jobs (between vendor systems) and supporting our reporting/analytics users.
I don’t plan to continue in administration work when I move on from my current role—partly because I’ve found the development to be more fun, and partly because I’m seeing the writing on the wall.
Hard to be anything else if the entire job is spinning up a yet another microservice and then spending most of your time debugging in production because shit keeps breaking all the time.
I know being the edgy you-don't-have-big-data guy is all the rage right now, but seriously? Most people can fit all of their work on one server? What kind of mom-and-pop shops are you working for?
I've worked at midsize "non-engineering" companies that do boring stuff like logistics where they wrote their own RDBMS and even virtual machines for legacy hardware.
It's not that uncommon especially if you've been around a long time.
I'm a pretty broadly experienced guy and, within my skillset, I can do basic-to-intermediate sysadmining.
I was born in 87 so I went through the era where people bought colos and servers and maintained their own web stack - though was too young at the time to ever get that notch in my belt.
I'm a power user who likes to tweak things and observe internal, often over looked processes. I don't like losing raw control behind a user friendly abstraction.
I'm interested in crunching statistical data from my own raw data logs.
Deep down, I don't expect my small projects and personal blog to ever cumulatively reach a server-melting velocity. (If they did, that'd be sweet, though.)
I own a Linode that I consider woefully underused.
Combine all of that and, for whatever reason, it just seems to me to be a good idea to at least attempt to roll my own web stack. At least, until something melts, is outside of my skillset, and I need to fallback to a quickly scalable, low maintenance, cloud-based solution.
That said, there is still a side of me that doesn't want to expend more effort than he has to and, ultimately, wants to tinker with new technologies and frameworks... so that leads me to the hunt for an interesting solution to lightweight API frameworks.
And, hell, if I take the hard road and find a solution with an advantage and is something that can be scaled, well, that sounds like a business idea to me.
I've got a lot of experience in a lot of different types of development. (I regularly write in Python, JavaScript and C#, and sometimes in Kotlin, Swift, PHP etc... I have never run a big Kafka/Hadoop cluster or some high performance system in akka/erlang. Or writen enough lisp). I'm pro relational database, less so no-sql unless a good fit. I like JSON fields. Prefer redis to speed things up.
I've built huge web platforms and worked in almost every frontend framework. Plus about 10 years on and off Unity experience.
I run a small agency on my own and get on well with a number of clients.
However, it's immensely difficult to get a handle on it all, a lot of the projects I do are "difficult" ie require a range of skillsets that I'd struggle to find a single developer to cover all the bases.
I can't work out, what if anything, if I was to try to become "more sensible" what I would restrict myself to in order to stop streching myself so thinnly across so many different technologies and enviroments.
My first job for 4-5 years was managing teams of 10-20 as a Technical Project Manager, and I moved into seriously delivering the technology over the last 10.
I feel like the answer is to provide a much bulkier up front process (planning / design / ux) in order to grow the value of the work I do, but I've kind of specialised myself in doing the development work as quickly and cost effectively as possible. Obivously that means sometimes there are problems, but in general, as I've delivered so quickly, I'm still about 10x under market rate. And I don't feel it's my world to do design/ux.
I have regularly been involved in RapidStarts. ie 2 day hackathons where I delvier a working protype ready for presentation to CEO/CTO level people, and have generally shone in these situations.
Working like this is breaking me though, so I'd like to sensibly move to something else or start doing things differently.
Perhaps it is just working in a job or working as a day rate contractor? Or selling my business/skills differently.
If I was to get a job, what role should I aim for?
I basically do my best yes, whilst having to earn a living in my chosen field. FreeBSD and Linux where I can advocate them.
Part of my current contract is migrating a customer away from SQL Server to Postgres, and it feels good. Automating powershell on aws instances doesn't feel so good, but it's temporary pain.
I feel this is especially true in a web/API world, where a lot of what isn't automated is usually rather similar between projects.
I deal with some daily major systems and some critical security architectures, but most of the time I feel like a digital janitor who is mainly making sure the SOA pipeline doesn't clog up.
Hah, that's silly. If you wanted me to concentrate on coding,you'd help me with automated deployment, automated backup of my postgres db every night (even if it reaches 2 TB+ in space), etc, etc. Your solution isn't geared towards developers at all.
When I was at a startup, my job was take care of this one important service, but also be the person for all the server stuff that didn't have a person.
Which meant I administered DNS, and email, and Google gSuite (or whatever it was called at the time or now), built out internal tool web login/SSO and migrated it to different identity systems, managed our domains, managed our certificates, advised client teams on security issues, did OS upgrades on servers, managed access to the servers, managed paying several of the vendors and was their single point of contact, patch (server side) OpenSSL so that client system libraries don't crash when OpenSSL and Microsoft disagree on vague specifications, managed a new grad building a TLS 1.3 library for our Android client, pretended to be a data scientist to analyze my service's data because we didn't have any of those (and when we did, most of them were worse at pretending than I was) etc.
Someone from our client teams built server stuff occasionally when it was more convenient for one person to do the front and backend or server people didn't have time.
The only people not wearing many hats in startup land are either only good at one thing or are very busy on one thing.
reply