AboutDepressed developer, living life, drinking coffee, writing code.
SkillsHTML, CSS, Angular, JS, Node, SQL, Java, Android, C++, React
Joined devRant on 5/27/2016
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
I'd say Uncle Bob, since I ended up flying through his Clean Code book in order to get a placement job, but in reality, it's probably only partially that.
Most of my influence probably comes from the guy I shadowed under when I was on placement. He taught me way more than he probably ever realises.1
First rant in a while, been up to my eyeballs in uni work; still am.
I have a week to finish my concurrent programming assignment, and I'm stressing a little.
On one hand, I have to figure out a way to make a resizable lock-free hashmap.
On the other, essentially implement snapshot isolation for a sql database.
It's going to take a couple of long nights I suspect.3
At some arbitrary future point, when things progress further into the realm of unreasonable demands from software engineers as a "regular day at the office", a huge inquiry into the working conditions and hours of devs will take place, and a major rethink into how software projects are handled as a whole, because the current methodologies, mixed with unshifting deadlines, clients and other worldly bullshit is unsustainable given the current industry climate.1
Worked from 09:00-00.00+ every day for 6 days straight, then for about 4 hours that Sunday (including over public holidays which were that week).
Clients agreed release date based on some interviews with publications, which meant the previous target date was moved up 2 weeks as they were pushing marketing for this new date.
Aside from having to implement a new 3rd party API which touched ~35% of the system there was a lot more that needed to be finished before release (including an entire user flow that was at the mercy of a 3rd party).
Safe to say I took a day or two off the week after.
Day 2 of being a free man.
Day 2 of old company contacting me about unnecessary things that they themselves said isn't really important.
Why contact me then? I don't want to have to start blocking numbers, but it might be happening if the trend keeps up.3
Today is the last day of my placement.
Over the past year, I began working on small front end bugs, to becoming the sole front end developer on the project, to being full stack.
Back in July, I and the other dev on the project released the app into the wild. It now is reaching 100 users.
The app has a lot of external dependencies (10+), one of which could cripple it entirely should it cut us off (which they can do at any time, it's a free API).
I was given, effectively a week and a two days to do a complete handover/transfer of knowledge to the placement student that will be taking my place. They hadn't touched front end (like me) when starting, but also had no experience in node/js.
As of this, I can't leave feeling like I've fully completed my work, and I feel bad leaving the new guy with these clients. Undoubtedly I'll be doing some off-the-record help.
Any time I touch the front end of the admin tool for a client I cringe at angularjs. yes, not angular 2.
Mix in datatables (yup, the jQuery one) you have a real recipe there.
The icing on this app release cake was piped this morning.
The clients released the app into the wild, without our knowledge, despite some rather large, glaring issues that are present.
As to why they thought it was a good idea, who knows?1
This is exactly why I didn't want to give the client my mobile number.
It's a Sunday morning, and he's messaged me asking for me to do something today.
Hopefully by boss is sympathetic with the week I've had and lets me ignore it.2
Here we go again.
It's 21.15, on my day off. I've been working all day. Client isn't responding, but we're supposed to submit apps for review again.
This is what my life has become.3
So here it is. Apple release, second round.
This time, uploads to AppStoreConnect took 3 hours and 40 minutes. Submission of the app was at 0.04, just after the planned launch day. Android submission tomorrow.
Tomorrow, and Friday are public holidays.
I'll have to work those, at best being able to not work on the weekend. The client has already told me he's calling me tomorrow morning to talk about things.
I don't want praise, but I'd like him to respect that while I may just be a lowly developer, I would like to have a life.
When are the happy times coming?
So as it turns out, the redemption of client money has failed.
About £4k just sitting there.
I was doing testing earlier, and accidentally left the endpoint at sandbox, all of the payments failed, so we have to mock the payment in now, once we get internet back.1
So as expected, due to the rush of the submission on Friday, the app was rejected.
I'm fairly certain they never got past the first screen or two.
We have some things to fix, and some things to tackle properly now, which is quite nice, however the current main issue numero uno is that an Apple developer account can take up to 10 days to be created, and Go Live is next Monday.
I wonder who will get the blame for not taking on the "Investigate the iTunes release process" ticket that was in Jira, assigned to someone for ~4 months.
So, against like 90% of all odds, we (I) managed to submit the application to Apple for review at the ripe old time of 21.27 last night.
Events of the day included:
- fighting with appstoreconnect (turns out they just return a 500 if you haven't paid your Apple developer membership)
- removing FAQs altogether because "it would have taken too long to make those today" (ticket in Jira for this for ~4 months)
- our app was targeting both iPad and iPhone, so we had to rebuild the app for iPhone only because "we don't have app store images for iPad".
On the bright side, that leaves 3 days next week to get the rest of the backend finished for actual go live on Monday 16th, so long as Apple don't reject the app.
Side note: adding the target-device preference affected the android build somehow? despite the preference being iOS only, and wrapped in a platform="iOS" section.
So, if anyone remembers my previous rants (or otherwise), the app I'm working on is finally going to release. We release in about a week and a half, despite having at minimum 10 days work + testing (not including all testing of aws migration that we still haven't fully completed) to even have an MVP.
This is all because the clients have been pushing a release date (16th July) in marketing. Oh, and the icing on the cake? Our boss agreed for a submission to app stores (back-end pending) on Friday (yes, in like 3 days) instead of the agreed next Wednesday date.
Side note: the client is coming over to our office for Thursday and Friday. Why? We are unsure.
I would like to say I'm able to by taking decent breaks, and by seeing friends after work and on weekends, but by the time I leave work I usually am done with interacting with people, outside of perhaps messaging.
So in that sense, Discord had been my saviour in that I can stay connected to people, but in a way that doesn't bring other aspects of social media into it.
This AWS migration is a pain.
Neither of us know anything about networking, and we can't get any help with it.
Talk about bashing your head against a wall.
Take a break for little while, watch some shows, play some video games, learn something new, before heading back to the grind.
I would have liked to complete a task this week, however the one thing I've been working on has it's requirements changed every time I finish.
I get that things change, but all of this extra logic is far too complex for the issue at hand, and I don't have time to do other assigned things due to how laborious and intensive testing for this part of the application is.
We had almost finished integration of debit card depositing for our application.
Yesterday, the clients told us they signed a contract with a new provider.
This is after telling us they'd signed the contract with the previous provider, but as it turns out, that's a lie.
So we have to scrap the entirety of the last 8 days work because the new provider is a shareholder in the client's company now.
The new provider doesn't have an SDK for our language, and what they do have is XML.
It's time to parse, I guess.
Music tends to get me through the day of work. To build up enough energy to do it all again the next day, I usually stick to something like video games or drawing. It's not a very exciting routine, but it keeps me sane (enough).
If any of you have been following my last few rants, you'll know I've been working on a project with a particularly difficult client, trying to meet wholly unrealistic deadlines with only one other developer.
The situation has reached the climax. The client had a call with our project manager and boss on Monday to discuss things. Despite them still not having paid a single bill since October, they've demanded the release date be moved to the 6th April. Apparently we'd agreed to release on this date, despite making no such promises, the (optimistic) deadline we were working towards has always been, since it was set about 2 weeks ago, the 16th April.
Apparently AWS migration won't take as long as we think it will, because the designers that do the CSS for this project say so, despite knowing nothing about the architecture of the requirements of the system once live (like if backups are required and what of).
The bottom line is that client is ending development with us the day after the project goes live to give it to their own in-house team. If they want us to work more after the date, they have to buy blocks of days.
To make things better, a large part of new functionality relies on an external API we can't even begin to do learning tests with, let alone integrate due to back-office errors on their end. They've had since Friday to give us our token, yet here we are.
Something tells me my holidays booked for for the first week of April are going by the wayside.4
When I got my first few programs running - things like "Hello World" and simple console applications.
More recently (it still happens, which is a good thing) being thrilled when I got my discord bot running, and then again when I got music playing via YouTube streaming working.
That feeling is the kinda stuff that keeps me programming.
Dealing with clients is probably the biggest personal challenge. I'm not much of a people person, and I find it hard to converse with friends and people I've known for years, let alone clients who are looking for answers for why things aren't working, and wanting you to explain exactly (but in simple terms) why a thing that seems simple is so complicated.
Another challenge, which is somewhat related is expressing myself. This again, stems from not being super great or comfortable in conversations, but as a dev, even among other devs, your opinion on things gets asked a lot. For someone who was used to sticking with the status quo and mostly agreeing with things, stuff like peer code reviews, or giving pointers on how to implement something is a big challenge (but I'm improving)2
Our client supposedly managed our Jira board yesterday in preparation for the release to live.
It was a mess. We have two people on this project - so our effective maximum workload is 10 days worth of tickets.
The current sprint plus the next have over 60 tickets in them, with the other "light" sprints having about 15 days worth in them.
I know you shouldn't get caught up over estimates too much, but they're in place for a reason.
The client really needs a reality check, and to be reasonable. When looking from a macro perspective he loses sight of all reason and scope, trying to grossly overfill what the two of us can handle.
A junior and student placement dev can only do so much.
I guess time will tell how realistic 16th April is..
Begin teaching fundamentals much earlier. For me, I learnt Java classes and some fundamentals for it, but more basic programming skills went by the wayside until 2nd year of Uni.
The course we did on logic was good both years, but stuff like data structures and algorithms (sorting, linked lists etc) should be taught first.
Something else that might be useful is maybe not learning Java initially. What annoyed me with that (and I'm sure confused some people) was the amount of
- "Hey what does that mean?"
- "Uhh, don't worry about it yet"
which while it might encourage you to go read about it, is more likely to encourage the opposite, and tend to ask less questions, even when switching language.
I can't say for other universities, but I think a larger focus should be on gaining skills in the field, rather than becoming employable through doing employability things.
I know plenty of second year students that still couldn't have completed our first semester first year assignment, which was essentially some object manipulation wrapped up in a few classes and a basic console I/O.2
I usually work in a two person team on a hybrid application we are developing, using AngularJS and node.
This normally works okay, because he handles the back end (he's been on the project since January last year, I joined in August as a placement student), and I handle the front end.
However, due to Christmas holidays and such, he's ended up taking an entire month off, and won't be back until the end of January.
I've dabbled in back end before, some routes and that for SQL queries, but nothing serious.
Last Tuesday our core service for the application that needs to be updated in real time broke and pissed off the API provider because we were hammering them with requests.
My first day on back end and this happened. I didn't really know what to do, and had to call my teammate to ask what to do. I essentially just restarted things, and left them as is, until I could find a solution.
From there, I had to mock the operation of the service (which is a complex enough beast) to figure out the problem, and find a fix. Our app more or less hinges on this service, so if it messes up, it's the end times.
All of this while flying on what I've interpreted because the guy that's on holidays was the only guy that knows more about this project than I do.
To make things worse, the clients are being very particular because they're waiting on investments and don't have money to pay our company. So, if they're paying for 5 days work, they're going to put in 5 days of project development. The problem is that their interpretation of 5 days of project development has not changed from when there were two people on this project.
There are 40 tickets in this sprint (ends Friday) and 35 of them are assigned to me. Granted, not all of those take a day to do, but estimates don't mean anything, I guess.
I've been told by the client today to turn their application's barebones support messaging into, and quote "WhatsApp".