Telegram Contests
74.5K subscribers
2 photos
1 video
53 files
193 links
Here we announce Telegram coding contests in Android Java, iOS Swift, JS, C/C++. Discussion: @contests
Download Telegram
Congratulations to the winners!

While the winners of the Android contest are likely to start getting bombarded with job offers now, we advise them not to get distracted just yet: the more important second stage is ahead.

Remember: an engineer's job at Telegram is 10 times more fun (and on average 10 times more profitable) than a job in a typical tech company. However, we hire only those who show consistent results in our contests. Best of luck!

P. S. Tomorrow we'll be selecting the winners of the iOS and JS contests. The prize budget will just keep increasing.
After hundreds of hours of testing, we are now ready to announce the winners of the iOS contest.

Overall, we received 148 apps for iOS, out of which about 38 made it to the shortlist and 15 will get awards.

While nobody managed to win the epic first prize at this stage, a 29 y.o. developer from London gets the second prize and will receive $10,000 from Telegram.

The winner preferred to hide his name. We will anonymize and publish his work soon. Well done, Mysterious Champion! Your app is almost flawless. If it had been running a bit smoother on iPhone 5S and iPhone 6 Plus, you’d have won a super-prize of $50K.

Four developers won the III prize ($3,000 each)

🥉 sroik - TestFlight
🥉@demon9733 - TestFlight
🥉@gontovnik - TestFlight
🥉@nikita_efimenko - TestFlight

Ten developers won the IV prize ($2,000 each)

🎖Andrew Solovey - TestFlight
🎖@AlexanderStef - TestFlight
🎖@dblmow - TestFlight
🎖Mikhail Chepelev - TestFlight
🎖@pegurov - TestFlight
🎖@Mirmanov - TestFlight
🎖@troohin - TestFlight
🎖@pycuk - TestFlight
🎖@a_rychkov (.ipa)
🎖@vtotskyi (.ipa)

The order of the winners above reflects the time at which they submitted their apps to @jobs_bot.

Congratulations to the winners! 🎉

Additionally, we’d like to thank 25 individuals who almost made it to the list of winners:

@bernikovich, @azimin, @GlagolevS, @timaktimak, @AndreLami, @motyzhenkovmd, @t_paliienko, @shvul, @shkutkov, @yuriboorie, @bodro92, @ssanek212, @m_tishin, @mayor, @DaskiOFF, @Screon, @gibadu, @ilyassiraev, @bergusman, @omelics, @katleta3000, @zsergey, @odnoletkov + @specialforwork and @zaitsevyan

The apps of these developers had tiny, but critical issues. In most cases, we uploaded video demonstrations of the bugs we encountered. Links to such videos are included with the feedback every participant of the iOS contest will receive within an hour.

This feedback may be helpful for the preparation to the next stage, where participants will have to further improve the chart apps they created in Stage 1.

Stage 2 starts in two days. Before that, we’ll be announcing the JS contest winners. Stay tuned!
As promised, we’re publishing the second prize winner’s app. To run it on your device, you’ll have to sign MysteriousChampion.ipa with any valid certificate. We’re including an instruction with a script for that in the archive below.
The winners of the Telegram JavaScript Contest have been selected.

We received 560 scripts in this competition. We were truly impressed by the skill and attention to detail shown by many participants.

Meet the winners:

1st place – $10,000 each

🥇 @tolyayanotLINK
Incredible size – only 4Kb after gzip. Impressive performance on a wide variety of devices.

🥇 @v11141nLINK
Amazing usability and attention to detail. Small things like the shaking animation when you try to disable all data on a graph won our hearts.

2nd place – $3,000 each

🥈 @pavloLINK
🥈 @vshabanovLINK
🥈 @zinchukLINK

3rd place – $2,000 each

🥉 Denys Sokolov – LINK
🥉 @energizer91LINK
🥉 @ftkvynLINK
🥉 @stasminchenkoLINK
🥉 Alexander Pervushin – LINK
🥉 Anonymous – LINK
🥉 @dkaraushLINK
🥉 @nekrtemplarLINK

4th place – $1,000 each

🎖 @AlekseyMironenkoLINK
🎖 Alexander Prokofyev – LINK
🎖 @hypercrabLINK
🎖 @qtranLINK
🎖 Valeriy Katkov – LINK
🎖 @broadsw0rdLINK
🎖 @ilya_merkulovLINK
🎖 @tzadorLINK
🎖 @yurysmykalovLINK

Congratulations to the winners!

All participants must have received feedback on their apps from the bot by now. Unfortunately, a large part of the submissions were not optimized for popular mobile devices – either showing critically insufficient performance or not functioning at all. We had to discard all such apps, as well as those that significantly departed from the contest design guidelines.

As a result of Stage 1, we’ve distributed $176,000 among Android, iOS and JS developers. At least another $150,000 will be distributed in Stage 2 that starts later today.

In Stage 2, all submissions will be publicly available for everybody to test and review. The participants of Stage 2 will be able to find and publicly report issues in the apps of their fellow contestants for at least a week before the results are announced.

We’ll be back with details of Stage 2 this evening.
Announcing Stage 2 of the Chart Coding Competition for Android, iOS and JavaScript developers.

Dates: April 7-15. The last submission will be accepted via @jobs_bot at 11:59 PM CET, April 15.

Prize budget: at least $150,000 to be distributed among the winners.

Who can participate: Everybody. However, those who went through Stage 1 will have significant competitive advantage.

Goal: Build 5 graphs based on the input data we provide. In addition to line charts developed in Stage 1, we are inviting developers to support 3 new chart types: line charts with 2 Y axes, bar charts and percentage stacked area charts.

Those who aim for the first prize will also have to support the zoom in / zoom out feature and pie charts. Zooming in allows to expand each data point into another graph with a more detailed X-axis. For example, each point on a 365-day daily graph can be zoomed into a 24-hour graph on a 168-hour timeline, as shown on one of the video demonstrations below.

Here are the 5 graphs expected in the contest:

1. A line chart with 2 lines, exactly like in Stage 1 (Screenshot 1).

Bonus goal: A line chart with 2 lines that zooms into another line chart with 2 lines (Screenshot 2), as shown on the first video below.

2. A line chart with 2 lines and 2 Y axes (Screenshot 3).

Bonus goal: A line chart with 2 Y axes that zooms into another line chart (Screenshot 2), as shown on the first video video demonstration below.

3. A stacked bar chart with 7 data types (Screenshots 5-6).

Bonus goal: A stacked bar chart with 7 data types which zooms into another stacked bar chart with 7 data types.

4. A daily bar chart with single data type (Screenshot 7).

Bonus goal: A daily bar chart with a single data type zooms into a line chart with 3 lines (the other two lines can represent values from 1 day and 1 week ago, as shown on Screenshot 8). Please see the second video demonstration below.

5. A percentage stacked area chart with 6 data types (Screenshots 9, 10).

Bonus goal: A percentage stacked area chart with 6 data types that zooms into a pie chart with average values for the selected period (Screenshot 11). See the third video demonstration below.

Note that you are not expected to implement the zooming transitions exactly as shown in the video demonstrations. They may be replaced with any slick and fast transition of your choice.

The Y-scale on line graphs should start with the lowest visible value (Screenshot 4). A long tap on any data filter should uncheck all other filters.

As in Stage 1, we will provide input data for all 5 graphs within the next 24 hours. We’ll also be updating you on the testing process, which, as mentioned before, will be public.

Good luck!
10 MB
Upd. Screenshot 3 on April 7, 9:56 AM CET
This media is not supported in your browser
Chart 1 + Bonus Goal.

Upd. April 7, 9:44 AM CET
This media is not supported in your browser
Chart 5 with Bonus Goal. You may use any transition you like.
When selecting the winners of Stage 2, we will consider speed, attention to detail and functionality.

We will test and potentially award all developers that correctly implemented the 5 chart types described above.

Some developers may choose not to implement the bonus goal, focusing on speed and usability of the main graphs instead. Others may opt to aim for the big prize. Either strategy has its good points.

Have fun finding the best approach. We’ll be back with the input data tomorrow.
Telegram Contests pinned «Announcing Stage 2 of the Chart Coding Competition for Android, iOS and JavaScript developers. Dates: April 7-15. The last submission will be accepted via @jobs_bot at 11:59 PM CET, April 15. Prize budget: at least $150,000 to be distributed among the winners.…»
Please find the input data for Stage 2 in the archive below. There are 5 folders there, each containing a .json for the corresponding graph (“overview.json”) and 12 subfolders (“YYYY-MM”) with "zoomed" graphs for each day of each month (“DD.json”). The subfolders with daily graphs are required only for those aiming to achieve the bonus goal.

Compared to Stage 1, we added a few new parameters and chart types into the JSONs.

chart.columns – List of all data columns in the chart. Each column has its label at position 0, followed by values.
x values are UNIX timestamps in milliseconds.

chart.types – Chart types for each of the columns. Supported values:
"x" (x axis values for each of the charts at the corresponding positions).

chart.colors – Color for each variable in 6-hex-digit format (e.g. "#AAAAAA").
chart.names – Name for each variable.
chart.percentagetrue for percentage based values.
chart.stackedtrue for values stacking on top of each other.
chart.y_scaledtrue for charts with 2 Y axes.
Note that in the input data provided above, the “zoomed” per hour data for each day (Charts 1, 2 and 3) can be accompanied by data for up to 6 other days – typically, 3 days preceding and 3 days following the requested day. This structure allow to display the bottom navigation bar in the “zoomed” mode using just one data file.

For those who don’t need this optimization, we prepared the same data with no additional days included when zooming. See the archive below.

(All of this is relevant only for the developers who are aiming for the bonus goal. The rest can just use the "overview.js" files.)
Earlier today our designers fixed glitches in Video 1 and Screenshot 3. To make up for their mistake for you, they came up with color descriptions used in all the screenshots. They hope you might find these descriptions useful, particularly those for colors with opacity parameters.