What is your development environment - hardware and software?

Man of Honour
Joined
19 Oct 2002
Posts
29,723
Location
Surrey
I'm just starting to get back into programming as a hobby and try to get an idea I have started. I'm trying to separate it from my main social/gaming desktop to make sure I don't get distracted and looking into the best environment for me. It got me wondering what everyone on here uses.

e.g.

Windows/Linux/MacOS?
Desktop or laptop?
Multiple monitors or one large one?
What type of development do you do?
What tools, IDE's and editors do you use?
What type of software development do you do?
Professional or hobby?

It's just a bit of curiosity as I appreciate everyone will have different use cases and goals to achieve.
 
Hey, my personal set up is:

Windows/Linux/MacOS? Linux and Windows depending on what I am developing. Try and keep to linux as much as possible but booting into windows rather than using a vm or equivalent is much preferred for me when having to use Visual Studio.
Desktop or laptop? Desktop all the way, I do have a laptop that I can use for small changes etc. but nothing compares to using a full sized keyboard and multiple monitors!
Multiple monitors or one large one? Multiple monitors definitely. I have a 28" 4K monitor in the centre with 2x 24" monitors, one each side. To me a large monitor is never as useful as I find you spend time juggling with windows when you could just maximise onto a smaller window.
What type of development do you do? Full stack
What tools, IDE's and editors do you use? Visual Studio Code, Visual Studio, terminal emulator, MS SQL Server Management Studio, Android Studio plus other bits when appropriate!
What type of software development do you do? Bit of everything depending on what interests me at the time! Mobile apps, web apps, desktop bits, assorted scripting, electronics, etc.
Professional or hobby? Both, at home is 90% hobby stuff as I can't really do work work at home (sadly!)
 
Windows/Linux/MacOS? Mac for work, windows 10 for home.
Desktop or laptop? Macbook pro for work, surface book at home. At both places I have an external keyboard + mouse plugged in.
Multiple monitors or one large one? Laptop screen + large monitor at both.
What type of development do you do? Mobile development.
What tools, IDE's and editors do you use? Most of the time spent working on Android so Android studio, sometimes I'll need to work on web things, so vim.
What type of software development do you do? Pretty heavy on Android for the last year. Previously worked as a backend dev. Anything these days not android related I usually write in Python or Java.
Professional or hobby? Both!


I used to be in a similar position to you, only owning a spec'ed up gaming machine which is easy to be distracted by. The solution for me was to have a Windows partition for gaming and a linux partition for non gaming. Made it harder to simply switch contexts since I'd have to actually restart the computer and couldn't simply fire up a game on a whim and become distracted.
 
Windows/Linux/MacOS? Windows for my PC but server which I deploy to runs Linux.
Desktop or laptop? Mostly Desktop but i sometimes RDP to desktop from laptop/tablet hybrid.
Multiple monitors or one large one? Multi
What type of development do you do? Everything really, but currently playing with microservices.
What tools, IDE's and editors do you use? VS, VS Code,
What type of software development do you do? I like making chat bots at the moment to automate somethings in my house, give notifications when downloads are done, send me the latest internet comic and such. Hopefully starting a cross platform app to control domoticz soon though once I get some time, (got a 1 month old at home).
Professional or hobby? Both
 
Windows/Linux/MacOS? - Linux (Ubuntu), though I may swap back to MacOS as a thin client if I get round to setting up my dev server again.
Desktop or laptop? - Laptop for work, desktops for personal stuff.
Multiple monitors or one large one? - Laptop screen + external 23" monitor
What type of development do you do? - All sorts, but right now I'm working on a Docker Swarm cluster microservice CD thing servicing some mobile apps.
What tools, IDE's and editors do you use? - Terminal emulators, ssh, vim, Docker as mentioned, Discord / IRC for chat, Inkdrop for note-taking, Gitlab for repos / CI / CD, Azure for hosting on this project.
What type of software development do you do? - As above!
Professional or hobby? - Professional; I run a small software architecture consultancy company.
 
Windows/Linux/MacOS? MacOS
Desktop or laptop? MacBook Pro
Multiple monitors or one large one? Multiple
What type of development do you do? Full stack. Docker/AWS/Terraform for devops, NodeJS/MongoDB on the backend, React (Native) with Redux for front end and mobile applications. ElasticSearch/InfluxDB for large data sets.
What tools, IDE's and editors do you use? Sublime Text 3 with a good set of plugins for syntax highlighting and code completion. iTerm 2, Paw for debugging APIs and generating documentation, Transmit for FTP/SCP. RoboMongo or Sequel Pro for browsing databases
Professional or hobby? Professional but also some hobby projects.
 
Windows/Linux/MacOS? Windows.
Desktop or laptop? Desktop, I do have a laptop and if I ever wanted to code on the road it could be used.
Multiple monitors or one large one? One, if i was doing this professionally I'd definitely have 2+
What type of development do you do? Small apps that I think would be interesting to make, game prototype. If I think of something that would be interesting to solve I'll go tackle it. For instance I thought it would be good to make a minecraft clone, as soon as I made the terrain generation, destruction and creation I quickly got bored and stopped :p
What tools, IDE's and editors do you use? Visual Studio, Atom, Sublime Text, Unity.
What type of software development do you do? Whatever takes my fancy, some people do puzzles and jigsaws in their spare time. If I think something would be tricky to code (for me) I'll give it a go.
Professional or hobby? Hobby.
 
Windows/Linux/MacOS? Linux, I work specifically on Linux embedded systems so makes sense.
Desktop or laptop? Work laptop, going to the office every so often and on-site semi-regularly desktop wouldn't work.
Multiple monitors or one large one? At home (work from home most days) I have a 26" LCD to hook up to alongside the laptop screen, everywhere else just the laptops 14.
What type of development do you do? Embedded Linux, so U-Boot, Kernel and Build system (mostly Yocto) stuff, occasionally some userspace/C++ stuffs
What tools, IDE's and editors do you use? Vim is all you need, plus git on the command line
What type of software development do you do? As above :p
Professional or hobby? Professional
 
Professional or hobby? - Professional; I run a small software architecture consultancy company.

Ooh. Are you able to share any recommendations for improving architecture skills? I generally know what I want to achieve but there's always hundreds of different solutions which causes massive problems for my perfectionism of wanting to go for the best most scalable solution :p.


Windows/Linux/MacOS? Windows
Desktop or laptop? Desktop
Multiple monitors or one large one?
24" widescreen and two old square 19"s on either side. They fit well together though I do wish I had one of the fancy widescreen monitors I could rotate to portrait mode
What type of development do you do? Full stack so pretty much anything. From C#/ASP.NET/REST through to Java, Android and SQL.
What tools, IDE's and editors do you use? Visual Studio, Android Studio, Microsoft SQL Server Management Studio, Notepad++, TortoiseHG/mercurial for source control and Redmine for internal issue tracking.
What type of software development do you do? Backend/frontend web and mobile mostly. I'll often be writing an app which sends data to our web platform and then have to write all the import/display routines on there too.
Professional or hobby? Professional
 
Ooh. Are you able to share any recommendations for improving architecture skills? I generally know what I want to achieve but there's always hundreds of different solutions which causes massive problems for my perfectionism of wanting to go for the best most scalable solution :p.

I'd never try to come across as some kind of guru, because I'm really not :p I suppose there's not much substitute for just getting involved and doing it. Don't work only 'on paper'; do real spikes and PoCs, and slowly build up a system. Don't be precious about what you design and be prepared to mercilessly drop fashionable ideas or technologies if you can't get them to work, no matter how silly you may feel.

For the record, I don't think architecture is a good area for perfectionists, because it can never be perfect. Programming is easier to attain perfection in, at least at the class level, say.

I also recommend getting a good grounding in things like networking, firewalls, load balancers, and particularly cloud platforms these days. This is totally down to personal opinion / definitions, but for me, what separates an architect from a developer is that they're able to see how a system can be deployed, how it scales, how it grows with the business, what its weaknesses are, and where the areas of greatest risk are. Also, it might be worth looking at the classical four types of architect (business, solution, enterprise, technical) and understanding which hat you might want to wear in which situations.

Probably not much help, sorry :/
 

That's great, thanks :)

I'm very much someone who likes to rip out old tech for new so that's quite reassuring to hear. I've been trying to get away from webforms ever since I joined the company - I'm slowly forcing web API/MVC into parts though! Maybe I'm not a true perfectionist, I can easily live with shortcuts where they make sense but I like to at least try and achieve the best I can. I was fixing the sagging heatshield on my car the other week (the sound of it clattering on the exhaust was driving me mad!) and noticed a previous owner had used plastic bottle tops instead of washers- I like the ingenuity of that fix :p.

We moved into Azure a couple of Christmases ago on my suggestion and I'm generally the one who looks after it but I do definitely need to get my head around scaling and redundancy more as it's currently our weakness. We write and host an asset management system and get several hundred zip files each day from our apps, we geo-replicate the raw incoming data within Azure and its also synced back to our HQ within ~30 seconds but if the VM falls over we're not prepared to quickly get the website back up again. I had planned out how we can and should use Azure's traffic manager / load balancer to set-up redundancy so we can bounce to different VMs or at least have the domain respond with an "we're currently offline" message but never actually got around to implementing it yet.

Good suggestion on researching those four roles, I'll have to go have a look. Even though it's my weak area I'm very keen to go down an architect route. Probably so I can ensure people implement things the correct way more than anything :p
 
Windows/Linux/MacOS? Mac - Work & Home
Desktop or laptop? Laptop
Multiple monitors or one large one? 15inch Mac screen + 2 x 24 inch at work, single 27 inch at home
What type of development do you do? Backend Java development, mainly restful microservices.
What tools, IDE's and editors do you use? IntelliJ, Atom, Paw
Professional or hobby? Professional
 
Windows/Linux/MacOS? Linux and Windows depending on what I am developing.

Desktop or laptop? Desktop all the way,

Multiple monitors or one large one?
at home 1 34" 3440x1440 ultra wide, At work 1 25" 2560x1440. i did used to use multiple monitors but i get less distracted with one now days.

What type of development do you do? Most Types: C/C# Python,Bash,Batch,HTML, CSS, PHP, MYSQL & developed some custom languages

What tools, IDE's and editors do you use?
Visual Studio [Windows] / Nano [Linux]

What type of software development do you do?
Automation, scripting,Hardware integration, Application development,Front end/Back end integration

Professional or hobby?
Technically not a Professional (i'm not employed as a programmer) nor do i do it as hobby. I code things that make our work environment more robust.
 
That's great, thanks :)

You're welcome.

I'm very much someone who likes to rip out old tech for new so that's quite reassuring to hear. I've been trying to get away from webforms ever since I joined the company - I'm slowly forcing web API/MVC into parts though! Maybe I'm not a true perfectionist, I can easily live with shortcuts where they make sense but I like to at least try and achieve the best I can.

The thing is to always remember that there has to be business value in that sort of work. If the business don't see the potential savings in time and cost of moving to modern platforms directly, the best thing you can do is progressively introduce new technology (like you have been doing) and silo / wrap the old stuff to the point where it's considered 'legacy'. In my view, anyway.

We moved into Azure a couple of Christmases ago on my suggestion and I'm generally the one who looks after it but I do definitely need to get my head around scaling and redundancy more as it's currently our weakness. We write and host an asset management system and get several hundred zip files each day from our apps, we geo-replicate the raw incoming data within Azure and its also synced back to our HQ within ~30 seconds but if the VM falls over we're not prepared to quickly get the website back up again. I had planned out how we can and should use Azure's traffic manager / load balancer to set-up redundancy so we can bounce to different VMs or at least have the domain respond with an "we're currently offline" message but never actually got around to implementing it yet.

You probably already have this, but having lots of non-production environments can make DR planning and practicing somewhat more predictable. The other tip I'd give with Azure is to get into the habit of using the ARM templates as much as you can; aim to get to the point where you can recreate your entire production environment in 10 minutes (or less!). That might sound utterly bonkers, but honestly, I don't believe a system is really production ready unless its creation and management is essentially automated. Just my opinion, of course ;)

Good suggestion on researching those four roles, I'll have to go have a look. Even though it's my weak area I'm very keen to go down an architect route. Probably so I can ensure people implement things the correct way more than anything :p

Just mind you don't turn into one of those awful 'paper architects' that design unworkable systems and then hand the implementation over to the poor schmucks who actually have to support the darn thing, whilst offering them precisely no tangible assistance in the process :p
 
The thing is to always remember that there has to be business value in that sort of work. If the business don't see the potential savings in time and cost of moving to modern platforms directly, the best thing you can do is progressively introduce new technology (like you have been doing) and silo / wrap the old stuff to the point where it's considered 'legacy'. In my view, anyway.

We could do with rewriting a lot of our system because of business needs so the most difficult bit (getting the buy in) is hopefully a little easier. We make an end-to-end data capture/data inspection (humans answering questions on the quality of the work)/analysis and reporting system, it was originally designed around a particular type of asset but now stores several related assets in the same field which kind of got shoehorned in so we end up with properties in the base class of all assets that have no meaning at all to some of the ones we've added later and moving them out now is a pain. We're exploring wrapping it up into a product that can be applied to anything in any field but I'm pretty sure starting from scratch would be the easiest solution. The architecture of writing a system that can be applied to anything with variable workflow parameters all over the place is a bit daunting!

You probably already have this, but having lots of non-production environments can make DR planning and practicing somewhat more predictable. The other tip I'd give with Azure is to get into the habit of using the ARM templates as much as you can; aim to get to the point where you can recreate your entire production environment in 10 minutes (or less!). That might sound utterly bonkers, but honestly, I don't believe a system is really production ready unless its creation and management is essentially automated. Just my opinion, of course ;)

Heh it was actually only on Thursday I finished a Powershell script to take our daily SQL bacpac files and restore them to a local server for testing/verifying - it supports pre/post-process scripts so we can do fancy stuff like strip old unnecessary data if restoring to a dev database. We've several million records and run on a P1 database so stripping data can speed local copies up quite a lot. I keep meaning to set-up database partitioning to see it it'll help us and maybe let us drop the tier down a little bit - we find we use only ~10% of the DTUs on P1 but if we drop it down it to the next tier down is absolutely crawls.

Good idea on the ARM template. When I get time I need to move the live VM over to Server 2016 so I'll try and remember to do that at the same time. No idea how but Windows Update is royally broke on the existing 2012 one, it installs them but always fails and rolls them back on reboot and takes about 10 minutes to do so - myself and our sys admin spent ages trying to resolve it.

Just mind you don't turn into one of those awful 'paper architects' that design unworkable systems and then hand the implementation over to the poor schmucks who actually have to support the darn thing, whilst offering them precisely no tangible assistance in the process :p

I'm too hands on for that, I'd be shooting myself in the foot :p. My biggest problem is losing sight of a project once it gets too big. I've been working on an Android project and used Fernando Cejas' Architecting Android with Dagger DI and all that fancy stuff which I found great, until I came back to it two months later and forgot where things lived in the project :p. The curse of jumping between several projects I guess.
 
Windows/Linux/MacOS? Windows, at home and work. Game dev on any other platform is daft.
Desktop or laptop? Both.
Multiple monitors or one large one? Both (One wide-gamut 30" 2560x1600 plus Cintiq 13HD and a 23" 1920x1200 oriented portrait)
What type of development do you do? Game dev.
What tools, IDE's and editors do you use? Visual Studio. Eclipse. Visual Studio Code when I have to do some (yuck) JS.
What type of software development do you do? As above, game development
Professional or hobby? Both
 
Windows/Linux/MacOS? Windows
Desktop or laptop? Desktop
Multiple monitors or one large one? Multiple 30" and 27"
What type of development do you do? Web
What tools, IDE's and editors do you use? Atom / Putty
Professional or hobby? Professional
 
Windows/Linux/MacOS? Linux @ Work - MacOS/Windows @ Home
Desktop or laptop? Desktop @ Work - MacBook/Desktop @ Home
Multiple monitors or one large one? 2x24" @ Work - 1x24" @ Home (want to change this soon)
What type of development do you do? Java Enterprise / Web
What tools, IDE's and editors do you use? Intellij
Professional or hobby? Professional
 
Back
Top Bottom