Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "time zones"
-
When interviewing a dev, ask them what they think about time zones. If their answer is "fuck time zones", hire them immediately.4
-
We called it "Project Hindenburg".
A huge planning and logistics app with hundreds of screens and dozens of interwoven subfunctions, suddenly needed to be able to support multiple time zones. Our project was to retrofit every area that touched on dates or times, to allow the user to specify, and work in, any time zone.
At this point in the story I can tell whether you have had to work with time zones in code. People who haven't are butting in with something that begins, "that should be fairly simple, you just need to..." followed by some irrelevant noise that betrays their ignorance.
People who have worked with time zones are nodding in shared pain, like fellow attendees of a survivors meeting.
You see, programmers tend to think of time zones as arithmetic; in reality, they are confusing, ambiguous, chaotic, and individual. You can't translate everything into a central time zone (eg UTC) because you lose the user's intent. For example, if you schedule a meeting for 3pm and then move it to the next day, you want it at 3pm even if the clocks have changed.
Project Hindenburg ended up using the entire development staff of the company for well over a year. It smashed our release projections to rubble, made an already tangled code base completely unmaintainable, introduced mind-bending edge case bugs that reduced staff across the company to tears (literally), and led to most of the mid-level and senior developers eventually quitting (including me).
I am @fuckfuckityfuck, and that was the story of Project Hindenburg.11 -
So yesterday one of the "senior" python developers woke me up at 1 am (we work in different time zones, and he knows how many hours I'm ahead) asking why isn't his code working. The error message was:
[ERROR] Runtime.ImportModuleError: Unable to import module 'app': xxx is not installed, run `pip install xxx` Traceback (most recent call last)
I am at lose of words and patience. Not only idiots who can't google simple stuff are seniors, additionaly we went from "DevOps is a culture" straight to "hey I'm developer in my silo, if it doesn't work on my machine it's DevOps problem, plz fix".12 -
No protesting for me today. Sorry.
if anything happens today however, I will create my own Tor exit node.
And you will be among the first to know about it.
Tor will be the next uncensored web. And I will strive to protect it.
At least that's something I can do from home, regardless of time zones and timing altogether.
I feel like we can't save the internet anymore. But we can create another one.
The darkweb is waiting for you.
It's only the Tor Browser away.18 -
WHY THE FUCK DOES IT HAVE TO END?
WHY THE FUCK DOES ANYTHING HAVE TO EVER END?
When I left my previous employer, I was so connected to people there. In fact my entire direct team was just few months old.
I ended up crying like a baby on my farewell call in front of everyone. I just couldn't stop.
Definitely not the brightest or smartest people, but surely great at heart. I did hate them at times and we had our ups and downs but they made the place tolerable.
The work culture is created by colleagues at any organisation and not the leadership/management. And work culture was one of the major reasons why I stayed back for 7.25 years even when a rat was earning more than me.
I joined new organisation with a big smile on my face that, I will learn and earn more. And as I was buckling up, my lead quit.
She was one of the smartest person I met. She inspired me so fucking much. Our entire team is geographically located in multiple time zones. Still she never hesitated to jump on calls as early as 07:00 AM or as late as 12:00 AM. Yet she pinged me every time on Slack to check on me and made sure I was doing well. Kept pushing me to get enough sleep, take care and not burnout myself. Always handling her daughter while on calls with us without impacting the discussions.
She taught me like her own child. So patient with a retard like me. Gave me good feedback and insights on how can I grow as a person and what all to look for in the organisation.
She bids her final goodbye early next week and with every meeting we have, I get more emotional. Doesn't feel like we are in different continents but just in same room, talking like we have known each other for years.
And you know what, after joining this org, I came to know that they hired me for a level below what I was in previous org (because how the job titles were structured here and I don't really care for titles). The product I am working on is highly ambitious and everyone is keen to make it live.
And now everything falls on me. Kickass opportunity to get a promotion, relocation, good hike, and all that I desire. And my employer is known to be quite employee friendly to actually fullfil all my wishes.
But that's not what I want. I want my people with me. It would have been so fucking awesome if she wouldn't have quit and together we would have built the product and have had so much fun doing so.
I am sure, the reason of my death will be empathy. I am next to tears while I type this.
I suck at goodbyes. Even though, with the help of technology, people are and will be connected, but still goodbyes are the shittiest things to ever exist.11 -
I was getting a freelancer job to do some backend work for a company in India that is working for a huge company in Saudi Arabia.
The customer in india was my primary contact, I wasn't allowed to talk to the guys in Saudi Arabia. My contact, we'll call him Aman, asks if i can do frontend too. I decline. Now what follows were 4 weeks of backend work during which Aman called me 10-15 times per day via skype to ask me how I was progressing, and if "insert spec here" was already done. He even called me in the middle of the night, well aware of the different time zones.
But in the end all the work is done, Aman is happy. I request payment.
Aman: We can't pay you yet, you didn't do the frontend!
Me: I'm not doing frontend.
Aman: It's just a few simple changes and then we're done.
Me: Gnnn, fuck it, what do you need?
Aman: Our customer would like the frontend to look better.
Me: Ok, so what exactly should look better?
Aman: All of it.
Me: Do you have any specs?
Aman: No just make it look more modern.
Me: So you want me to rework the whole frontend? That's not just a few simple changes...
Aman: How long would you need?
Me: I actually don't do that kind of work.
Aman: We pay you double your hourly rate if you do this and finish it fast.
(This is were I should have just said no... but the greed...)
Me: Ok, but it will take me about 3 weeks to do that.
Aman: OK.
Me: Do you have any preferences as to how it should look?
Aman: No, just surprise us.
(After this sentence I really should have gotten the hell out of Dodge)
After working 3 weeks changing over 20.000 lines of CSS and most of the HTML I present Aman with the changes.
Aman: No our customer doesn't like the changes. Can you make a different version?
Me: What doesn't he like, any specifics, coloring, styling of lists or the buttons?
Aman: He doesn't like the whole thing. Please make us another version.
Me: Ok, you are the customer, but it would really help if you give me some pointers as to how it should look like.
Aman: Just do your best.
Me: ..., ok, that's helpful.
2 weeks later...
Aman: No our customer liked the version before better. But could you make it look more modern.
Me: *Bangs head against wall repeatedly*
Me: What do you mean by modern?
Aman: It should look more modern, as a whole.
Me: Ok, I get that, but could you give me an example?
Aman: Sends me a screenshot of the overview screen with all the elements encircled and modern written beside them.
1 week later...
Aman: The customer has decided, he likes the original version best. Can you undo all the changes?
Me: Sure but that'll take like 1 hour.
Aman: Oh by the way we were asked by accounting why the price for this project was so high?
Me: *hugh* *gnn* what?
Aman: Well at the beginning, you estimated the backend and frontend work to be done in 4 weeks.
Me: The frontend was never part of the original estimate.
Aman: Can you do anything concerning your hourly rate, so that we can get back to the original pricing.
Me: *make a mental note to never work with an intermediary company in india again and cancels the job requesting the due payment*
Luckily I got paid the full amount but not before having another 10 Skype call with Aman...17 -
Hey I got reminded of a funny story.
A friend of mine and me were in internships in the same company. The company was specialized in territory resources management (managing water for agriculture, money to build industrial zones...). He got the interesting internship (water predictory modeling) and I got... The repairs of a reference sheet manager that never happened to work. It was in C# and ASP.NET and I was in second year of CS. I expected the code to be nice and clear since it was made by a just graduated engineer with +5years of studies.
I was very wrong.
This guy may never have touched a web server in his life, used static variables to keep sessions instead of... well... sessions, did code everything in the pages event handlers (even LinQ stuff et al) and I was told to make it maintainable, efficient and functional in 2 months. There were files with +32k LoC.
After 1week of immense despair, I decided I will refactor all the code. Make nice classes, mapping layer, something close to a MVC... So I lost time and got scoled for not being able to make all the modifications as fast as in a cleanly designed code...
After 4 weeks, everything was refactored and I got to wait for the design sheets to change some crystal report views.
At this moment I began to understand were was the problem in this company.
My friend next door got asked to stop his modeling stuff for an emergency project. He had to make an XML converter for our clients to be able to send decentralized electrics bills, and if it was not completed within a week, they would no longer be able to pay until it is done.
This XML converter was a project scheduled 5 years before that. Nobody wanted to do it.
At the same time, I was waiting for the Com Department to give me the design views.
I never saw the design views. Spent one month implementing a golden ratio calculator with arbitrary precision because they ain't give me anything to do until the design were implemented.
Ended with a poor grade because "the work wasn't finished".2 -
So I was using Coffee Meet Bagel to talk to a girl who is currently travelling. We noticed that the messages were sorted out of orders with incorrect time due to the different time zone we are in.
So naturally, I sent them a big report.
Their support team replied by telling me to do the usual. Restart, update, reinstall, delete everything etc (it’s their default answer!!).
I told them I have done those.
They then rephrased my bug report and told me this is expected as the chat was between two parties with a different time so the messages are sorted out of order due to the time difference.
I guess most developer will get ticked off by that... so I sent them a few pseudo code on how chat across different time zones should have been dealt with...
Life of a developer. Debugging and coding even when on a dating app... 🤷🏽♂️11 -
I hate dealing with time Zones issues fucking hate it , everything should be utc and that's it , Dammit !3
-
My old job was great. I was writing automation software for one of the world's biggest storage deployments, and there was always a new challenge. But over time, I was asked to lend a hand with the tedious task of corresponding with procurement vendors and on-site technicians. At first it was one site, then it was two, and then it was an entire region of the US, spread across two time zones I'm not in.
I hated that work, and I found that I didn't have time anymore for software development, because of the time commitment the logistics work was. I was never hired to do logistics work, I was never trained, never qualified, and as I said, I hated it. I agreed to it to temporarily help out a weakness due to a shortage in staffing. But it never got taken off my plate, except for a short stint toward the end, just before I was placed on a PIP, because surprise surprise-- I'm bad at logistics.
About halfway through the PIP, I told my boss I wasn't doing it anymore. I said he could either put me back on software development or let me go, if ticket-monkeying and phone calls is the direction the wind is blowing for our team. I told him I had no intention of resigning, as you are not eligible for unemployment or severance if you resign, so their choice was to let me go. I'm told by people who are still there that everybody on the team is a ticket-jockey button-pusher now. Bleh.
My wife and I sold our old condo in Kansas City earlier in the summer, so we had about a year's worth of cushion, which was why I was willing to be let go. I was profoundly unhappy in my work, and it was bleeding through to my relationship with my wife and kids. So I took advantage of the time between jobs by spending more time with my family and just generally becoming a happier person again.
Meanwhile, I was in no desperate hurry to find a new job, so I got on linkedin, and had no more than two irons in the fire at a time. After just over two months I got an offer for a better job than before, which I accepted. There wasn't anything remarkable about that process though-- it's just something I've gone through recently.8 -
I've been a programmer for almost 19 years but I actually think the best code I've ever written is something that while it provides value to other people I'm the only one who actually uses it. In the company where I work we have major events that have to be supported by a number of different teams across about 5 time zones and each engineer has a limited set of roles that they can perform during the event. Anyway it was painful just watching people trying to create a schedule so I wrote something with Linear Programming to automatically generate the schedule. It ensures that people don't work for longer than 4 hours in a row, don't work from more than 8 hours from the first hour to the last hour on call, get 12 hours rest between engagements and the work load is evenly distributed across the team. Creating conditions in Linear Programming is weird, imagine trying to turn a series of linear equations into boolean logic, it can be done and once you can wrap your head around it it's really fun. It was my first time writing anything in it and I don't see it coming up a lot in my career. My favourite part of this project is that the end result was that engineers were less exhausted. I really hope that doesn't remain the best code I ever wrote, I don't think it will but it will require a conscious intention.2
-
So my country's president just decided that Turkey is too cool to set clocks back for an hour and it fucked all of my device's times up. And I'm not even sure how to convert time zones anymore.. And some devices (un) update time back to summer time so logs and notifications go crazy.
This is just a stupid idea that doesn't make the single bit of sense, are they that unoccupied to change time on their whim ?! You are the government first find a fucking proper solution for all the immigrants from neighboring countries and our unbalanced ass economy.. I'm so fucking pissed this isn't the first time our president plays with the country like this.
Uugh I just want to renounce my citizenship and reside somewhere else that isn't as fucked up as Turkey.. I'm sorry my ancestors that shed blood for this country. It's crumbling because of ignorant masses that follow a dictator blindly.1 -
I need some advice here... This will be a long one, please bear with me.
First, some background:
I'm a senior level developer working in a company that primarily doesn't produce software like most fast paced companies. Lots of legacy code, old processes, etc. It's very slow and bureaucratic to say the least, and much of the management and lead engineering talent subscribes to the very old school way of managing projects (commit up front, fixed budget, deliver or else...), but they let us use agile to run our team, so long as we meet our commitments (!!). We are also largely populated by people who aren't really software engineers but who do software work, so being one myself I'm actually a fish out of water... Our lead engineer is one of these people who doesn't understand software engineering and is very types when it comes to managing a project.
That being said, we have this project we've been working for a while and we've been churning on it for the better part of two years - with multiple changes in mediocre contribution to development along the way (mainly due to development talent being hard to secure from other projects). The application hasn't really been given the chance to have its core architecture developed to be really robust and elegant, in favor of "just making things work" in order to satisfy fake deliverables to give the customer.
This has led us to have to settle for a rickety architecture and sloppy technical debt that we can't take the time to properly fix because it doesn't (in the mind of the lead engineer - who isn't a software engineer mind you) deliver visible value. He's constantly changing his mind on what he wants to see working and functional, he zones out during sprint planning, tries to work stories not on the sprint backlog on the side, and doesn't let our product owner do her job. He's holding us to commitments we made in January and he's not listening when the team says we don't think we can deliver on what's left by the end of the year. He thinks it's reasonable to expect us to deliver and he's brushing us off.
We have a functional product now, but it's not very useful yet and still has some usability issues. It's still missing features, which we're being put under pressure to get implemented (even half-assed) by the end of the year.
TL;DR
Should I stand up for what I know is the right way to write software and push for something more stable sometime next year or settle for a "patch job" that we *might* deliver that will most definitely be buggy and be harder to maintain going forward? I feel like I'm fighting an uphill battle in trying to write good quality code in lieu of faster results and I just can't get behind settling for crap just because.9 -
fuck time zones and time changes, why the fuck we don’t have one time on the planet and one date that is just day.
No month, no years - all the complexity would be gone, day wouldn’t have 24 hours but it would be something more precise, there won’t be a second
time that earth goes around sun is
365,25964 days
31558432896 milliseconds
we should start count time differently so it’s not relative in space time continuum, what should be relative is the mass37 -
dev, ~boring
This is either a shower thought or a sober weed thought, not really sure which, but I've given some serious consideration to "team composition" and "working condition" as a facet of employment, particularly in regard to how they translate into hiring decisions and team composition.
I've put together a number of teams over the years, and in almost every case I've had to abide by an assemblage of pre-defined contexts that dictated the terms of the team working arrangement:
1. a team structure dictated to me
2. a working temporality scheme dictated to me
3. a geographic region in which I was allowed to hire
4. a headcount, position tuple I was required to abide by
I've come to regard these structures as weaknesses. It's a bit like the project management triangle in which you choose 1-2 from a list of inadequate options. Sometimes this is grounded in business reality, but more often than not it's because the people surrounding the decisions thrive on risk mitigation frameworks that become trickle down failure as they impose themselves on all aspects of the business regardless of compatibility.
At the moment, I'm in another startup that I have significantly more control over and again have found my partners discussing the imposition of structure and framework around how, where, why, who and what work people do before contact with any action. My mind is screaming at me to pull the cord, as much as I hate the expression. This stems from a single thought:
"Hierarchy and structure should arise from an understanding of a problem domain"
As engineers we develop processes based on logic; it's our job, it's what we do. Logic operates on data derived from from experiments, so in the absence of the real we perform thought experiments that attempt to reveal some fundamental fact we can use to make a determination.
In this instance we can ask ourselves the question, "what works?" The question can have a number contexts: people, effort required, time, pay, need, skills, regulation, schedule. These things in isolation all have a relative importance ( a weight ), and they can relatively expose limits of mutual exclusivity (pay > budget, skills < need, schedule < (people * time/effort)). The pre-imposed frameworks in that light are just generic attempts to abstract away those concerns based on pre-existing knowledge. There's a chance they're fine, and just generally misunderstood or misapplied; there's also a chance they're insufficient in the face of change.
Fictional entities like the "A Team," comprise a group of humans whose skills are mutually compatible, and achieve synergy by random chance. Since real life doesn't work on movie/comic book logic, it's easy to dismiss the seed of possibility there, that an organic structure can naturally evolve to function beyond its basic parts due to a natural compatibility that wasn't necessarily statistically quantifiable (par-entropic).
I'm definitely not proposing that, nor do I subscribe to the 10x ninja founders are ideal theory. Moreso, this line of reasoning leads me to the thought that team composition can be grown organically based on an acceptance of a few observed truths about shipping products:
1. demand is constant
2. skills can either be bought or developed
3. the requirement for skills grows linearly
4. hierarchy limits the potential for flexibility
5. a team's technically proficiency over time should lead to a non-linear relationship relationship between headcount and growth
Given that, I can devise a heuristic, organic framework for growing a team:
- Don't impose reporting structure before it has value (you don't have to flatten a hierarchy that doesn't exist)
- crush silos before they arise
- Identify needed skills based on objectives
- base salary projections on need, not available capital
- Hire to fill skills gap, be open to training since you have to pay for it either way
- Timelines should always account for skills gap and training efforts
- Assume churn will happen based on team dynamics
- Where someone is doesn't matter so long as it's legal. Time zones are only a problem if you make them one.
- Understand that the needs of a team are relative to a given project, so cookie cutter team composition and project management won't work in software
- Accept that failure is always a risk
- operate with the assumption that teams that are skilled, empowered and motivated are more likely to succeed.
- Culture fit is a per team thing, if the team hates each other they won't work well no matter how much time and money you throw at it
Last thing isn't derived from the train of thought, just things I feel are true:
- Training and headcount is an investment that grows linearly over time, but can have exponential value. Retain people, not services.
- "you build it, you run it" will result in happier customers, faster pivoting. Don't adopt an application maintenance strategy
/rant