It is time for a reboot

I have not been actively writing content for this particular blog.

Over the past few days, I came to the realisation that my perspective related to writing and approach to my personal brand in general have changed. Now, I believe I should probably have multiple specialised blogs instead of having one blog for everything.

Yes, it will take more effort for me to maintain and write content for multiple blogs. But, the advantage is that I can focus better on crafting contents that are more suitable for a particular blog and better serve the needs of my readers.

Therefore, I shall spend the next few days cleaning up this blog. My intention for this blog going forward is that it shall contain only contents related to writing, fiction and poems. Mental health related stories will go to their respective blog, one that I will launch soon. The same thing happened to articles related to environment and technology. I have created blogs for those topics.

Reflecting on my first pair programming interview

For those who don’t know what is pair programming, it is basically a software development technique where two developers/software engineers work together on the same machine. At any one time, one would be doing the actual programming and the other would be reviewing the written code. In both cases, communication between the two developers/engineers is very important.

Pair programming is usually done at some companies who want shipped codes or software that has fewer defects. After all, defects on shipped code could mean higher cost in terms of quality checks and troubleshooting.

And for some companies pair programming is also done as one of the interview stages. One of the purpose is the interviewer to figure out if you are suitable for the position. Interviewees are judged on their soft skills such as communication, ability to problem solve, plan and think critically, and technical capabilities. Another purpose would be to determine if the interviewee is able to work with other developers in the company.

Pair programming interviews are also there for the interviewees to understand who they are working with and how they may have to work in the company. It’s a good chance to find out if he or she is suitable for the applied role.

For me, despite working as a software engineer for five years now, I have never done pair programming. Most of the time, I work alone or in a team. And when it comes to interviews, the toughest kind I get are those where you have to do technical quizzes, solve programming challenges or do whiteboard problem solving.

So having to do a pair programming interview for the first time is both exciting and scary. And sad to say, I didn’t pass the interview.

Towards the end of the interview, the interviewer gave some really honest and constructive feedbacks that are helpful for my personal growth. I thank him for that and for the time he spent on me.

At the same time, I feel really shitty about the interview failure, which is expected. But my mood is now about to fall off the cliff. For some context, I have been struggling with burnout for months, depression and forms of anxiety for the last four. My mood was only just stabilising after three weeks of anti-depressants.

Don’t get me wrong, I’m not looking for any sympathy nor trying to guilt trip anyone. I’m just sharing what I am feeling and have been through.

So what went wrong and could be better?

Low to average technical skills

My JavaScript fundamentals are weak. I was having issues with lambda and anonymous functions as well as some other fundamentals like passing of data. It prevented me from figuring out the solutions to some of the problems I encountered. The last time I did any decent amount of JavaScript was two years ago and even then, I only used the surface of what the language is capable of.

Making matters worse, I had to work with ReactJS, which is a JavaScript framework for developing UI. I also have to work with Redux, which is another JavaScript framework for state management. And it was no fault of the interviewer. I indicated that I want to do frontend development with ReactJS during the previous interview with one of the company’s employee.

At the end, a couple of hours spent every night for the past four days to learn ReactJS and Redux simply isn’t going to cut it.

But it doesn’t change anything. If I still want to be a frontend developer and be good with ReactJS/Redux, I have to keep learning and practice. And develop some apps using those frameworks along the way.

Failure to comprehend actual requirements

This is really on me. I was given the chance to read about the requirements and end goal of the exercise. The key focus areas were listed down in the document. But for some reason, I didn’t realise that I hadn’t really read and understand the whole thing before jumping in to come up with a solution. I could only attribute it to stress and anxiety.

Due to that, the solution I came up with was half-baked and caused major problems further down the development process.

Therefore, I really have to work on improving my resilience to stress and directing the brain to focus better. This is the only way for me to be able to understand future situations more clearly and come up with a better solution.

Overengineering

In software development, there are three principles that all developers should follow for higher productivity. They are:

  1. DRY => “Don’t repeat yourself”
  2. YAGNI => “You aren’t going to need it”
  3. KISS => “Keep it stupid simple or “keep it simple, stupid”

And because of my failure to comprehend the actual problem, my half-baked solutions caused me to violate principle 2 and 3. There were additional React components that I created that weren’t necessary and made the codebase more complex.

I’ll admit that I violated those two principles a lot of time during my five years of software development experience. It is because I like to provision for future uses. Breaking those principles served me well so far because I have experienced scope creep that requires components or functionalities that I thought of in advance and had implemented. That means, I didn’t need to spend extra effort to develop and refactor my code later.

Going forward, I really need to train myself on going for the simplest and fastest solution to any problem.

Took too long and prevented successful gauge of my skills

Because of overengineering, it took me more than twenty minutes to develop the application foundation. After which, I had to redo some of my codes in order to support certain functionalities that I have overlooked because of my failure to read and comprehend the requirements. More time was wasted.

Therefore, I was unable to implement the other features of the application that would have allowed the interviewer to determine my understanding of ReactJS and Redux.

Final thoughts

Self-awareness is actually a very important skill to have. With it, you might be able to determine if you are suitable for a given role or job.

In my case, the combination of my highly-sensitive nature, under-developed stress resilience, highly self-critical and low self-esteem meant that I hadn’t really been able to function at the level required for a so-called experienced software engineer who’s been at this job for at least five years. I’m simply not ready yet to take on roles that require me to be a consultant or a quick thinker.

The other thing that I figured out was that the number of years of experience isn’t really a good gauge of your skills. The interviewer did point out that despite my years of experience, I still wasn’t able to grasp ReactJS even after 24 hours (spread over four days) of reading and practice. He implied that he was able to pick up the framework within two days instead of four.

With that, it could mean that either my fundamentals are very weak or that I’m simply not smart enough to pick up something fast. Or maybe both. For the former, I could work on it by going to read and study the fundamentals again. For the latter, well, I can only work harder than most to achieve the same skill level.

Either way, I’m just glad that I’ve been through it and knows what’s out there. There are valuable lessons to be learnt here, which is all that matters.

Image Downsizer

Let’s say you have images that you wish to load into your application. However, instead of having the user downscale or downsize those images first, your application could do it for them.

Below is a piece of code I wrote in C# that will do just that by brute forcing. Admittedly, it’s not the best solution. An AI probably could do it better but in many cases, the following works pretty well.

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace ImageTuner
{
    class Program
    {
        static void Main(string[] args)
        {
            string originalImageFile = "<image image file>.jpg";
            string scaledImageFile = "<downsized image file>.jpg";
            bool imageMatchCriterion = false;
            bool imageStillTooBig = false;

            float resolutionScaleFactor = 0.95f;
            long jpegQualityLevel = 100L;

            using (var originalImage = new Bitmap(originalImageFile))
            {
                while (!imageMatchCriterion)
                {
                    Console.WriteLine("Image doesn't match size criterion. Resizing.");
                    int scaledHeight = (int)(originalImage.Height * resolutionScaleFactor);
                    int scaledWidth = (int)(originalImage.Width * resolutionScaleFactor);

                    using (var toCompress = new Bitmap(originalImage, new Size(height: scaledHeight, width: scaledWidth)))
                    {
                        var jpgEncoder = GetEncoder(ImageFormat.Jpeg);
                        var myEncoder = Encoder.Quality;
                        var myEncoderParameters = new EncoderParameters(1);

                        var myEncoderParameter = new EncoderParameter(myEncoder, jpegQualityLevel);
                        myEncoderParameters.Param[0] = myEncoderParameter;

                        using (var tempStream = new MemoryStream())
                        {
                            //Save the image byte to memory first.
                            toCompress.Save(tempStream, jpgEncoder, myEncoderParameters);
                            byte[] imageSize = tempStream.ToArray();
                            //Check the image size in memory. If it's too big, continue to loop.
                            if (imageSize.Length <= 512000)
                            {
                                imageMatchCriterion = true;
                                using (var saveStream = new FileStream(scaledImageFile, FileMode.Create))
                                {
                                    toCompress.Save(saveStream, jpgEncoder, myEncoderParameters);
                                }
                            }
                            else
                            {
                                if (resolutionScaleFactor > 0.60f)
                                {
                                    //Reduce the resolution of the image by 10 percent each time.
                                    resolutionScaleFactor -= 0.10f;
                                }
                                else
                                {
                                    //When the resolution scaling already reach 60%, time to look at reducing the quality level by 5 each time.
                                    if (jpegQualityLevel > 50)
                                    {
                                        jpegQualityLevel -= 5L;
                                    }
                                    else
                                    {
                                        //Cannot drop the image quality below 50 percent. Once that happen, the image is almost unusable.
                                        imageStillTooBig = true;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            if (imageStillTooBig)
            {
                Console.WriteLine("Image resizing failed.");
            }
            else
            {
                Console.WriteLine("Image resizing completed.");
            }
            

        }

        private static ImageCodecInfo GetEncoder(ImageFormat format)
        {
            ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
            foreach (ImageCodecInfo codec in codecs)
            {
                if (codec.FormatID == format.Guid)
                {
                    return codec;
                }
            }
            return null;
        }
    }
}


Why writing longhand with pen and paper could be a good thing?

How many of you write your content using pen and paper before actually getting it onto other platforms for publishing?

If you do write using pen and paper, it’s great and would love to hear your thoughts about it.

For most of us, we’d probably write on computers. I write predominantly on computers too. It’s just a much more powerful tool, more convenient, and probably could write much faster.

However, due to the nature of my work, technology burnout is inevitable. For several days during this week, I couldn’t bring myself to use a computer or even my phone to write anything. Yet, there’s a book that need writing.

This was how the decision to reintroduce pen and paper into my writing life came about. I got a lecture pad and a black ballpoint pen. Then I got down to writing.

The experience was definitely painful at first because it’s been a while since I wrote longhand using pen and paper. After finding my handwriting in a total mess and my hand aching badly, I decided to use the pen correctly and even went to google for the right way to hold the pen or pencil for that matter. Then it was time to put it into practice.

I would say there were definitely some good and bad that came out of this process.

For me, it has been therapeutic. The chance to get away from technology is just great for my mental health.

Further more, I could focus better on my writing because there’s no internet involved. No Netflix. No music. No internet browser. If you put your technological devices out of reach, you have no choice but focus on the act of writing and the story you want to tell.

The second advantage come in the form of deliberate writing. Because writing on paper meant it’s nearly impossible to change what you wrote. Unless you want to leave behind lines after lines of strikethroughs or whiteouts, every word you want to put down on paper have to be the right word. This slows down your writing and forces you to think. This has the added advantage of allowing you to identify if there’s loopholes or problems with your content. This is especially helpful for me as a pantser because I won’t run astray with my writing and create plot holes.

The third advantage was that it’s just more natural. You can do whatever you want. Scribble along the margin of the page. Skip lines. Doodle. The freedom meant you could explore your ideas and thoughts in a more natural and faster way rather than having to conform to what the computer and software forces you to do.

The fourth advantage is the permanence of the content. Unless your notebook or lecture pad end up getting soak, caught fire or the pieces of paper blown away by the wind, you can always trust that your content won’t go away. That’s unlike when you are using a computer to write. Machine can fail. Storage devices, including cloud storage, can fail or corrupt your data.

But not everything is all so shiny and great.

The biggest disadvantage with using pen and paper is the speed of writing. Your arms and hands don’t move as fast when you have to draw out the arches and lines associated with latin characters whereas with a computer, a key press means a letter. Because of that, I find it much harder to get into the flow.

The second disadvantage is you can’t edit the content like you could on the computer. Every word that you write on paper is permanently set in stone, so to speak. If you want to change something, you have to strike out what you wrote or use whiteouts. And if you are like me who makes quite a lot of mistakes when writing, you will find that your paper may end up becoming a complete mess and hard to comprehend.

As for portability, it doesn’t concern me. I always bring a backpack when I go to work and I could just shove the lecture pad in it. And when it comes to publishing, well, since I’m writing a novel, it would be much later in the writing process that I have to type them all out. With that, I’d probably do my editing concurrently. So I get to kill two birds with one stone.

Now, I won’t say every writer should write longhand using pen and paper. For most people, it would be very tedious and tiring. So if you prefer to write using your computer, then by all means do that. At the end of the day, the most important thing is getting your content out for your audience to consume and encourage them to come back for more. But if you find that your computer is getting in the way of you doing your work, then maybe it’s time to go old-school.

Murderous House

Part 3

You can read part 2 here


“Jake, I need to rest,” Alec’s voice was weak and his body suddenly heavy, threatening to pull Jake down to the ground.

“A few more steps and we will rest over there,” Jake pointed at a clearing up front with an old tree stump.

Alec nodded and tried to draw on some hidden energy deep within him so that he could keep moving. Just a few steps, he told himself. And off he went with his buddy providing physical support.

Once at the clearing, Jake helped to take off Alec’s backpack and dropped it on the ground, against one of the roots. He dropped his own bag next to it. He then went to assist Alec as he sat down on the grass patch between the two giant rotting roots that formed a V when viewed from the top. A quick sweep of the torchlight across his buddy’s face revealed tired and pale face. It was as though blood had all drained out. The humidity at night was not helping one bit. Tiny beads of sweat were forming on both of their foreheads.

“You looked like you are about to die,” Jake said wryly as he remained in a squatting position on Alec’s right.

“Hell no!” Alec retorted. “I just feel giddy and need a rest.”

“Sure…”

Alec felt sick in his gut. It was churning. His head heavy. He thought the forest smelled really bad. It was like someone kept pounding at it with their fist. It didn’t take long for the nausea overwhelmed him. He instinctively turned to his left but before he could position himself properly, he vomited. Most vomit landed on his shirt and pants instead of the ground. After he was done, he wiped his mouth with the back of his hand. He rested his head against the tree trunk, “Much better. But my clothes…”

“Ewww!” Jake gave a disgusted look. Then he leaned closer, gently lift Alec’s head up by the chin and watched those pupils as he swept the torchlight at an angle across. They didn’t narrow accordingly.

“Looks like a concussion. Let’s rest here for a bit. After that, I’m tossing you in the tub for a hot bath.”

“If you dare.”

Jake grinned, gave a Alec a quick peck on the cheek and ruffled the hair at the top of his head. Alec smiled. At the same time, he felt all warm and fuzzy inside. He always liked it when Jake ruffled his hair.

“Get some rest,” Jake ordered as he sat down. He watched, secretly laughing, as Alec struggled to stay awake before finally giving in to the sleep monster.

A surge of sleepiness hit Jake like a train a moment later. He realised he hadn’t slept once ever since reaching the house. Neither did Alec. Adrenaline was the only thing keeping both of them up all night in that house. A part of him still felt unsafe, unsure if those things at the house could follow them out. Then they were out here in the woods without any form of shelter or protection. If those entities didn’t get them, the animals would. So he tried to stay awake for a little while longer to keep watch.

But fighting against exhaustion was futile. After sliding the power switch on his torch to off position, he dozed off.

****

Alec wasn’t sure how long he had slept when he woke up. The pain had mostly subsided, allowing him to move more freely. He was happy about that but the smell of his own vomit continued to linger in the air, dampening his mood. He desperately wanted to head to the nearest river he could find to wash himself clean. He looked around to see Jake snoring away with his head lowered at an angle.

“Jake,” Alec called out as he patted his buddy’s left thigh. There was no response. He called out again and patted even harder, almost like he was slapping. Still no response. So he shook Jake by the shoulder and called out even louder, “Jake!” All Jake did was to make a grunting sound.

Alec sighed, got up and rampaged through his bag to find the set of clean clothes he packed before coming on this trip. In the past, they didn’t packed extra clothes because of the weight. But after an incident two years ago, when they had to trek through the woods in sub-ten degrees celsius temperature with wet clothes and barely made it out to get help, they learned to pack an extra set of clothes to change. Hypothermia was no joke.

He found the t-shirt and a pair of pants. He took off his shirt, tossed it to one side and put on the new one. His pants came off next and he put on a new pair. The dirty clothes were then shoved into a Ziplock bag to prevent them from contaminating the rest of his belongings.

“Aleeecccc,” an echoey voice called out.

Alec thought he was hearing things. He chose to ignore it and continue to pack his bag.

“Alecccc…”

He stopped immediately and swore it definitely sounded close. He spun around and swept the torch horizontally across the woods. All he saw was green and brown. There was no one.

“Alec!” It was right beside him

He twitched and dropped the torch on the ground. It landed on the grass with a soft thud. He scrambled to pick up the torch. Cold sweat beads started forming on his forehead. His hands turned sweaty. His heart thumped violently as though it wanted to escape from the prison that was his chest.

He had trouble grabbing the torch on the first couple of tries. When he finally got it, he got up so fast that blood couldn’t reach his head in time. He felt a little lightheaded but it didn’t stop him from sweeping the torch around to locate whoever called out to him.

Again, there were only trees and shrubs. The light landed on Jake’s face but it did nothing. He was still sound asleep.

He felt a cold sensation down his back as though someone rubbed ice cube on it and let the cold condensation flow down. He froze. There had to be someone or something behind him. What the fuck?

He plucked up his courage and spun around, swinging the torch at whatever was there in one swift continuous action. When he regained his composure, he realised there was nothing there. He blinked several times before scanning his surrounding. Still nothing. He began to suspect he’d lost his mind.

“Aleccc!”

He spun around to see thick white fog around him. Jake was no longer visible. So was the forest. The light from his torch danced erratically against the fog as he tried to make sense of what just happened.

“Jake! Where are you?” He looked around hoping to catch someone or something but his surrounding was as still and calm as water in a stationary cup. He turned around and called out again. There was no response. His eyes began to swell up when he caught sight of a human silhouette standing amidst the fog. The fresh but painful memory of encountering a black figure made him think twice about interacting with this one.

Then the figure approached.

Alec’s eyes went wide and his breathing increased in tempo. He backed away while he kept the torch on the approaching figure. In his head, he was getting himself ready to turn and run should the figure turn out to be a threat.

The figure was at least three arms’ length away when Alec decided he’s not going to risk it. He spun around and ran. With the fog reducing his visibility down to no more than three metres, he wasn’t sure where he was going. But he decided to keep going anyway. A part of him hoped that he could get out of this strange fog. He kept the torch aimed at an angle at the intersection between the fog and the ground so he doesn’t trip over anything.

The further he ran, the fog became thinner, allowing him to make out the trees and thick undergrowth beyond three metres with the aid of his torch. He looked behind him occasionally to make sure no one was following him. He brought himself to a gradual stop at the fork in the path. He was tired and needed to catch his breath. And the sore spots on his body started throbbing.

After regaining his strength, he regarded his surroundings for a moment. He knew he couldn’t continue forward since he didn’t know where it led and traveling alone in the woods while the sky remained dark was a bad idea. Turning left would take him back to the house. And that was something he would never do.

Just before he turned around, questions started appearing in his head. If the house was haunted and they got out of it, why would the figure be out here? And what was that that kept calling out his name? And where did that fog come from?

When the truth finally dawned on him, he knew he had to go back and get Jake. He spun around. What he saw sent his eyes and mouth wide open, letting out a soundless scream. He stumbled a couple of steps backward and fell.

****

Jake woke up. He turned on his torch and looked around. Alec was not at his original spot. The only thing left was his backpack. He stood up wondering where his buddy had gone.

“Alec! Where are you?”

Only the echo of his own voice came back to his ears. The other was the sound of crickets chirping away. He tried again. When there’s no response, he couldn’t help but grew concerned for Alec’s safety and well-being. But he didn’t know where his boyfriend went. He couldn’t just randomly pick a direction and go that way. Yet he couldn’t help but wonder what if his boyfriend was hurt and unconscious somewhere in the woods. There would be no way for Alec to hear him call out.

He spent the next few minutes debating with himself about the pros and cons of attempting to find Alec before coming to a conclusion. He gathered all their belongings and strode off towards the east.

A few steps later, he heard a ghostly whisper that came out of nowhere, “Go back.”

He stopped and turned his head to the right, thinking the voice came from there. He waited for a couple of moments before deciding that he was hallucinating and continued moving forward.

“Wrong way!” The voice was raspy and sounded like it was coming from behind him.

What the hell, Jake thought to himself. He turned around to see who was behind him but he didn’t catch anyone. “Alec, is that you?”

There was no response.

“Stop messing around! Either you come out or I’m leaving without you!”

There was only the sound of leaves rustling from the sudden wind gushing through the area. The muscles around Jake’s face tightened and his breathing increased in intensity. Jake spun around and continued walking towards the east.

“Go back!” The raspy voice was now louder and closer. Jake thought from it came from behind him.

Jake chose to ignore the voice as he had enough of the prank he thought Alec was playing. He yelled into the air, “You can stay here if you want. I’m leaving!”

“Wrong way!” The voice was more forceful, catching Jake off guard. It was as though the voice was scolding him. He stopped and looked around hoping to catch whoever it was.

“Help,” someone whimpered, sounding almost like Alec. “I’m…m hurt.” Jake’s head turned to face the direction of the voice and felt his heart sank a little. He wasn’t sure whether to believe Alec since he played a similar prank a year ago that got him all flustered and worried for no reason. When he did find Alec after a difficult hike through the woods, his friend was well and alive.

“Go…o back…k,” The voice trailed off.

“Oh fine. I’m coming,” Jake uttered under his breath as he rolled his eyes. He turned around and stomped his feet into the ground as he went towards the house.

Jake froze the moment the woods disappeared and he found himself back in the house. His muscles tightened up on instinct. If anyone were to move his limbs, it would be like trying to move the limbs of a corpse in rigor mortis.

“Oh fuck!” He cursed and his head turned left and right furiously, scanning the room he found himself in to make sense of what just happened.

Little did he know, both of them never got out of the house. The inhabitants made sure of that with their reality-shaping abilities.

“Alec!” Jake yelled. “Where are you?”

The square room was unfurnished with wooden flooring and walls covered in dirty-looking green wallpapers that were decades old. He spun around and saw the wooden door. He placed his hand on the knob. But before he could turn it, it crumpled in his hands into ash. He went wide-eyed and felt his heart thumping away.

“No! No! No!”

He felt his hands around the door hoping to find an alternative. When he found nothing, he pounded at the door, so hard that his hands hurt but he ignored the pain. He wanted out. Now.

He grew tired and hopeless as time went by. The door continued to refuse to bulge. He crumpled to the ground in front of the door, gave it a last pound before laying on his back. He stared at the dark ceiling above him with a face full of dried tears. He started to think that he’d probably die there in the room without anyone ever truly knowing where he was. It could be years before someone else stumbled upon the house and end up in the same room as him.

He continued to ruminate and lost track of time. His eyes felt heavy and he struggled to keep them open. During the moment before sleeping and being awake, he heard a creaking noise coming from somewhere in the room. He paid attention and listened. For a while, the room was quiet. Just when he wanted to dismiss it as a form of hallucination, the creaking noise came back.

With a rough idea of where the sound came from, he beelined towards the area. Then the sound stopped. He stood there and waited, his ears listening intently. He hoped it come back. If there’s creaking sound, either in the room or behind the wall, it would mean there’s a way out. A little far fetch, he admitted, but he needed that.

Seconds went by. The room was quiet. His hope began fading away gradually with each passing minute of silence. Then the creaking sound came back and he pinpointed it coming from the wall in front of him. Excited, he examined the wall, pressing it to locate hidden switches and tapping to locate hollow spots.

Tapping revealed the lower half of the wall was hollow but there was no hidden switches. The creaking sound continued to go on and off without any discernible pattern.

Jake took a couple of steps back and studied the wall again. He saw a golden hook on the adjacent wall that seemed out of place. He went over and gave it a pull. There was a mechanical churning sound. Moments later, the bottom part of the wall lowered itself into the floor, revealing a small man-made tunnel.

He raised an eyebrow and eyed the tunnel with suspicion. The tunnel was unlit. Even with the torch light, he doubted he would be able to see far. That means he could be moving towards danger and not realising until it was too late. He sighed. Despite what he’d been through, he thought he should have gotten used to scary stuff but he hadn’t.

More thoughts of all the things that could go wrong in the tunnel struck without warning, sending shivers down his spine and goosebumps rising all over. He shook them off and focused on what’s in front of him. He had a chance to get out of the room.

The tunnel was small. A child could probably fit in there. For him, it would be a tight squeeze even though he was only five feet tall and considered to be small-sized for his age and gender. Chances are, he might have to crawl instead of a crouch-walk. And that would slow him down dramatically. So if anything were to happen to him in there, he wouldn’t be able to get away fast enough.

But there was no other way out of the room. He had to get out. If not for his sake, then for Alec’s.

He tossed Alec’s backpack into the tunnel first, hoping to get it as far ahead as possible. His went in next. He could hear the sound of soft thuds of the bags crashing into each other. He crouched and scanned the tunnel with his torch. Satisfied that he could see the bags, he crawled in.

The tunnel was dry, warm and filled with cobwebs that forced Jake to sweep them away from his head constantly. What was surprising was the height of the tunnel.It was high enough for him to do a high-crawl and shoved the bags forward with each step.

He wasn’t sure how long he’d been crawling. Time seemed to pass rather slowly in the tunnel. Then he came to a stop in front of a junction that branched into three separate tunnels and wasn’t sure where to go. He went with Eeny, meeny, miny, moe to help him pick and ended up with the tunnel on the right. He went with that choice with a mild worry. He wasn’t sure if that was the right one. But he convinced himself he could always backtrack and go with the remaining two options. So after following through with his choice for a few more minutes, he found himself in an empty room.

A quick sweep of his torch revealed a small corridor with no window and grey walls that seemed moist and full of sticky brown goo. There was a door on the other end and a set of stairs leading downwards connected to the center of the corridor. He suspected he had to be in the basement or something.

“Alec!” Jake called out. He hoped he wasn’t loud enough to attract any unwanted attention from the other inhabitants of the house. “Are you in here?”

When there was no response of any kind, he continued forward with one of the backpack on his back and the other in his free hand. He wanted to try the door first before heading down deeper into the basement. The door refused to budge even after he tried the doorknob several times. He gave up, backtracked and went down the stairs.

****

He opened his eyes to feel a surge of pain across his body. He was laying on his side and didn’t know how long he had been unconscious. The only thing he remembered clearly was falling and crashing through a series of wooden platforms.

He tried to turn and rest on his back but realised he couldn’t move anything below his waist. He tried again only for searing pain to shoot up his torso, causing him to grimace. When the pain subsided, he felt his way around his body and found it was mostly moist and sticky. In the dark, he didn’t know what was going on and could only imagine. Then he felt something coming out of his gut. It was slimy and squishy. His heart skipped a beat and he didn’t want to know more.

He looked around to see his torch survived the fall and was still shining light on the far wall. He wanted to crawl over but he didn’t want to risk further injury. Then he heard someone calling his name and recognised that voice immediately. He opened his mouth and wanted to let Jake know he was in here. But no sound came out. A few more tries and still no voice came out. His heart sank.

But just moments before he gave up, he heard the door rumbled and creaked. Someone opened the door. A beam of light came through the door and it didn’t take long for the beam of light to land on him. However, he couldn’t be sure if it was Jake coming through because his back was facing the door and turning around was practically impossible for him.

“Alec, is that you?”

Alec tried to answer but only a soft grunt came out of his mouth.

He could hear the shuffling of feet as Jake made his way over, torchlight trained on him. He could sense his friend getting closer with each step. It didn’t take long before he felt the air behind him shift dramatically.

“What the hell happened?” Jake dropped both backpacks as he rushed over. He knelt down in front of Alec, placed a hand on his shoulder as though to comfort him while the other hand was aiming the torch at his face and the red messy pile in front of his gut.

“I fell,” Alec managed to utter those words.

Then he caught a glimpse of his injury when the torchlight illuminated his gut and regretted it. It was bad. But he was also glad that he wasn’t all alone.

Jake’s here. And that was all that mattered.

“What?” Jake was as confused as he was shock. He swept the room with his torch, desperately wanting to know how Alec could get so badly hurt. He saw scattered and broken pieces of wooden planks lying on the ground not far away. It didn’t take long before he shifted his attention upwards. Alec’s eyes followed the torch light upward.

“It was a long fall,” Alec said as though it’d help make the situation any better.

Jake turned his attention to Alec. He broke down the moment their eyes met. “I’m sorry. I’m really sorry.”

“It’s not your fault,” Alec said, almost too soft to hear.

Jake looked at Alec with swollen eyes and tears streaming down his cheek. He desperately wanted to find something to say but found himself tongue-tied.

Clank!

Both of them twitched. Jake scrambled to get some light on where the sound supposedly came from. But the light revealed nothing. He swept the torch around hoping to catch whatever or whoever made that sound.

Clank, clank, clank!

“Who’s there?” Jake yelled. “Show yourself!”

Cold sweat started breaking out. His heart was beating rapidly and his vision a sudden blur. He adopted a combative stance, with one hand ready to punch at whoever was in the room with them and the other holding the torch and shining at the direction where the sound came from.

Another clanking sound from behind made Jake turn around.

This time he got to see who it was. His eyes and mouth went wide when he found himself staring at Alec. Instead of a handsome, boyish face that he came to love and enjoy, he was staring at a face that was old, badly disfigured with three scars running diagonally across. He turned his head so fast that he could break his neck just to look at who was lying on the floor. When he saw it was indeed Alec, he turned to look at the face of the person standing in front of him.

But before he could do or say anything, he felt something go through his chest and went out the back. He looked down to see a sword plunged through his chest, right where his heart was. For some reason, he didn’t feel pain. He looked up again to see the face had changed from old Alec to black face with yellow eyes and sharp teeth.

A split second later, the figure pulled out the sword, raised it high and brought it down on Jake’s head. The sword cleaved his head in half.

Just as Jake’s lifeless body crumpled to ground, Alec screamed with whatever strength he had left.

Despite the extreme grief he felt over losing his boyfriend, he felt the air around him shifted. He felt his head dropped a couple of inches and struck the ground in a weird manner. He didn’t know what had happened until he found himself rolling. When he stopped, he saw his own body with a red stump that was supposed to be his neck with blood squirting out the main arteries.

The last thoughts he had was of the time he spent with Jake before everything turned pitch black…