Content that is all about software engineering and programming! Find examples of code often written in C# along with tutorials.
You can find part one of this here! Applying for Software Development Jobs How do I stand out on an application? I think this is largely going to depend on where you're applying. Something to consider is that especially with large tech companies, they're getting thousands and thousands of resumes all the time. It can be really competitive to be able to even land an interview so sometimes if the caliber of other applicants is high, it can make it difficult to stand out. That's okay. We don't have control over others, but we do have control over ourselves! We can try a few different things to stand out and help you get started on your software development journey professionally. The following are things I personally would suggest and may not reflect the exact views of my employers (past, present,…
Having worked with C# for quite some time now writing desktop applications, I've begun making the transition over to .NET standard. In my professional working experience, it was a much slower transition because of product requirements and time, but in my own personal development there's no reason why I couldn't get started with it. And call me crazy, but I enjoy writing coded tests for the things I make. My favorite testing framework for my C# development is xUnit, and naturally as I started writing some new code with .NET Standard I wanted to make sure I could get my tests to run. xUnit Tests - The Example Here's an example of some C# code I wrote for my unit tests of a simple LRU cache class I was playing around with: [ExcludeFromCodeCoverage] public sealed class LruCachetests { [Fact] public…
Progress Pulse - Entry 1 For the first entry in the progress pulse series I'll touch on some things from the past week or so. There's been a lot of smaller things being churned in the code base, some of them interesting, and others less interesting so I want to highlight a few. As a side note, it's really cool to see that the layout and architecture is allowing for features to be added pretty easily, so I'll dive a bit deeper on that. Overall, I'm pretty happy with how things are going. Unity3D - Don't Fight It! I heard from a colleague before that Unity3D does some things you might not like, but don't try to fight it, just go with it. To me, that's a challenge. If I'm going to be spending time coding in something I want…
Progress Pulse Series I figured this would be a fun thing to start to do just to get small updates out and talk about what I've been working on for ProjectXyz and my RPG I'm building in Unity3D. This will hopefully be some small updates on the order of semi to bi-weekly about what kinds of things are going on when I'm programming for these projects. This could include: How and why I decided to refactor something A new design practice I'm trying Reflecting on why a design decision has(n't) been working out A new feature that's interesting etc... Some of these will be technical and others much less. A bit of progress pulse allows me an outlet to talk about interesting things I'm doing and maybe sheds some light on some areas (game development or just general programming) that…
Who Needs A Team?! I've been building RPG backends for as long as I've been able to code. I think my first one that I made for my grade 11 class is the only RPG that I "finished"... It was text-based and all you could do was fight AI via clicking attack, buy better weapons, level up, and repeat. It was also 10000 lines of VB6 code and so brutal that I couldn't add anything to it without copying hundreds of lines of code. Since then, I've had the itch. I keep rewriting this thing. I keep taking "Text RPG" (super cool and catchy, I know) and rewriting it. I had my first visual representation of this game called Macerus (here's another rewrite for unity), which is actually how I landed my first co-op job. But every time I'd get…
Unity3D Default .NET Framework I recently wrote that I wanted to start writing more Unity3D articles because I'm starting to pick up more Unity3D hobby work. It felt like a good opportunity to share some of my learnings so that anyone searching across the web might stumble upon this and get answers to the same problems I had. Unity3D as of 2018.1.1f1 (which is the version I'm currently using), still defaults to using .NET 3.5 as the framework version. Nothing wrong with that either. I'm sure there are reasons that they have for staying at that version, probably because of Mono and cross platform reasons if I were to guess, so I'm not complaining. For reference, this setting in Unity3D is referred to as "Scripting Runtime Version". So if you're googling more about this later, that's what Unity calls it.…
A Quick Brain-Dump on API Desgin I'll keep this one pretty brief as I haven't totally nailed down my thoughts on this. I still thought it was worth a quick little post: When you're creating a brand new API to expose some functionality of a system, should you design it with a strong focus on how the internals work? Should you ignore how internals work and make it as easy to consume as possible? Or is there an obvious balance? I find myself trying to answer this question without ever explicitly asking it. Any time I'm looking to extend or connect systems, this is likely to come up. Most Recently... Most recently I started trying to look at creating an API over AMQP to connect my game back-end to a Unity 3D front-end. I had been developing the back-end for…
What's An Interface? I mentioned in the first post of this series that I'll likely be referring to C# in most of these posts. I think the concept of an interface in C# extends to other languages--sometimes by a different name--so the discussion here may still be applicable. Some examples in C++, Java, and Python to get you going for comparisons. From MSDN: An interface contains definitions for a group of related functionalities that a class or a struct can implement. By using interfaces, you can, for example, include behavior from multiple sources in a class. That capability is important in C# because the language doesn't support multiple inheritance of classes. In addition, you must use an interface if you want to simulate inheritance for structs, because they can't actually inherit from another struct or class. It's also important to note…
What Makes Good Code? It's been a while since I've had a programming oriented post, and I figured this would be a great topic to write about. It's been a topic I've been thinking about more and more over the last year and I've been experimenting with certain patterns and practices to see if certain things actually make code "better". A lot of the information presented in this series will be completely based on my opinion, but I'll try to back up my opinion with as many concrete examples as I can. If you have a differing opinion, I'd love to hear it in the comments. I'd also like to call out that much of what I'll be discussing is in the context of object oriented programming. To be specific, there may be mostly C# examples used. If this isn't something…
Everybody Has Gone "Agile" If you're a software developer that's done interviews in the past few years, then you already know that every software development shop has gone agile. Gone are the days of waterfall software development! Developers have learned that waterfall software development is the root of all evil, and the only way to be successful is to be agile. You need to be able to adapt quickly and do standups. You need to put story point estimates on your user stories. You need retrospectives... And agility! And... more buzz words! Yes! Synergy! In the cloud! You need it! Okay, so why the sarcasm? Every single software development team is touting that they're following the principles of agile software development, but almost no team truly is. Is it a problem if they aren't actually following agile principles? Absolutely not,…