AboutSoftware engineer with 15 years experience. Mostly a backend dev. Currently code in Golang
Skillsweb services, databases, backend, performance engineering, bigdata, and cloud automation
Joined devRant on 5/19/2018
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
I finally bit the bullet and got a 2018 macbook pro i7 with 1 terabyte ssd. I've been needing a personal laptop for development for awhile. I thought about going full Linux but it's tough finding Linux laptops that support thunderbolt 3 charging.
I tried to make Windows and WLS work. But it's a pain getting my Golang, GCP, and Kubernetes workflow setup on it. I keep having to jump command prompts and it annoys the shit out of me. Going multi monitor helps a lot, but I like to be at coffee shops and code.
I feel sick a out giving Apple more money especially $3,000. But it was money well spent. My workflow is seamless and unlike on my Windows laptop I dont spend 3 to 4 days just setting up my environment.15
I have an interview with Google in less than 3 hours. It really sucks because I'm totally not motivated to do it. I didn't study much for the interview, because I recently switched companies and had a lengthy job search. And I finally landed at a decent job that I'm having a great time working for. And to be totally honest, I just have interview fatigue. It started in late May and ended in August. Countless interviews asking the same damn questions just gets exhausting. Too "homework assignments" in addition to my "day job". I'm just burned out on interview hence I just haven't had it in me to really study for a Google interview.5
When it comes to working on side projects, how do you usually pace yourself? I always find it hard to do side projects. Do you just spend like an hour every afternoon? I feel I rarely do side work mostly because I'm afraid I'm going to sink like 5 hours in 1 setting. To people who do significant side work, how do you balance that with your day job?2
I guess these days I work with Golang, gRPC, and Kubernetes. I guess that's a dev stack. Or turning into one at the very least. The only thing that annoys me about this stack, is how different deployments for kubernetes are different for CSPs. The fact that setting up a kubernetes/Golang dev environment is take a lot of time and effort. And gRPC can be a pain in the ass to work with as well. Since it's fairly new in large scale enterprise use, finding best practices can be pretty hard, and everything is "feet in the fire" and "trial by error" when dealing with gRPC.
And Golang channels can get very hairy and complicated really really fast. As well as the context package in Golang. And Golang drama with package managers. I wish they would just settle on GoDeps or vgo and call it a day.
And for the love of God, ADD FUCKING GENERICS! Go code can be needlessly long and wordy. The alternative "struct function members" can be pretty clunky at times.
I like how hiring managers want everyone to have 5 years of Golang experience. I've been writing go since 2014. There were hardly any Golang jobs in the market 4 years ago. Where would be getting this enterprise Golang experience from? The only big companies that had full systems written in Go 4 years ago was Google and DropBox.
My year of extensive Golang isnt good enough. I feel year after year manager's expectations move further and further from reality.1
I'm not going to lie, the surge of bootcamps really irks me. Not because I'm afraid of competition, or that I'm an elitest. Mainly because a lot of people who attend these bootcamps have no real interest in software engineering. I sometimes attend a meetup, and it's a beginner meetup. I try to help out. And a lot of people clearly have no patience for learning software engineering. I try to be encouraging, but sometimes I just want to be dick and tell them "Why the hell do you want to be a dev, if you're not interested in how computers work".
I'm an 100% myself taught developer. Granted I'm 38 and taught myself programming at 14. But it came out of an earnest desire and love for technology in general. So I never shyed away from learning? C and assembler? Bring it on. Theoretical computer science? I can get with that. For me I loved computer so much, that I was willing to learn about anything in the realm of computing.
This is what annoys me with the adult bootcamp crowd. I feel they're only willing to learn as long as it's easy. If something gets complicated or complex, then they check out. And I a lot of their questions is "tell me how to do this/that". But they don't know why they would do it.
To me it feels like they're trying to fast track themselves to a dev job. Yet you would think if they're trying to do this all professionally, they would be open to learning as much as possible, and not closing themselves off.
My semi-friend who runs the meetup is trying to start a bootcamp himself. So I try I severely hold my tongue when I attend those meetups. And I want to be supportive. I certainly don't want to be the reason why people are turned off by programming. But at the same time, I hate how people are abusing this profession because they think it's fast money and an easy way to earn 6 figure salaries.5
I finally turned my MSI laptop into a fully functioning dev machine. I just activated Windows Linux Subsystem, and got XCFE4 to run, then installed some Jetbrain IDEs ontop of it. And I'm straight up in business. Now I don't need to go out and buy the new shitty Macbook pros for $3k11
If you don't have some knowledge of tuning a database, tuning your runtime, handling issues with networks and latency in your code, dealing with issues with message queues, writing abstraction layers for the database, etc. you aren't a backend developer, sorry to say.
Being able to reason about a mean stack running on digital ocean doesn't not make you proficient in the backend.3
I probably dont balance it well. I spend majority of my day either reading code, reading about code, or writing it. I would say my balance comes on the weekends. I hang out with my girl more and I not in front of the computer as much. But even on the weekends I sneak in a few hours of code. My leisure time is literally sitting at a starbucks with my favorite text editor listening to a playlist and coding. That's like total zen for me.
To people who may not be aware, Steve Ballmer is no longer the CEO of Microsoft. They actually dont suck anymore.6
The year was 2006. During the first half of my career, I use to work in the NOC. This was before I made my transition to software engineer. I worked on the third shift for a bank services company. The company was on a down turn. Just years earlier they just went public, and secured a deal with a huge well known bank. Eventually they entered a really bad contract with the bank and was put into a deal they couldn't deliver on. The partnership collapse and their stock plummeted. The CEO was dismissed, and a new CEO came in who wanted to "clean things up".
Anyway I entered the company about a year after this whole thing went down. The NOC was a good stepping stone for my career. They let me work as many hours as I liked. And I took advantage of it, clocking in 80 hours a week on average. They gave me the nick name "Iron Man".
Things started to turn around for the company when we were able to secure a support contract with a huge bank in the Alabama area. As the NOC we were told to handle the migration and facilitate the onboarding.
The onboarding was a mess with terrible instructions that didn't work. A bunch of software packages that crashed. And the network engineers were tips off, as they tunnel between our network and the banks was too narrow, creating an unstable connection between us and them. Oh, and there were all sorts of database corruption issues.
There was also another bank that was using an old version of our software. The sells team had been trying to get them off our old software for over a year. They refuse to move. This bank was the last one using this version, and our organization wanted to completely cut support.
One of the issue we would have is that they had an overnight batch job that had an ETA to be done by 7 AM. The job would often get stuck because this version of the software didn't know how to fail when it was caught in an undesired state. So the job hung, and since the job didn't have logging, no one could tell if it failed unless the logs stopped moving for an hour. It was a heavily manually process that was annoying to deal with. So we would kill the JVM to "speed" the job up. One day I killed the JVM but the job was still late. They told me that they appreciated the effort, but that my job was only to report the problem and not fix it.
This got me caught up in a major scandal. Basically they wanted the job to always have issues everyday. Since this was critical for them, all we needed to do was keep reporting it, and then eventually this would cause the client to have to upgrade to our new software. It was our sales team trying to play dirty. It immediately made me a menace in the company.
For the next 6 months I was constantly harassed and bullied by management. My work was nitpicked. They asked me to come into work nearly everyday, and there was a point I worked 7 days with no off days. They were trying to run me so dry that I would quit. But I never did.
On my last day at the company, I was on a critical call with a customer, and my supervisor was also on the line. My supervisor made a request that made no sense, and was impossible. I told her it wasn't possible. She then scalded me on the call in front of customers. She said "I'm your supervisor, you're just a NOC technician, you do what I say and don't talk back". It was embarrassing to be reprimanded on a call with customers. I never quite recovered from that. I could fill myself steaming with anger. It was one of the first times in my adult life that I felt I really wanted to be violent towards someone. It was such a negative feeling I quit that day at the end of my shift with no job lined up.
I walked away from the job feeling very uncertain about my future, but VERY relieved. I paid the price, basically unable to find a job until a year and a half later. And even was forced to move back in with my mother. After I left, the company still gave my a severance. Probably because of the supervisor's unprofessional conduct in front of customers, and the company probably needed to save face. The 2008 crash kept me out of work until 2009. It did give me time to work on myself, and I swore to never let a job stress me out to that degree. That job was also my last NOC job and the last job where did shift work. My next few jobs was Application Support and I eventually moved into development full time, which is what I always wanted to do.
Anyway sorry if it's a bit long, but that's my burnout story.
What is the best laptop for development?
Especially if you work a lot with virtualization, containers, the cloud, and a lot of systems programming. And you like to simulate a lot of distributed environments on locally?3