The TradeSkillMaster team is a small group of gamers who love to learn new skills and constantly push the boundaries of what TradeSkillMaster can do for our users. What started as a small addon has grown into a suite of powerful addons, a desktop application, and an extensive set of web-based tools and resources. We are driven by self-improvement and creating a great set of products and services for our users, while working in an efficient, but laid-back environment.
At TradeSkillMaster, we always strive to improve the products and services we offer. To that end, we are looking for a passionate addon developer to work on adding critical new functionality to our in-game addons which are used by hundreds of thousands of people.
As a part of this role, you will be expected to work closely with other members of the team to implement exciting new features, constantly improve the overall quality of our codebase, and improve the general stability of the addon.
This position is specifically for somebody who would be working on the TSM addon (TSM4) 25-30 hours a week. Therefore, the ideal candidate would be an independent contractor (potentially with other, smaller workloads), and not somebody with a full-time job. The work would be purely remote, and there are limited requirements on location, but roughly NA/EU timezones are preferred.
- Strong technical background and code design sense with an emphasis on UI and data processing
- A proven ability to work in established code bases as part of a team and self-motivation to constantly improve code quality and processes
- Lua and WoW addon experience is a plus
- SQL experience
- Object-orientated programming
- Experience with TradeSkillMaster and a passion for improving it
Ready to join us? Send me (Sapu) a message on Discord (https://discord.gg/FJ4877H – if I’m AFK I’ll respond ASAP) or send me an email (email@example.com). Come prepared with your resume and any questions about the role you may have.
This is another very technical blog post which provides a look into the new database library which has been added to the TSM codebase with TSM4. This is an internal code library which makes it easier for us to implement new features in TSM4. This new database library is made possible by the class library which I discussed in a previous blog post.
Our main motivation for creating this database library was to make it easier to represent large datasets in a very structured way which could easily be consumed by the higher-level application logic. Another goal was to be able to connect UI elements to underlying data in a standard way which would allow the UI to update itself automatically when there are changes to the underlying data. Let’s dive into how our database library accomplishes these things. Read More
The TSM4 beta is always evolving and today we have some updates to share with you. We’ve been working hard to get TSM4 closer to release. While there is still a lot of work to be done, we’re excited to share our latest progress. There are a few big new features that we’ve been focussing on and will go through in this blog post.
New TSM4 Beta Features
Moving functionality from TSM3 to TSM4 is a big part of the massive project that is TSM4. Importing and exporting of groups and operations are features used by many of our users on a daily basis. There are many enhancements planned for the export feature in TSM4, and we’ve made great progress towards implementing our vision for an awesome export feature. With this latest update, we’ve implemented the brand new TSM4 export UI which makes it as easy as possible to export groups and operations. This is a feature which we will continue to build on and improve as we get closer to the release of TSM4. Read More
This will be a very technical blog post which provides a look into the new class library which has been added to the TSM codebase with TSM4. This is an internal code library which makes it easier for us to implement new features in TSM4. This new class library is the base for many other internal code libraries in TSM4 such as our UI Builder, Database, and FSM libraries. We will go into more detail on the other libraries in future blog posts.
What is a class?
A common feature of a programming language is being “Object-Oriented”. This means that the structure of the code is based around complex data structures called objects. The type of these objects is generally referred to as their class. The class describes the structure and features of the objects. Read More
If you haven’t yet received an email inviting you to the TSM4 beta, then that doesn’t mean you can’t see it in action. There are many people who stream their goldmaking activities, and some of them have beta access. If you don’t have a favorite streamer or community person, we’ve included a list of our affiliates here. Hopefully between them you’ll find someone to your liking!
For those of you who’d prefer to listen to one of TSM’s own team members, Gumdrops regularly streams his goldmaking and answers any questions people have about TSM, including taking a look at new versions of TSM4 as they are released. Be sure to go check out his streams if you’re interested!
If you want to ensure you get into the beta as soon as possible, you can go ahead and sign up for an invite here. If you like what we do and want to support the continued development of TradeSkillMaster and also get priority access to all of our betas, please consider becoming a TSM Premium user.
In this blog post, I will be giving a behind-the-scenes overview of the new deployment system we have created and been using throughout the development of TSM4.
Why did we create this new deployment system?
The primary goal of all this was to make it quicker and easier for us to get new changes into the hands of our users, and give us the ability to control which sets of users get which changes. Let’s talk about the latter goal first. We currently split our users into 4 separate release channels: Internal, TSM4 Alpha, TSM4 Beta, and TSM3 Release. The ‘Internal’ channel is used primarily for TSM team members for testing the very latest changes. The ‘TSM4 Alpha’ channel was used during the invite-only alpha phase of TSM4. The ‘TSM4 Beta’ channel is currently being used for everybody who has access to the TSM4 beta. The ‘TSM3 Release’ channel is one which all of our users have access to, and gives all of our users access to the latest version (of TSM3) we push to Curse. These release channels can easily be changed and adapted as our needs change (i.e. as TSM4 goes from internal-only to alpha to beta to release). So, the goal of our deployment system is to make it as easy as possible to release new versions to the proper channel. Read More
The TSM Team has been hard at work for a very long time to bring you the TSM4 beta. We wanted to give you some technical insights on what goes on behind the scenes. Today we’ll be taking a closer look at the Design of TSM4. H3ggers will be joining me to answer some questions!
I asked him three questions, and he’s been so kind as to offer detailed answers to them.
On a high level, what goes into setting up a UI from the ground up like this? How much of the old UI gets taken into account, and how do you decide what is best from a user experience standpoint?
Great question. So for any UI/UX work, it’s always good to start with research. Whether you’re working on a brand new product or something that has been around a long time (like TSM), you always want to start by investigating. You focus on what has been done, is being done, what’s working and what isn’t. Read More
Many users have become somewhat aware of the check() function in TSM3 thanks to the popularity of BilisOnyxia’s sniper string. In my own personal experience, check() is definitely something that at times can be hard to wrap your brain around. I’m pretty sure I used TSM for over a year before I fully understood it!
To quickly explain check(), you can feed it 2 to 3 values in the format of check(a, b, c) where “c” can be optional. These 3 values can be any value TSM recognizes, from custom prices to flat gold values, to simple price source references like DBMarket. The check() function then takes a look at “a”, and looks to see if it is valid and greater than 0. If “a” is not valid, the custom price returns invalid. If “a” is greater than 0, the custom price will give you the value of “b” back, otherwise it gives the value for “c”. If you did not supply a value for “c” and “a” is not is not greater than 0, then the whole thing is treated as invalid. Read More
The TSM Team will attend Blizzcon this year! We’re thrilled to be going, and can’t wait to meet everyone. While some TSM Team members have met each other in person, this will be the first time most of the team will be in one place. We are also extremely excited to meet all of you and talk shop about all things TSM and WoW gold making! Read on to learn more about what we’ll be doing during Blizzcon and where you can meet up with us in person or online.
On November 2nd, at 11AM PDT, the TSM team will be doing a live Q&A stream from Anaheim, California, and you’re invited to tune in to learn more about TSM4, hear about TSM from the team who makes it happen, and get your questions answered. Gumdrops, our Support Manager & User Evangelist, has been so kind to allow us to use his Twitch channel for this Q&A stream, so be sure to tune in! Read More
Sniper has long been a very popular feature of TradeSkillMaster, with many goblins even setting up a second, dedicated sniper account. The Sniper feature allows for snatching up deals as quickly as possible once they are posted on the auction house by constantly scanning the most recently-posted auctions and comparing the buyout price with user-configured maximum prices at either a global or operation level.
In TSM4, we’re making Sniper a first class feature by adding new Sniper operations and a top-level Sniper tab to the Auction House frame. We’re also adding an entirely new type of sniping in the form of a new Bid Sniper. Read More